web-dev-qa-db-ja.com

viでの単語区切り記号のカスタマイズ

viは、ダッシュ-とスペースを、dwcwなどのコマンドのワード区切り文字として扱います。

アンダースコア_も追加する方法はありますか?

src_branchdest_branchに変更するなど、アンダースコアを含む変数名の一部を変更したいことがよくあります。文字を数えてs3sdestなど)を使用することになりますが、cwcwdestなど)を使用する方がはるかに簡単です。

50
Joe Watkins

Vimを使用している場合は、iskeywordオプション(:he iskeyword)を設定して変更できます。それがオプションでない場合は、カウントする代わりにいつでもct_を使用できます。

22
WMR

アンダースコアを追加する方法はありますか_ 同様に?

:set iskeyword-=_ 
35
g33kz0r

このような場合のもう1つの良いオプションは、 camelcasemotion プラグインを使用することです。

新しいモーションを追加します,b,e、および,w、これはbe、およびwと同様に機能しますが、CamelCaseおよびsnake_caseの単語を認識する点が異なります。それであなたは使うことができます

c,edest

カーソルが「src_branch」の最初の文字にある場合、これにより「src_branch」が「dest_branch」に置き換えられます。

5
Anton Styagun

cf_dest_と入力して、カウント部分を保存できます。

編集:または提案どおり:ct_は、下線文字の直前までテキストを変更します。 (私はfモーションをより多く使用しているので、より自然になりました)

または、'iskeyword'(詳細は:help iskeyword)を再定義することもできます。

1
HS.

私はこれを自分で見ていて、これを.vimrcに追加しました:

set iskeyword=!-~,^*,^45,^124,^34,192-255,^_

私の.vimrcには^ |の問題がありました^ "はセットアップのデフォルトのiskeywordの一部だったので、ASCII値に変更して問題なく動作しました。主な変更は、デフォルト設定の最後に" ^ _ "を追加して、vimにアンダースコアが表示されないようにすることでした。言葉の一部として。

0
kbosak