我想创建一个命令,用另一个替换光标下的单词,比如我在光标下面有单词have
,并用单词had
替换它,反之亦然。怎么做到这一点?
答案 0 :(得分:8)
这可以通过ciw
轻松完成,然后输入您要替换它的单词。假设您要替换具有不同值的单词。
另一个解决方案是你可以使用像switch.vim这样的插件。您必须定义要替换的单词/正则表达式。
答案 1 :(得分:3)
如果你真的想用更长的单词来做这个,那么这个方法可能有所帮助。首先,将光标放在单词“have”上,然后使用yiw
将其(将其复制)到@0
寄存器(以及未命名的寄存器,但我们即将覆盖它)。然后将光标移动到“have”并使用ciw<C-R>0<Esc>
将其替换为拉出的单词。
不要将<C-R>
键入五个字符:我的意思是按住CTRL键并输入 r 。同样,<Esc>
表示转义键。如果要从中制作地图,请将每个键入五个字符,例如
:nmap <F2> ciw<C-R>0<Esc>
答案 2 :(得分:2)
如果要替换光标下所有出现的单词,可以将其添加到_vimrc中:
" search and replace all occurrences of word under cursor
:nnoremap <C-h> :%s/\<<C-r><C-w>\>/
:inoremap <C-h> <ESC>:%s/\<<C-r><C-w>\>/
用法:
1)按 Ctrl + h (在光标下面是单词&#34;有&#34;),Vim将在命令行中输入:
:%s/\<have\>/
2)现在只需完成替换声明:
:%s/\<have\>/had/g
3)然后按 ENTER ...
答案 3 :(得分:0)
SwapIt - Extensible keyword swapper允许您配置单词集(例如have
和had
),并通过<C-a>
/ <C-x>
映射进行切换。