1

PEP8_は単語の区切り記号として使用されます。たとえば、 という名前のメソッドget_context_dataです。

cawget_context_dataあなたがに変更したいときはとてもクールですset_context_data

set iskeyword-=_ググってvimrcに追加しました。

しかし、この変更には別の問題があります。入力するとメソッド名をオートコンプリートできget_ますが、メニューには表示されませcontextcontext_data。問題を解決する方法はありますか?

4

2 に答える 2

3

設定を変更すること'iskeyword'で、多くのことに影響を与えます (そして潜在的に破壊します)。その中には、単語の動き ( weなど)、補完 (ここでの問題)、および構文の強調表示があります。

元の設定を維持することをお勧めします (結局のところ、単一の変数はおそらく単一の単語get_context_dataでも表されるはずです)。私のcamelcasemotion プラグインを使用して、アンダースコアで区切られたフラグメントを操作できます。プラグインを使用すると、元のモーションとテキスト オブジェクトをオーバーライドするか、代わりに を使用できます。ca,wcaw

于 2013-03-19T09:53:05.533 に答える
1

iskeywordオプションは変更しないでください。それを必要とするコマンドはたくさんあります。アンダースコア接続文字列()の編集をa_b_c_d簡単にしたい場合は、次のマッピングを試すことができます。

onoremap iu :<c-u>normal! T_vt_<cr>
onoremap au :<c-u>normal! F_vf_<cr>

このマッピングを使用すると、(iuはアンダースコアで変更できることを意味します)。あなたは例えば

get_cont[I]ext_data ( [I]:cursor) 

ciu取得したものを入力するとget_[I]_datadiu削除auが実行され、ラップされたアンダースコアに対しても操作が実行されます。

ただし、これらの場合、上記のマッピングは機能しませ(または予期せず機能します^ _ *

g[I]et_context_data -> [I]_context_data  (you could do bct_ instead)
get_context_dat[I]a -> get_context_[I]   (you could do ecT_ or T_cw instead)

マッピングは単語ごとに機能しないため、ニーズに合わせて作成できます。

于 2013-03-19T14:03:15.210 に答える