【问题标题】:Custom command line editor in LinuxLinux中的自定义命令行编辑器
【发布时间】:2020-07-21 18:59:51
【问题描述】:

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

【问题讨论】:

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

标签: linux bash command-line-interface zsh ansi-term


【解决方案1】:

对于 Bash:

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

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

export VISUAL=youreditor

并将其绑定到 Alt+Enter with

bind '"\e\C-m": edit-and-execute-command'

在命令行上,或

"\e\C-m": edit-and-execute-command

~/.inputrc.

【讨论】:

    【解决方案2】:

    zsh 几乎一样:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-17
      • 1970-01-01
      • 2017-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多