当按下Alt+Enter
时,我想在bash
或zsh
中调用我自己的命令行编辑器。它应该进行一些编辑并将结果提交给Enter
上的shell。所以基本上,我的编辑器接受当前的命令行内容,并返回一个修改后的内容。有什么关于如何实现整合的想法吗?我知道如何使用ANSI终端,只是想知道如何以这种方式将我的编辑器控制台应用程序集成到shell中。
对于Bash:
有一个Readline命令可以打开编辑器中的当前命令edit-and-execute-command
。默认情况下,它绑定到C-x C-e
,并以$VISUAL
、$EDITOR
或Emacs的设置打开命令。
您可以通过将$VISUAL
导出到环境中来将其设置为编辑器,例如在~/.bashrc
:中
export VISUAL=youreditor
并将其绑定到Alt+使用输入
bind '"eC-m": edit-and-execute-command'
在命令行或上
"eC-m": edit-and-execute-command
在CCD_ 11中。
对于zsh:几乎相同
export VISUAL=youreditor
autoload -Uz edit-command-line
zle -N edit-command-line
bindkey 'eC-m' edit-command-line