Vim:vim实例之间的持久搜索缓冲区(在Ubuntu中)

时间:2011-01-31 23:59:44

标签: search vim buffer clipboard

我有两个独立的Vim运行实例。我想设置我的系统,以便在我在一个Vim中搜索something时(使用/?*#),然后在另一个Vim中按nN,它会在第二个Vim中搜索相同的something。我正在运行Ubuntu。

我已经在我的.vimrc文件中使用set clipboard=unnamed,在vim中使用主要系统剪贴板。

到目前为止的研究
命令行工具“xsel”允许我访问Ubuntu中的三个不同的剪贴板:剪贴板(用于选择文本和中键单击以粘贴),剪贴板剪贴板(用于Ctrl + C,Ctrl + V等)和辅助剪贴板(似乎未使用)。我现在想到,当使用/?*#时,Vim使用xsel设置辅助剪贴板,并使用xsel访问相同的剪贴板当nN被按下时。

3 个答案:

答案 0 :(得分:3)

我打算在这里发布我拼凑在一起的代码,但后来又决定把它捆绑成一个小插件:https://github.com/dahu/VimSharedSearch

答案 1 :(得分:1)

设置clipboard=unnamed后,您可以使用let @/=@*let @*=@/*在最后一个模式注册表(您搜索的最后一个内容)和共享剪贴板之间进行复制是剪贴板,/是最后一个模式。)

因此,您可以创建一个功能,将最后一个模式复制到剪贴板并映射到/?*#,另一个复制到副本剪贴板到nN的最后一个模式。

答案 2 :(得分:0)

不完全是您的要求,但为此目的,我使用拆分窗口(:sp:vsp)。