从bash发送以前使用过的命令最简单的方法是什么 VIM说,历史是优先编辑。
现在我正在使用fc -l
查看我感兴趣的命令,然后是我
将该行fc -l lineno lineno | vim -
指定为lineno
两次
只选择该行,并将其发送给VIM。
然而,这非常耗时,必须有更好的方法。
原因不是我要重新编辑命令来执行它
再次,因为那个我知道怎么做,按CTRL + X + E
将发送它
立即vim,并在:wq
上重新执行。
我想要的是记录它,也许在这里和那里改变一些东西,和 把它作为一个要点发布,我可以直接从VIM使用Gist插件。
答案 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 -