如何将Vim命令保存到特定缓冲区中并再次使用

时间:2019-12-07 07:53:33

标签: vim

我需要执行很多搜索和替换命令,并且我可能很快会重用这些命令。我知道我可以使用q:选择以前的命令,但是里面还有其他一些虚拟命令,我需要再次搜索所需的命令。那不是很有效。

是否有方法或插件可以将这些常用命令保存到特定缓冲区中,并且可以快速选择其中之一?

1 个答案:

答案 0 :(得分:1)

对于整个插件来说,这似乎是一项公平的工作,因为Vim不会跟踪命令的“频率使用情况”。

但是,您可以立即做出某种“穷人”解决方案:

  1. 创建一个临时缓冲区(或使用某种“临时”插件)。

  2. 每当发出“有用的”命令时,请转到“暂存”缓冲区,然后将寄存器:的内容添加到其中。例如, P

  3. 要执行“有用”命令,您需要一个映射:

    nnoremap <buffer><CR> 0y$<C-W>p:<C-R>0
    

    即:复制当前行;切换到上一个窗口;打开cmdline并在其中放置拉出的文本。

现在转到“暂存”缓冲区,然后按 Enter 组成命令行。

要将这些内容开发为“可投入生产”的形式,请考虑以下更改:

  1. 改为设计某种很酷的UI(基于缓冲区或基于弹出窗口)。

  2. 捕获CmdlineLeave以自动执行命令列表跟踪。

  3. 自动添加缓冲区映射。