Зовнішній редактор у Libre-Office


1

Чи можна редагувати виділення за допомогою зовнішнього редактора, такого як Vim або Emacs?

Щоб написати це, я називаю Vim з Qutebrowser, тобто позначимо вікно і натисніть ctrl + e. Це відкриває екземпляр Vim з тим, що було у вікні. Коли я закриваю буфер, його новий вміст поміщається у вікно Qutebrowser. Щось подібне в Libre-Office допоможе.

Я запитую, не тому, що я хочу використовувати Libre-Office, а тому, що я повинен співпрацювати з тим, хто використовує Word.

PS. В ідеалі курсив повинен бути перетворений у те, що можна редагувати у вигляді звичайного тексту, наприклад, {{}}.


Копіювати і вставляти?
Scott

@Scott, так, але це не ідеально.
Toothrot

@ fixer1234, це те, що або чому вам незрозуміло? Ви пробували vim?
Toothrot

Як людина, яка використовує і Vim і LO кожен день, це звучить як хороша ідея для мене.
Jim K

@ fixer1234: Toothrot редагував хвилини запиту після відповіді на мій коментар. ISTM, що переглядає, пояснює, чого хоче ОП. Для порівняння, копіювання та вставлення буде громіздким і схильним до помилок.
Scott

Відповіді:


1

Використовуйте наступне Макрос Python . Йти до Інструменти - & gt; Налаштувати щоб запустити його при натисканні клавіші.

import os
import tempfile
import uno

def edit_with_vim():
    doc = XSCRIPTCONTEXT.getDocument()
    oVC = doc.getCurrentController().getViewCursor()
    data = oVC.getString()
    encoded_data = data.encode("utf8")
    fileTemp = tempfile.NamedTemporaryFile(delete = False)
    fileTemp.write(encoded_data)
    fileTemp.close()
    os.system('gvim -c "set encoding=utf8" %s' % (fileTemp.name))

g_exportedScripts = edit_with_vim,

EDIT :

Переглянувши посилання вище, див https://forum.openoffice.org/en/forum/viewtopic.php?f=74&t=12882 для підручника з налаштування команди для запуску макросу.

EDIT 2 :

Цей код надсилає зміни назад до програми Writer.

import io
import os
from subprocess import call
import sys
import tempfile
import uno

def edit_with_vim():
    doc = XSCRIPTCONTEXT.getDocument()
    oVC = doc.getCurrentController().getViewCursor()
    textstring = oVC.getString()
    text_bytes = textstring.encode("utf8")
    tf = tempfile.NamedTemporaryFile(delete = False)
    tempfilename = tf.name
    tf.write(text_bytes)
    tf.close()
    if os.name == 'nt':
        GVIM = "C:/Windows/gvim.bat"
    else:
        GVIM = "/usr/bin/gvim"
    call([
        GVIM, "-f",
        "-c", '"set encoding=utf8"',
        tempfilename])
    with io.open(tempfilename, 'r+b') as fh:
        fh.seek(0)
        edited_bytes = fh.read()
    os.unlink(tempfilename)
    edited_string = edited_bytes.decode("utf8")
    edited_string = edited_string.strip()
    oVC.setString(edited_string)

g_exportedScripts = edit_with_vim,

Дякую, але мені незрозуміло, як діяти після натискання / налаштування /.
Toothrot

@Toothrot: Див. Редаговану відповідь.
Jim K

У мене немає нічого в макросах / користувачеві / стандарті, але в модулі1, тому інструкція по прив'язуванню ключа не працює.
Toothrot

Ви бачили вище посилання "Макрос Python"? Він працює, але ви повинні дотримуватися інструкцій. Якщо ви вже помістили файл .py у правильне місце, але він не відображається в розділі "Мої макроси", переконайтеся, що python-uno встановлено. Подивитися christopher5106.github.io/office/2015/12/06/… для підручника.
Jim K

Намагаюся, але поки що не можу знайти каталоги. У мене немає каталогу в ~ що називається .openoffice щось або .libreoffice щось.
Toothrot
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.