Linux中的自定义命令行编辑器

Linux中的自定义命令行编辑器,linux,bash,command-line-interface,zsh,ansi-term,Linux,Bash,Command Line Interface,Zsh,Ansi Term,当按下Alt+Enter时,我想在bash或zsh中调用我自己的命令行编辑器。它应该在Enter上进行一些编辑并将结果提交给shell。所以基本上我的编辑器接受当前的命令行内容并返回一个修改后的内容。有没有关于如何实现集成的想法?我确实知道如何使用ANSI终端,只是想知道如何以这种方式将我的编辑器控制台应用程序集成到shell中。对于Bash: 有一个Readline命令可在编辑器中打开当前命令。默认情况下,它绑定到C-x C-e,并在$VISUAL设置的位置、或$EDITOR或使用Emacs打

当按下
Alt+Enter
时,我想在
bash
zsh
中调用我自己的命令行编辑器。它应该在
Enter
上进行一些编辑并将结果提交给shell。所以基本上我的编辑器接受当前的命令行内容并返回一个修改后的内容。有没有关于如何实现集成的想法?我确实知道如何使用ANSI终端,只是想知道如何以这种方式将我的编辑器控制台应用程序集成到shell中。

对于Bash:

有一个Readline命令可在编辑器中打开当前命令。默认情况下,它绑定到
C-x C-e
,并在
$VISUAL
设置的位置、或
$EDITOR
或使用Emacs打开命令

通过将编辑器导出到环境中,您可以将其设置为
$VISUAL
,例如在
~/.bashrc
中:

export-VISUAL=youreditor
并将其绑定到Alt+Enter和

bind'”\e\C-m:“编辑并执行命令”
在命令行上,或

“\e\C-m”:编辑并执行命令

~/.inputrc

中,zsh几乎相同:

  export VISUAL=youreditor
  autoload -Uz edit-command-line
  zle -N edit-command-line
  bindkey '\e\C-m' edit-command-line

bash内置的bind应该为您提供所需的一切。但是(使用vi键绑定),
v
几乎可以满足您的需要,在$EDITOR中打开当前命令行。