在给定的字符中“包裹”一个单词或字符串是我在 VIM 中执行次数最多的操作之一。
最常见的字符组合(分别添加在开头和结尾):<>, (), '', "", **, __,--, etc...
在 VIM 中是否有一种本地方式可以做到这一点?如果没有,我们如何为此设置一个宏?
答案 0 :(得分:2)
用给定的字符对包围一个单词的最“原生”方式是:
ciw
改变单词(单词默认放入寄存器"
),"
插入寄存器<C-r>"
的内容,<Esc>
返回正常模式。简而言之:
ciw(<C-r>")<Esc>
答案 1 :(得分:1)
您可以创建一个抽象所有 chang 内部词的函数:
if !exists('*AddSingleQuotes')
function! AddSingleQuotes()
exec "normal! ciw''\<Esc>P"
endfunction
endif
nmap <Leader>q :call AddSingleQuotes()<CR>
并且还修改添加双引号:
if !exists('*AddDoubleQuotes')
function! AddDoubleQuotes()
exec "normal! ciw\"\"\<Esc>P"
endfunction
endif
nmap <Leader>q :call AddDoubleQuotes()<CR>
注意:if !exists
部分确保 vim 不会多次加载该函数,即使您重新加载 vimrc。