回答:
これが粗雑な「行」テキストオブジェクトです:
xnoremap il g_o0
onoremap il :normal vil<CR>
xnoremap al $o0
onoremap al :normal val<CR>
そして粗雑な「バッファ」テキストオブジェクト:
xnoremap i% GoggV
onoremap i% :normal vi%<CR>
---編集---
:「演算子は、」自身で何もしないコマンドであるd
、y
など
これらのキーを押すと、「オペレーター保留モード」になり、Vimは、操作する対象を「オペレーター保留モーション」で指示するのを待ちます。
:omap
または:onoremap
を使用して、カスタムのオペレーター保留モーションを定義できます。ここで使用されているテクニックは、以下に触発されてい:help omap-info
ます。
私が使用することを注意:onoremap
するのでil
、al
そしてi%
まだ存在しません。既存のモーションまたはテキストオブジェクトを上書きする場合は、たとえばip
、再帰的なマッピングを使用する必要があります:omap
。
:help :map-operator
もう少し高度な方法について説明します。
ビジュアルモードのを参照:help v_o
しo
てください。
o
onoremapに(オペレータ保留モード)?o
ビジュアルモードでは何をしますか?セレクションの反対側にジャンプするように見えるので、それは「反対側」だと思います...どうやっ:h
てそれを見つけるのですか?:h x_o
またはで見つけることができません:h o
。
追加の解決策として、0ではなく^を使用することをお勧めします(したがって、行は最初の文字の先頭から始まります:
xnoremap il g_o^
onoremap il :normal vil<CR>
xnoremap al $o^
onoremap al :normal val<CR>
このように「行を変更」すると、インデントレベルが尊重されます。