有时我想设置一个起始标记,然后输入一个单词(通常是一个很长的变量名),在输入完一个单词后,我可能会设置一个结束标记。然后我可以将这个单词存储在我的寄存器中,这样我就可以粘贴它而无需任何额外的移动、模式切换等。
我该怎么做?或者有更好的“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-N或Ctrl-P触发自动完成。
当您重新输入长单词时,它非常有用。
答案3
使用m
和y
。
- 输入Ctrl+ O(退出插入模式并执行 1 个命令)
- 键入
mk
以将标记设置k
为您的当前位置 - 输入您的单词
- 类型Ctrl+O
- 键入
y`k
以从标记拖动k
到当前位置
答案4
使用<C-o>
,您可以暂时离开插入模式来执行单个命令。然后您可以发出yiw
命令(复制内部单词),并将您输入的最后一个单词放入默认寄存器(或您使用 指定的任何其他单词"x
)中。