Пользовательская функция «редактирование» в Midnight Commander

Пользовательская функция «редактирование» в Midnight Commander

Проблема

Я использую tmux и хочу, чтобы MC открывал файлы для редактирования в другом окне tmux, чтобы я мог продолжать просматривать файлы во время редактирования.

Что я пробовал

MC проверяет, установлена ​​ли переменная EDITOR, а затем интерпретирует ее как программу для редактирования, поэтому, если я это сделаю, export EDITOR=vimMC будет использовать vim для открытия файлов.

Я попытался развить эту идею:

function foo () { tmux new-window "vim $1"; }
export EDITOR=foo

Если я это сделаю $EDITOR some_file, то файл откроется в vim в другом окне tmux — именно то, что мне и было нужно.

К сожалению, когда я пытаюсь редактировать в MC, он на секунду становится пустым, а затем возвращается в обычное окно MC. Похоже, MC не ведет никаких журналов, и я не получаю никаких сообщений об ошибках.

Вопросы)

  • Знаете, что я делаю не так?
  • Есть ли у вас приемлемое решение для того, что мне нужно?
  • Стоит ли мне создавать запрос на функцию/сообщение об ошибке для MC?

решение1

Вы определяете функцию оболочки, которая неизвестна на mcмомент попытки запустить редактор.

Правильный способ — создать скрипт bash, а не функцию. Затем задать EDITORему значение, например:

$ cat ~/myEditor.sh
#!/bin/sh
tmux new-window "vim $1"

export EDITOR=~/myEditor.sh

решение2

Вы уже можете просматривать файлы во время редактирования. Внутренний редактор MC — это немодальное диалоговое окно. Просто нажмите Alt-Shift-[Alt-Shift-[), чтобы переключаться между диалогами (один из которых — файловый браузер).

Связанный контент