回答:
これが粗雑な「行」テキストオブジェクトです:
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てください。
oonoremapに(オペレータ保留モード)?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>
このように「行を変更」すると、インデントレベルが尊重されます。