質問
viは、ダッシュ-
およびスペース 
を、 dw
や cw
などのコマンドの単語区切り文字として扱います。
アンダースコア _
を追加する方法はありますか?
src_branch
を dest_branch
に変更するなど、アンダースコアを含む変数名の一部を変更したいことがよくあります。文字数を数えて s
( 3sdest
など)を使用しますが、 cw
( cwdest
)。
解決
vimを使用している場合は、 iskeyword
オプションを設定して変更できます(:he iskeyword
)。それがオプションでない場合は、カウントする代わりにいつでも ct _
を使用できます。
他のヒント
アンダースコア
_
を追加する方法はありますか?
:set iskeyword-=_
このような場合のもう1つの優れたオプションは、 camelcasemotion プラグインを使用することです。
新しいモーション、b
、、e
、および、w
を追加します。これらは b
と同様に機能します、 e
、および w
がありますが、CamelCaseとsnake_caseの単語は認識されます。それを使用して
c,edest
これは" src_branch"を置き換えます" dest_branch"カーソルが" src_branch"の最初の文字にあった場合。
cf_dest _
と入力して、カウント部分を保存できます。
編集:または提案どおり: ct _
は、下線文字の直前までテキストを変更します。 (私は f
モーションをより多く使用しているので、より自然に感じました)
または 'iskeyword'
を再定義することもできます(詳細は:help iskeyword
)。
自分でこれを見て、これを.vimrcに追加しました:
set iskeyword=!-~,^*,^45,^124,^34,192-255,^_
私の.vimrcに問題がありました^ |および^"は、セットアップのデフォルトのiskeywordの一部であったため、ASCII値に変更しましたが、正常に機能します。私の主な変更は、「^ _」を追加することでした; vimがアンダースコアを単語の一部として認識しないように、デフォルト設定の最後まで。