Bashコマンドの出力を新しいファイルにリダイレクトしようとしています。
以下のようにパイプを試してみると:
ls -la | vim
Bashはエラーを表示します:
Vim: Error reading input, exiting...
Vim: preserving files...
Vim: Finished.
私はVimを開いてから使用できることを知っています:
:r !ls -la
しかし、bim自体でこれを行う方法はありますか?Vimが開かれ、出力がそこに自動的に貼り付けられますか?
プロセス置換 を使用できます(これはSTDIN
から読み取れないアプリケーションでも機能します)。
vim <(ls -la)
または、vim
の関数を使用して、STDIN
から読み取ります。
ls -la | vim -
あなたは本当に自分で親しいです。あなたは1文字が欠けていました。
ls -la | vim -
誰かに新しい何かを教えることを願う別のアプローチがあります。
コマンド:r !ls -la
がvim内で機能することがわかっている場合は、次の手順を実行してvimを開き、bashから直接コマンドを実行してコマンドを実行できます。
vim -c ':r! ls -la'
これは、vim
を開いてから:r! ls -la
コマンドを実行することと同じです。これはvim
コマンドで機能するはずです。コマンドは-c
オプションの後に来ます。
Vimにstdinを開くように指示できます。
ls -la | vim -
目的が単に出力をテキストファイルに取得することである場合は、vimを呼び出す必要はありません。 Bashは単独でそれを行うことができます
ls -la > outputfile.txt
setlocal buftype=nofile
less
を置き換えるエイリアスを作成する場合、これは適切なオプションです。
seq 100 | vim +':setlocal buftype=nofile' -
今、あなたはタイプする必要はありません!やめるために。
別のオプションは次のとおりです。
seq 100 | vim +'nnoremap q :quit!' -
したがって、q<enter>
だけで終了できます。