2012-01-20 5 views
15

vimで最初の大文字の前後にジャンプするには?vimでCamelCaseの単語を使って移動する

また、(たとえば)camelCaseから最初の単語を削除または選択したい場合は、私がm-characterであれば、私はFcdtCを行うことができますが、それを行うもっと一般的な方法がありますか?

答えて

3

何も内蔵されていないと思います。 。 @ibとして。正規表現の動きを使うことができますが、特に入力するのは簡単ではありません。しかし、必要なモーションを追加するpluginがあります。これには、分離された識別子のアンダースコアも含まれます。

+0

プラグインはそれに付随する他のすべてのもののため理想的ですが、正規表現モーションタイピングに関しては、一度マッピングに隠れてしまえば、何も失われず、少しの知識しか学ばれません。実際には、キックのために、プラグインを開けて、自分のコマンドをどのようにマップするかを見てください:) – kikuchiyo

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。お役に立てれば。私はあなたの2番目の質問を今読んでいます。

[OK]を読んでください。 D

+0

"ignorecase"パラメータに応じて複雑すぎたり、誤動作を起こしたりします( ''ignorecase 「スマートケース」)。 – Benoit

+0

'ignorecase'の良い点。私は複雑さを見ません。おそらく1つのキーストロークマッピングですか?私は@ ib。の提案がより好きです。 「ignorecase」を使用していないと仮定して、これについてどう思いますか? map /\h – kikuchiyo

+0

私は '[A-Z]'が複雑すぎることを意味しました。 '\ u'は50%少ない文字です。しかし、それはただ気が狂っているだけです:) – Benoit

20

次の検索コマンドを使用します。今、あなたはこの

bv,A 

を行うことができます。次の大文字 character-

/\u/s+ 

または

/\u\zs 
2

の右にカーソルを1つの文字を移動するための次の大文字 character-

/\u 

にジャンプするために私は思うIそれを行うにはおそらく "ヴィムの方法"を考えた:

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> 

そのように私のカーソルが(DailyMesureから)a上にある場合

DailyAverage.new(FooBarBaz) 

を与え、私はそれが待機しているすべてのコマンドで動作Aに削除し

Average.new(FooBarBaz) 

を与えるdMを押してください動きのために(cy ........)

このスニペットは、ハイライトが悪いために改善する必要があります。

関連する問題