如何在vim中的第一个大写字符之前或之后跳转?
如果我想从(例如)camelCase中删除或选择第一个单词。如果我是m-character我可以做FcdtC,但是有更普遍的方法吗?
答案 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
........)
由于亮点不佳,需要改进此代码段。