在vim中浏览CamelCase单词

时间:2012-01-20 23:45:27

标签: vim

如何在vim中的第一个大写字符之前或之后跳转?

如果我想从(例如)camelCase中删除或选择第一个单词。如果我是m-character我可以做FcdtC,但是有更普遍的方法吗?

4 个答案:

答案 0 :(得分:20)

使用以下搜索命令。跳转到下一个大写 字符 -

/\u

将光标移动到下一个大写右侧的一个字符 字符 -

/\u/s+

/\u\zs

答案 1 :(得分:3)

我认为没有任何内置的东西。。作为@ib。表示,您可以使用正则表达式运动,但输入并不是特别容易。但是,有一个plugin可以为此添加必要的动作,以及下划线的分隔标识符。

答案 2 :(得分:3)

**更新了答案,使用了ib的贡献:

"select from first char up to First uppercase letter ( after first char )
map ,b bv/[A-Z]<cr>h

**原始答案

关于第一个大写字母前后的跳跃 如果您愿意,可以映射它。

"Before next uppercase letter
map ,A /[A-Z]<cr>l

"After next uppercase letter
map ,B /[A-Z]<cr>h

:d。希望这可以帮助。我现在正在读你的第二个问题。

好的,请仔细阅读。现在你可以做到这一点

bv,A

:d

答案 3 :(得分:2)

我想我认为这可能是“vim方式”:

Vim允许我们定义自己的运营商!

" movement mapping {
" Delete yank or change until next UpperCase
" o waits for you to enter a movement command : http://learnvimscriptthehardway.stevelosh.com/chapters/15.html
" M is for Maj (as in french)
" :<c-u>execute -> special way to run multiple normal commande in a map : learnvimscriptthehardway.stevelosh.com/chapters/16.html

onoremap M :<c-u>execute "normal! /[A-Z]\r:nohlsearch\r"<cr>

那样给予

DailyAverage.new(FooBarBaz)

如果我的光标位于a(来自DailyMesure),我按dM它会删除到A并提供

Average.new(FooBarBaz)

它适用于等待移动的所有命令(c y ........)

由于亮点不佳,需要改进此代码段。