如何在 mac os 终端上编辑你正在编写的命令

如何在 mac os 终端上编辑你正在编写的命令

当我在终端上输入命令时,我通常会发现自己试图像使用文本编辑器一样使用它,我知道这不是它应该使用的方式,但我最近在 YouTube 上观看了一个演讲,演讲者在 17:25 做了一些有趣的事情https://youtu.be/f5phsX4VUOU?t=17m25s。好像弹出了一个迷你文本编辑器 --> 他编辑了文本 --> 关闭它,更改反映在终端上。我该怎么做?它是某种插件还是快捷方式?

答案1

如果你想编辑历史记录中的命令,该fc命令可以提供帮助。

首先,通过变量将编辑器设置为您选择的编辑器FCEDIT。要使用 TextEdit.app,请执行以下操作:

$ FCEDIT='open -nW'

然后运行一些命令:

$ echo "this command neets editing"

稍后运行fc

$ fc

TextEdit 应该会打开,并出现echo "this command neets editing"在一个新窗口中。将“neets”更改为“needs”,然后保存文件并退出编辑器。编辑器退出后,修改后的命令将运行,显示更正后的文本。

如果要编辑活动命令,调用edit-and-execute-command。在我的 shell 中,这被绑定到Ctrl-x Ctrl-e。它取决于环境变量的值EDITOR

在你的 shell 中查找键绑定:

$ bind -q edit-and-execute-command
edit-and-execute-command can be invoked via "\C-x\C-e".

就是这样Ctrl-x Ctrl-e。将 EDITOR 设置为你喜欢的。我使用emacs,但由于这是 OS X,我们再次使用 TextEdit。

$ EDITOR='open -nW'
$ echo "this command neets editing"  #now type ctrl-x then ctrl-e

您的编辑器将打开。编辑命令并保存文件。当您关闭编辑器时,新命令将运行。


如需更多信息fc,请运行help fc。 如需更多信息edit-and-execute-command,请运行man readline。 如需更多信息bind,请运行help bind

相关内容