从bash终端历史发送命令到$ EDITOR

时间:2014-07-02 14:03:02

标签: vim terminal command edit

从bash发送以前使用过的命令最简单的方法是什么 VIM说,历史是优先编辑。

现在我正在使用fc -l查看我感兴趣的命令,然后是我 将该行fc -l lineno lineno | vim -指定为lineno两次 只选择该行,并将其发送给VIM。

然而,这非常耗时,必须有更好的方法。

原因不是我要重新编辑命令来执行它 再次,因为那个我知道怎么做,按CTRL + X + E将发送它 立即vim,并在:wq上重新执行。

我想要的是记录它,也许在这里和那里改变一些东西,和 把它作为一个要点发布,我可以直接从VIM使用Gist插件。

2 个答案:

答案 0 :(得分:2)

如何将更多的工作转移到Vim?假设您对最近50个命令感兴趣并运行以下命令:

fc -nl -50 | sed 's/^\t //' | vim -

现在您可以看到所有历史记录项,可以使用/进行搜索,也可以使用:g/bad-line-pattern/d:v/good-line-pattern/d进行过滤。如果你习惯了Vim,那就是几次击键。

导航到您需要的行后,只想将其留在缓冲区中,您可以使用这样的快捷方式:

nnoremap <leader>f VyggVGp

它应该只在缓冲区中留下当前行。

答案 1 :(得分:0)

这样做就是将上一个命令放在vim中,而不是在保存缓冲区后重新执行它:

fc -ln -1|vim -

history -n -1|vim -