如何复制我正在输入的单词?(没有模式开关......)


4

有时我想设置一个起始标记,然后输入一个单词(通常是一个长变量名),在完成单词后我可以设置一个结束标记。然后我可以将单词存储在我的寄存器中,这样我就可以粘贴它而无需任何额外的动作,模式切换等。

我该怎么做?或者有更好的“vim-way”来达到类似的效果?

谢谢。

Answers:


2

以下两个映射允许您记录在插入模式下键入的任何文本块,不一定是单个单词,并将其保存到寄存器中o

inoremap <C-K> <C-O>qo
inoremap <C-L> <Esc>q:let @o=@o[:-2]<CR>a

开始录制CtrlK,结束录制CtrlL。将录制的文本粘贴到插入模式中CtrlR o


这正是我想要的。谢谢。vim脚本似乎非常强大。我会尽力学习。
craftsman.don

4

INSERT模式下,您可以使用Ctrl-NCtrl-P触发自动完成。
当你重新输入长单词时,它非常有用。


有关详情:help i_ctrl-n,请参阅。你可能也需要调整你的complete选项; 对我来说,我不得不i脱离它,因为它太慢了,数以千计的文件全部包括在内... ...
dash-tom-bang

我喜欢supertab插件。我们习惯于将bash / zsh中的tab按到自动完成,它在Vim缓冲区中也很自然。
d11wtq

2

使用my

  1. 键入Ctrl+ O(1命令的退出插入模式)
  2. 键入mk以将标记设置k为当前位置
  3. 输入你的单词
  4. 输入Ctrl+O
  5. 输入y`k从标记k到您当前位置的方式

http://www.marksanborn.net/software/using-markers-in-vim/


1
这需要退出插入模式。在第一步和第三步之前使用Ctrl-O几乎可以让你到达那里; 使用反引号而不是单引号会做一个分线猛拉。
划线汤姆榜

哎呀,这是一个错字(反击)。我会用这两个建议更新帖子

0

使用<C-o>,您可以暂时退出单个命令的插入模式。然后,您可以发出一个yiw命令(yank内部单词),并在默认(或您指定的任何其他"x)寄存器中输入您输入的最后一个单词。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.