8

Vim にはibi)i}、 などの非常に便利なテキスト モーションがいくつかあり、テキストの一部をすばやく選択できます。しかし、行単位モードで内部ブロックが必要になることがよくあります。例 (行番号付き):

1:    $foo = array(
2:        'bar' => 'Bar',
3:        'quux' => 'Quux',
4:    );

ここで、カーソルが 2 行目または 3 行目にあり、viborvi)を押すと、Vim は 2 行目、3 行目、および 4 行目のインデント スペースを選択しVibますVi)。小文字でv.

行ごとのモードで内側のブロックを選択する簡単なテキストモーションまたはその他の簡単な方法はありますか?

4

3 に答える 3

4

私はこれに反対票を投じるかもしれませんが、必要な行数、V3j またはV2kそれがわかっている限り、上向きまたは下向きの動きをするだけです。

絶対番号と相対番号()を切り替えるバインディングがある:set relativenumberので、それらがすべて画面に表示されている限り、視覚的に簡単に識別できます。

于 2011-07-19T10:52:40.590 に答える
3

あなたが説明した振る舞いをするのはいいことだということに同意します。決定した場合は、Kana のtextobj-userフレームワークを使用して、いつでも独自のカスタム テキスト オブジェクトを作成できます。これを使って ruby​​ ブロックを操作するためのテキスト オブジェクトを作成しましたが、驚くほど簡単に作成できました。

于 2011-07-19T11:59:11.390 に答える
2

最後に、より簡単な方法を見つけました。vim-indent-objectを使用すると、インデント レベルに基づいてテキストの領域を選択できます。私のソースコードが常に適切にインデントされていることを考えると、これはほとんど同じことです。

ここで、例の 2 行目または 3 行目にいる場合、 を押しviiて内側のインデント オブジェクトを選択するだけで、2 行目と 3 行目が選択されます。Groovy!

于 2011-07-21T07:02:46.853 に答える