当我点击Ctrl+ x、Ctrl+ ein 时zsh
,我可以通过$EDITOR
或编辑当前命令行$VISUAL
。但是,我想使用nano
, 并在那里获得 shell 语法的语法高亮显示,我必须通过-Y sh
,因为nano
在编辑命令行时不会自动识别 shell 语法(zsh
创建时/tmp/random-name
没有.sh
扩展名传递给nano
)。
我可以执行
EDITOR='nano -Y sh'
VISUAL="$EDITOR"
Run Code Online (Sandbox Code Playgroud)
然后按Ctrl+ x, Ctrl+e以获得所需的结果。但是,其他程序也使用$EDITOR
/ $VISUAL
。如果我设置$EDITOR
/$VISUAL
如上所述,然后执行(例如)git commit
,则提交消息将突出显示为 shell 语法,这是我想避免的。
我也试过
EDITOR='nano -Y sh' fc
Run Code Online (Sandbox Code Playgroud)
这确实有效,但是每次输入似乎有点冗长(尽管我可能会将它放在一个函数中)。此外,fc
使用最后一个历史命令行预填充命令行,要使用它,我必须输入命令。这意味着我无法输入一些长命令zsh
,然后决定nano
像使用键盘快捷键一样编辑它。
那么,有没有办法让我告诉 …
zsh ×1