cat a.txt
echo hi
echo hu
echo ha
尋ねる:viを使用してa.txtを開くときにex.:?の2行目を実行する方法は?
したがって、"vi a.txt" -> SOMEMAGICCOMMAND -> "echo hu"がコマンドとして実行されます。どのように?
答え1
現在の行を実行し、その行を置き換えるファイルの出力をキャプチャします。
:. !sh
2行から4行を実行し、ファイルに出力をキャプチャしてこの行を置き換えます。
:2,4 !sh
ファイル全体を実行し、すべての行を置き換えるファイルの出力をキャプチャします。
:% !sh
上記と同じですが、出力をファイルにキャプチャする代わりに印刷するだけです。
:.w !sh
:2,4w !sh
:%w !sh
答え2
vimを使うと仮定すると
テキスト(Shift+ V)を含む行を選択してから、次のコマンドを実行するとわかります。
:!sh
選択した行を実行し、結果に置き換えます。
はい
以下のデモで何が起こっているのか確認できます。