有没有一种简单的方法可以用 vim 移动到下一个大写字母?我经常使用驼峰式变量,它可能很有用。
答案1
有一些脚本可以重新定义单词运动命令 ( b
, e
, w
) 以在 CamelCase 单词中的大写字母处停止;骆驼案运动看起来很完善(免责声明:我从未使用过它)。这Vim 维基如果您愿意自己动手,这里有一些更简单的脚本示例。这是重新映射C-Left
和C-Right
处理 caml 大小写单词的相对简单的方法。
nnoremap <silent><C-Left> :<C-u>call search('\<\<Bar>\U\@<=\u\<Bar>\u\ze\%(\U\&\>\@!\)\<Bar>\%^','bW')<CR>
nnoremap <silent><C-Right> :<C-u>call search('\<\<Bar>\U\@<=\u\<Bar>\u\ze\%(\U\&\>\@!\)\<Bar>\%$','W')<CR>
inoremap <silent><C-Left> <C-o>:call search('\<\<Bar>\U\@<=\u\<Bar>\u\ze\%(\U\&\>\@!\)\<Bar>\%^','bW')<CR>
inoremap <silent><C-Right> <C-o>:call search('\<\<Bar>\U\@<=\u\<Bar>\u\ze\%(\U\&\>\@!\)\<Bar>\%$','W')<CR>
答案2
以下 Vim 命令将 Control-t 组合键(使用您想要的任何方便的组合键)映射到命令/[A-Z]
(后跟回车),该命令将在“正常模式”(命令模式)下搜索下一个大写字母。如果您愿意,您可以将其放入您的.vimrc
文件中(减去:
)。和<c-t>
的<return>
输入方式与我在这里所写的一样,Vim 会理解。
:nmap <c-t> /[A-Z]<return>