
Проблема
Я использую tmux и хочу, чтобы MC открывал файлы для редактирования в другом окне tmux, чтобы я мог продолжать просматривать файлы во время редактирования.
Что я пробовал
MC проверяет, установлена ли переменная EDITOR, а затем интерпретирует ее как программу для редактирования, поэтому, если я это сделаю, export EDITOR=vim
MC будет использовать 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-[
), чтобы переключаться между диалогами (один из которых — файловый браузер).