の出力をバッファ: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
ます。