移至下一个大写字母

移至下一个大写字母

有没有一种简单的方法可以用 vim 移动到下一个大写字母?我经常使用驼峰式变量,它可能很有用。

答案1

有一些脚本可以重新定义单词运动命令 ( b, e, w) 以在 CamelCase 单词中的大写字母处停止;骆驼案运动看起来很完善(免责声明:我从未使用过它)。这Vim 维基如果您愿意自己动手​​,这里有一些更简单的脚本示例。这是重新映射C-LeftC-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>

相关内容