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

275
butla

Эта проблема

Я использую 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
Создайте скрипт bash, а не функцию. Я думаю, `mc` не знает о функциях оболочки при запуске редактора. Marki555 8 лет назад 0
Это сработало! Спасибо, случайный человек из интернета! Ваша мудрость очень ценится! :) butla 8 лет назад 0

1 ответ на вопрос

0
Marki555

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

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

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