ラクダケースまたはsnake_caseを尊重するようにするにはどうすればいいですか?


20

通常、camelCaseまたはsnake_caseを使用して、識別子を形成する複数の単語を区切ります。「単語」の動きが(場合、それはいいだろうbwe)それらの内部識別子の境界を検出します。

この動作はどのように達成できますか?(Plugin / vimrc / ...?)


1
私もこれを知りたいsnake_case
マーティントゥルノイ

あなたはiskeywordこの設定で何かをすることができるかもしれませんが、これには多くの追加の副作用があるのではないかと心配しています...(を参照:help word)。
マーティントゥルノイ

@Carpetsmoker私はそれがうまくいくと思ったsnake_case。そうではないようで、質問に含めた。
ジャスパー

4
VimWikiはあなたをカバーしてくれました:vim.wikia.com/wiki/Moving_through_camel_case_words他の誰かが私にそれを打ち負かさないなら、私はある時点で適切な答えを書きます。
リッチ

私は個人的にcamalCased単語を単語全体と見なし、大文字小文字やアンダースコアのために途中で単語を分割するという考えが好きではありません。通常、私はftキーを使用して、内なる単語の動きを管理します。
スキマスイッチ

回答:


11

プラグインCamelCaseMotionは、あなたが望むことをします。デフォルトでは、キーにマッピングし,w,b,eノーマルと同等ですwbe。CamelCaseとsnake_caseの両方で動作します:

例:

camelCaseWord

を使用d,wすると削除されcamelます。再度使用すると削除されCaseます。

または、スネークケースの場合:

snake_case_word

d,wは削除さsnake_れ、2回目には削除されcase_ます。

「内部」モーション(などdiw)も期待どおりに機能するはずです(などdi,w)。

ご希望の場合は、デフォルトをオーバーライドすることができますwbと、eと:

map <silent> w <Plug>CamelCaseMotion_w
map <silent> b <Plug>CamelCaseMotion_b
map <silent> e <Plug>CamelCaseMotion_e
sunmap w
sunmap b
sunmap e
omap <silent> iw <Plug>CamelCaseMotion_iw
xmap <silent> iw <Plug>CamelCaseMotion_iw
omap <silent> ib <Plug>CamelCaseMotion_ib
xmap <silent> ib <Plug>CamelCaseMotion_ib
omap <silent> ie <Plug>CamelCaseMotion_ie
xmap <silent> ie <Plug>CamelCaseMotion_ie

2
このプラグインのデフォルトマッピングは,コマンドをシャドウする(最後のf/ t/ F/ Tモーションを繰り返す)ことに注意してください。つまり、そのコマンドを使用する場合は、遅延を待つ必要があります(で構成'timeoutlen')。幸いなことに、プラグインを使用すると、選択した代替マッピングを使用できます。
tommcdo

このプラグイン、すなわちといくつかの副作用があるように思われる:dw, key);にカーソルがあるときにk(改行を含む)行全体を削除しているようだ、私は期待しながら、key削除する...
マーティンTournoijに

1
このプラグインの方が優れていることがわかりました。モーションと削除の組み合わせは適切に機能し、括弧で停止します。
パスカル

マイナーポイントが、最初の例では、それは確実に除去するであろうcamelし、その後Case、ありませんかWord
preferred_anon
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.