如果您不介意按而不是组合键cw
,那么我相信您可以通过定义快捷方式轻松获得所需的内容。您可以做的是放置以下内容
nmap <leader>a "1yiw:let @/=@1^Mciw
在您的.vimrc
文件中。 请注意,这 ^M
是返回键的捕获,而不是字符^
和M
。您可以通过在插入模式下按Ctrl+ V,然后按来获得它Enter。现在,在定义好之后,按<leader>a
将与执行相同的操作cw
,但是现在单词(更改之前)将出现在“最后搜索寄存器”(即/
寄存器)中,因此n在进行更改并返回后按到正常模式将使您再次出现。同样,按N可使您进入上一个事件。
快捷方式 当然,您可以选择不同于的快捷方式<leader>a
,但是我只是发现这是一个非常易于访问的快捷方式。就我个人而言,我已经设置<leader>
为,,
所以我只需要按,,然后按a,但这是因为我不使用美式键盘,所以我\有些隐藏(我相信\是默认值<leader>
)。
解释 这个想法真的很简单。将光标下方的单词移至搜索寄存器/
,然后执行cw
。这nmap <leader>a "/yciw
就是我的目标,但是不幸的是,我不认为您可以将其拖到搜索寄存器中,因此解决方法是将光标下的单词拖到1
寄存器中,然后将其设置为/
等于该寄存器,然后再执行cw
。所以"1yiw
是洋基光标到寄存器下的内心世界的一部分1
。如果您不了解内部单词,可以签出:help iw
。然后,:let @/=@1
通过捕获Enter将1
寄存器的内容放入/
。在这一点上n和N用作光标下该单词的下一个和上一个出现的位置,然后执行a ciw
,以便删除光标下的单词并将Vim置于插入模式。
单词与内部单词的比较 我刚刚意识到,我认为您希望整个单词都在光标下,而不仅仅是从光标的角度出发。这就是为什么我使用iw
而不是所有w
地方的原因。如果不是这种情况,则应使用
nmap <leader>a "1yw:let @/=@1^Mcw
代替。如果光标位于单词的第一个字母上,则没有区别。
免责声明 如果你试图通过一个在一光标立场,用它的东西,包含字母的东西不同,例如,该解决方案将可能无法正常工作\
或更换iw
的iW
,ib
,is
或ip
什么的(虽然我不知道你为什么会想要整个句子都具有此功能)
*
搜索。尤其是它可以*
在不移动光标的情况下直观地选择当前单词。安装后,您可以*ciw
将旧单词放入搜索寄存器并更改单词。然后,您可以使用n
和.
。