視覚モードを終了せずに現在の選択を失うことなく、どのようにインデントしますか?


16

多くの場合、手動でインデントする必要がありますが、ビジュアルモードに入ったら、インデントする行を選択し、<またはを押し>ます。必要に応じてビジュアルモードを終了します。

視覚モードのままにしておき、選択とカーソル位置をそのままにしておきたいのです。

どうすればこれを達成できますか?


1
再マッピングがトリックを行う可能性はありますか?のようなもの:vmap < <a
フェフ

回答:


19

私はvimrcにこれを持っています:

"keep visual mode after indent
vnoremap > >gv
vnoremap < <gv

.(ドット)を使用して最後のインデントアクションを繰り返すこともできます。


ほぼ完璧です。ただし、カーソルが行とともに移動しないようにしてください。
アキヴァ

1
@Akiva ^そのマッピングの最後にを追加したいですか?すなわち>gv^
マーティントゥルノイ

2
カーソルは、インデントされたテキストに対する位置に応じて移動する(または移動しない)ようです。同じ列番号で、または同じ文字で、カーソルをどこに残したいのかは明確ではありませんか?また、あなたはまだで、カーソルなどを移動させることができることを知ってjkl一方でなどビジュアルモード?
-VanLaser

2
正直なところ、コマンドの後に<Right>And を追加しただけで<Left>、うまくいきました。
アキバ

9

これは自動ソリューションではないことはわかっていますがgv、視覚的なインデントの後に使用することでこれを実現できます。

これにより、前の選択が選択され、最後の行にカーソルが置かれた状態で視覚モードになります。詳細については:h gv、を参照してください。


-2

次のマッピングをvimrcに追加してみました:

vmap < <a
vmap > >a

おもしろい結果が得られるようです。おそらくあなたが探しているものでしょうか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.