我怎样才能复制我正在输入的单词?(无需模式切换......)

我怎样才能复制我正在输入的单词?(无需模式切换......)

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

我该怎么做?或者有更好的“vim 方式”来实现类似的效果?

谢谢。

答案1

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

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

使用 开始录音CtrlK,使用 结束录音CtrlL。使用 以插入模式粘贴录制的文本CtrlR o

答案2

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

答案3

使用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/

答案4

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

相关内容