vim内でいくつかのターミナルコマンドを実行したい

vim内でいくつかのターミナルコマンドを実行したい

私はコードを書くときに2つのことをします。ブラウザでファイルを開くか、ノードで実行します。だから私はこの効果を得るためにvimでいくつかのショートカットを作成したいと思います。

F5現在のディレクトリで新しいgnomeターミナルを開いて実行し、http-serverFirefoxで新しいタブを開き、ポート8000​​をクリックしようとします。

また、F6新しいgnomeターミナルを開いて実行し、nodemon新しいFirefoxタブを開いてポート8000​​にアクセスしたいと思います。

nnoremap <F5> :exe ':silent !firefox %'
nnoremap <F5> :exe ':silent !firefox %'

ベストアンサー1

vi.stackexchange.com の vi/vim スタックに適しています。

:silentフラグはEnterキーを押すことをキャンセルするため、コマンドラインから実行する前にコマンドセットに追加する必要があります。私は次の点でとても幸運でした。

:nnoremap <F5> :exe ':silent !firefox % 2>/dev/null &'^M^L

最後にctrl-Mとctrl-Lビットを得るには、ctrl-Vを押す必要があります。私が追加したものの簡単な概要は次のとおりです。

2>/dev/null to avoid dumping stderr to screen.
& to allow us to drop back to vim without waiting for firefox to finish
^M to execute the command
^L to initiate a redraw (the command frequently blacked out my screen)

奇妙なことは、stderrリダイレクトがない場合は、Firefoxが画面にエラーダンプを完了して再描画するのを待つ必要があることです。奇妙なビットが表示される前に、この行を削除する方がはるかに簡単です。

おすすめ記事