VimはデフォルトでCamelCaseの単語テキストオブジェクトを提供しないため、 自分で作成する必要があります。新しい優れたプラグインがすでに存在するため、我々は、ホイール を改革する必要はありませんし、我々はベースとしてそれを使用することができるということです。camelCaseMotion
このスクリプトは、w
に似た動き,w
、,b
と,e
(、b
を定義します)は、単語単位では移動しませんが(前方/後方)、Camel-wiseです。単語境界および大文字に変換する。問題は、 は、単語全体を選択するためにiw
に似たテキストオブジェクトを定義しないということです。したがって、 を作成してみましょう。
テキストオブジェクトには、ビジュアルモードとオペレータ保留モードの2つの定義が必要です。ここに私たちの定義は( .vimrc
に追加する)です:
vmap ,i <Esc>l,bv,e
omap ,i :normal v,i<CR>
あなたは私たちがプラグインによって定義された,b
と,e
動きを利用して見ることができるように。
最初の定義では、ビジュアルモードのときに,i
と入力することができ、 は現在の "inner camelCase word"を選択します。 (l
動きが常にカーソルが上にある単語を取得するための回避策です。カーソルが単語の最初の文字の上にあるときにそうでなければ、我々は以前のものを得る)
2番目の定義は、最初に 1を使用しています私たちは、プラグインをインストールして、我々はあなたが望んで行うことができます私たちの.vimrc
に定義を追加した後,i
でd
またはc
作品のようなオペレータにしましょう。例えば、私はこの例を取る場合:私のカーソルが文字の上にある場合は
DefaultHandlerWord
はHandler
のn
は、私が使用することができます。
,e
が行きHandler
,b
の最後の文字に移動するにはHandler
,w
最初の文字はWord
の最初の文字になります。
d,i
Handler
を削除し、のみDefaultWord
c,i
がHanlder
を削除し、別の単語
の可能重複によって、それを交換するチャンスを得るために取得するには、[移動コマンドは、アンダースコアやキャメルケースが含まれますように、私はVimを設定することができますどのようにしかし、完了はそれらを無視する?](http://stackoverflow.com/questions/1279462/how-can-i-configure-vim-so-that-movement-commands-will-include-underscores-and-c)(私がコメントでなければならないと思うLucの答えに記載されているように) – yshavit