社区维基:"Vim:yanking机制的高级用法"

Has*_*yed 6 vim workflow text-editor

社区维基

正如yank系统的文档所示(感谢Michal),Vim yank系统似乎比标准剪贴板更复杂.因此,我认为如果vim退伍军人可能向我们展示一些利用这种机制的不同风格,这是有益的.特别是对于复杂项目使用vim而不使用重量级IDE(比如C++?).

原始问题

现在我正在为我输入的所有内容使用vim,而不仅仅是为了配置服务器,我不想解决以下琐事.我试图制定谷歌搜索查询,但结果没有解决我的问题:D.

问题一:我如何多次猛拉和更换?

一旦我在抽奖历史中有了一些东西(如果这就是它的名字),然后在命令模式中突出显示并使用'p'字符,则替换的文本放在抽奖历史的前面; 因此,后续更换操作不会使用我想要的文本.我想这在某些情况下是一个有用的功能,但我在我的工作流程中并不需要它.

问题二:如何在不导致线条向前波动的情况下键入文本?

我使用硬标签来以某种方式对我的代码进行分配 - 例如,

FunctionNameX     ( lala * land               );
FunctionNameProto (                           );
Run Code Online (Sandbox Code Playgroud)

当我弄清楚需要进入第二个函数的内容时,如何在不移动文本的情况下插入它?

问题三有没有办法在同一台机器上的gvim实例上有统一的抽奖历史?我有> 1台显示器.只是想知道,我正在使用高亮+鼠标中键点击.

Mic*_*zyk 4

答案一:来自 Vim 文档的相关引用(如果不是特别令人鼓舞的话)(请参阅 参考资料:help put-Visual-mode):

当使用像 |p| 这样的 put 命令时 或|P| 在可视模式下,Vim 会尝试用寄存器的内容替换所选文本。这是否有效取决于选择的类型和寄存器中文本的类型。对于按块选择,它还取决于块的大小以及角是否位于现有角色上。(实现细节:实际上,它的工作原理是先将寄存器放在选择之后,然后删除选择。)
先前选择的文本被放入未命名的寄存器中。如果您想多次将相同的文本放入视觉选择中,则需要使用另一个寄存器。例如,拉出要复制的文本,直观地选择要替换的文本并使用“0p”。您可以根据需要多次重复此操作,每次都会更改未命名的寄存器。

答案二:( R大写“R”)使您进入替换模式。

恐怕我缺少答案三。

答案三:不太符合“统一复制历史记录”规范,但"+y复制到剪贴板并"+p在剪贴板可用时从剪贴板粘贴。