Vim技巧:如何选中含内部双引号的外层双引号内文本
Vim选中含嵌套双引号完整字符串的方法
在Vim里遇到这种带未转义嵌套双引号的字符串时,vi"只能识别到第一个闭合的引号,要选中完整内容可以试试这几个办法:
- 手动扩展选区:先用
vi"选中第一段内容,按l把光标移到第一个闭合引号的右侧,再按v进入可视模式,直接移动光标到最后一个双引号的位置即可。 - 正则匹配选区:按
v进入可视模式,输入正则表达式/"[^"]*\("%[^"]*"\)*[^"]*",回车后就能匹配包含嵌套双引号的完整字符串。 - 自定义映射简化操作:如果经常碰到这种场景,可在
~/.vimrc里添加自定义映射,比如:
之后按nnoremap <leader>vs :execute 'normal! v/"[^"]*\("%[^"]*"\)*[^"]*"<CR>'<CR><leader>vs就能快速选中这类字符串。
另外提一句:你例子里的JavaScript字符串其实存在语法错误,正常写法应该把嵌套引号转义成\"Jim\",如果是转义后的格式,很多Vim的语法高亮插件能识别转义引号,vi"就能直接选中完整内容。
内容的提问来源于stack exchange,提问作者DrDark
相关产品推荐
相关产品推荐

