问题
我正在使用 tmux,我希望 MC 在另一个 tmux 窗口中打开文件进行编辑,这样我就可以在编辑的同时继续浏览文件。
我尝试过的方法
MC 检查 EDITOR 变量是否设置,然后将其解释为要编辑的程序,因此如果我这样做,export EDITOR=vim
那么 MC 将使用 vim 打开文件。
我尝试在此基础上进一步完善:
function foo () { tmux new-window "vim $1"; }
export EDITOR=foo
如果我$EDITOR some_file
这样做,我就会在另一个 tmux 窗口的 vim 中打开该文件——这正是我想要的。
遗憾的是,当我尝试在 MC 中编辑时,它会空白一秒钟,然后返回到正常的 MC 窗口。MC 似乎没有保留任何日志,我也没有收到任何错误消息。
问题
- 你知道我做错什么了吗?
- 对于我想要的东西,您有可用的解决方法吗?
- 我应该为 MC 创建功能请求/错误吗?
答案1
mc
您正在定义一个 shell 函数,当它尝试启动编辑器时,它是未知的。
正确的方法是创建一个 bash 脚本,而不是一个函数。然后EDITOR
为其设置值,例如:
$ cat ~/myEditor.sh
#!/bin/sh
tmux new-window "vim $1"
export EDITOR=~/myEditor.sh
答案2
您已经可以在编辑时浏览文件。MC 的内部编辑器是一个非模式对话框。只需按Alt-Shift-[
(和Alt-Shift-[
) 即可在对话框之间切换(其中一个是文件浏览器)。