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