在 VIM 中的单词的开头和结尾添加一个字符
Adding a char to beginning and end of a word in VIM
'Enveloping' 给定字符中的单词或字符串是我在 VIM 中执行次数最多的操作之一。
最常见的字符组合(分别在开头和结尾添加):<>、()、''、""、**、__、-- 等...
在 VIM 中是否有执行此操作的本机方法?如果没有,我们如何为此设置宏?
围绕 具有给定字符对的单词的最“原生”方式是:
- 改成
ciw
字(字默认放入寄存器"
),
- 插入开始字符,
- 用
<C-r>"
, 插入寄存器"
的内容
- 插入结束符,
- 使用
<Esc>
返回正常模式。
简而言之:
ciw(<C-r>")<Esc>
等插件的情况下可以获得的最高效方法
您可以创建一个函数来抽象所有 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.
'Enveloping' 给定字符中的单词或字符串是我在 VIM 中执行次数最多的操作之一。
最常见的字符组合(分别在开头和结尾添加):<>、()、''、""、**、__、-- 等...
在 VIM 中是否有执行此操作的本机方法?如果没有,我们如何为此设置宏?
围绕 具有给定字符对的单词的最“原生”方式是:
- 改成
ciw
字(字默认放入寄存器"
), - 插入开始字符,
- 用
<C-r>"
, 插入寄存器 - 插入结束符,
- 使用
<Esc>
返回正常模式。
"
的内容
简而言之:
ciw(<C-r>")<Esc>
等插件的情况下可以获得的最高效方法
您可以创建一个函数来抽象所有 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.