当我在终端上输入命令时,我通常会发现自己试图像使用文本编辑器一样使用它,我知道这不是它应该使用的方式,但我最近在 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
。