Vim:无需进入插入模式替换长短不同的单词
无需进入插入模式替换不同长度单词的Vim方案
内置快捷操作
- 用
caw或ciw简化流程:光标定位到目标单词,输入caw(删除单词及周围空格并进入插入模式)或ciw(仅删除单词内容),直接输入替换词后按<Esc>退出。虽然仍会进入插入模式,但比diw+手动进入插入模式少一步操作,更连贯。
纯命令行/映射方案(全程不进插入模式)
全局替换当前单词
在配置文件(~/.vimrc或init.vim)中添加映射:
nnoremap <leader>r :%s/\<<C-r><C-w>\>/<C-r><C-w>/gc<Left><Left><Left>
用法:光标放在目标单词上,按<leader>r(默认<leader>为\),命令行自动填充全局替换模板,直接修改后方的目标单词即可,按回车执行。其中g表示全局替换,c表示替换前确认,不需要确认可去掉c。
仅替换当前行的目标单词
添加映射:
nnoremap <leader>R :s/\<<C-r><C-w>\>/<C-r><C-w>/<Left><Left>
用法同上,仅作用于当前行,适合单变量局部重命名。
无映射临时操作
不用配置映射也能实现:
- 光标定位到目标单词,按
*选中该单词(自动进入搜索模式) - 输入
:s//short/g(将short换成你需要的单词),回车执行全局替换;若仅替换当前行,去掉末尾的g即可。
内容的提问来源于stack exchange,提问作者User
相关产品推荐
相关产品推荐

