vi{
とva{
を使用してC++コードブロックを選択できます。私はそれらをヤンク/削除する必要があるとき私に多くを助けます。Vimを使ってPythonコードブロックを選択する方法は?
しかし、Pythonはインデントを使用してコードブロックを示します。私はもっと良い方法を見つけることができません。何か案は?
vi{
とva{
を使用してC++コードブロックを選択できます。私はそれらをヤンク/削除する必要があるとき私に多くを助けます。Vimを使ってPythonコードブロックを選択する方法は?
しかし、Pythonはインデントを使用してコードブロックを示します。私はもっと良い方法を見つけることができません。何か案は?
私はまだそれを使用する機会はあまりありませんでしたが、マイケルスミスのvim-indent-objectはあなたの望むものに近いかもしれません。上のカーソル5.
を通じてライン2を選択する
1 This is
2 some text
3 with multiple
4 levels of
5 indentation.
6 There is also
7 another stanza.
ライン2上のカーソルが、4または5種類Vii
:
使用例(行番号がアクティブset number
と同様に示されています) 5を介して行2を選択するライン3、ライン3上のカーソル3.
を通じてライン2を選択するタイプVai
、タイプVaiii
(又はViiii
)は、(ビジュアルモードでインデントオブジェクトの複数の用途は次のレベルに選択範囲を拡張しますアップ/アウト)。
上記現在のインデントレベルプラスライン 便利なあなたは入門ラインをつかむしたい(例えばif
とその「それから」ブロックをつかむ):
テキストは、それが定義オブジェクトです:
ai
ii
:現在のインデントレベルaI
:現在のインデントレベルに加え、上記1行if
/endif
)。iI
:現在のインデントレベル(効果的に、ii
、およびiI
が同じである)オブジェクトは、現在のインデントレベルとスタートを削除するには、テキストオブジェクト(すなわちcii
を期待して、他のコマンドでも使用することができますその置換を挿入する)。
現在のインデントレベルに空白行がある場合は機能しますか? – industryworker3595112
ビジュアルモードの場合はv
と打ち込み、(
または)
と表示されます。これにより、次の空白行に移動します。それはあなたのコードブロックに対応していなければなりません。
これは正しいですか?'{}'は段落のためのもので、次の空白行に移動します。 – progo
'('と ')'は文のためのものです。 "文は' .'、 '!'または '?'で終わり、行の終わりかスペースかタブで終わるものと定義されています。 –
行を表示して(:set nu)、コードブロックが始まる行(:lineNumber)に移動してそれらをヤンクすることができます。
私は通常、ファイル全体を折り畳むために "zM"を使用し、次に関数全体をヤンクするには "2yy"を使用します。
autocmd FileType python set foldmethod=indent
:あなたの関数は、いくつかのクラスの中にある場合
、あなたの代わりに "ZM" の "ZC" あなたはZMを作るために〜/ .vimrcとに次の行を追加します。必要
/ZC作業を使用することができます可能な複製[Vimのインデントレベルに基づいてブロックをマークする](http://stackoverflow.com/questions/7377771/mark-block-based-on-indentation-level-in-vim) –