の出力をバッファ:read !lsに追加できることはすでにわかっています。ls出力に適切なインデントを取得したい場合はどうですか?
例:私のバッファは次のようになります
def foo
# run :read !ls here
end
の出力をバッファ:read !lsに追加できることはすでにわかっています。ls出力に適切なインデントを取得したい場合はどうですか?
例:私のバッファは次のようになります
def foo
# run :read !ls here
end
最も一般的な方法は>、領域をインデントするためにモーションを使用してから、.コマンドを使用してインデントを繰り返すことです。
:r!lsの出力を読み込むために行います。ls`[ます。>`] .正しくなるまで、コマンドでインデントを繰り返すだけです。およびマークは[、]最後に変更されたテキストの開始と終了にそれぞれ設定されます。この場合、:r!lsコマンドを出力します。
詳細については、次を参照してください。
:h `[
:h .
<C-R>=と挿入モードで組み合わせることで、これを行うことができますsystem()。
カーソルを目的の位置に移動します。次に、挿入モードに入り、次のように入力します。
<C-R><C-P>=system('ls')<Enter>
<C-R><C-P>は、 との 2 つのキー コンボCtrlRを順番に表しCtrlPます。これに を続けるとすぐ=に、カーソルがプロンプトにドロップダウンしsystem('ls')、コマンドを完了するために入力します。
それはそれを行う必要があります。
ここでの秘訣は、 :system()の代わりに使用することです。これは関数、つまり式であるため、挿入モードで式レジスタと組み合わせることができます。この特殊レジスターの詳細については、を参照してください。:read!system():h @=
<C-R>いくつかのレジスターの内容を挿入するための挿入モードについては、すでによく知っているかもしれません。<C-R><C-P>それと同じですが、さらにインデントを「修正」します。ドキュメントは にあり:h i_CTRL-R_CTRL-Pます。