如何在Vim中实现选中内容自动填充substitute替换命令的功能?
在Vim中实现可视化选中后快速生成全局替换命令
在Sublime Text里,选中文本后按Ctrl+h会自动把选中内容填入替换框,要在Vim里实现类似效果,只需在你的~/.vimrc(或init.vim)中添加以下可视化模式映射:
基础版映射(与Sublime快捷键一致)
vnoremap <C-h> y:%s/<C-r>0//<Left>
各部分作用说明:
vnoremap:定义可视化模式下的非递归快捷键映射<C-h>:触发快捷键,和Sublime保持相同操作习惯y:将当前选中的文本复制到寄存器0:%s/:唤起全局替换命令的开头部分<C-r>0:将寄存器0中保存的选中内容插入到命令行//<Left>:补全替换命令的分隔符,并将光标移动到两个斜杠中间,直接输入替换后的内容即可
进阶版(适配含特殊字符的选中内容)
如果选中的文本包含/、.、*这类正则特殊字符,用#作为分隔符可以避免转义麻烦:
vnoremap <C-h> y:%s#<C-r>0##<Left>
配置完成后,重启Vim或执行:source ~/.vimrc生效。之后在字符可视化模式选中文本,按下Ctrl+h就能直接生成带选中内容的全局替换命令,无需手动输入选中内容。
内容的提问来源于stack exchange,提问作者DanielTA
相关产品推荐
相关产品推荐

