Terminal

我想從 vim 內部執行一些終端命令

  • April 1, 2015

當我編寫程式碼時,我會做兩件常見的事情。我要麼在瀏覽器中打開該文件,要麼在 node.js 中執行它。所以我想在 vim 中創建幾個快捷方式來達到這種效果。

我想F5在目前目錄中打開一個新的 gnome 終端並執行http-server,然後在 Firefox 中打開一個新選項卡,點擊埠 8000。

另外,我想F6打開一個新的 gnome 終端並執行nodemon,然後打開一個新的 firefox 選項卡並點擊埠 8000。

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

這可能更適合 vi.stackexchange.com 上的 vi/vim 堆棧

請注意,:silent 標記否定輸入,因此必須在命令集之後添加它以使其在命令行中執行。我對以下內容非常幸運。

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

請注意,您必須按 ctrl-V 才能獲得最後的 ctrl-M 和 ctrl-L 位。這是我添加的內容的簡要說明。

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 完成將錯誤轉儲到螢幕並再次重繪。在它們顯示奇怪的位之前將它們丟棄要容易得多。

引用自:https://unix.stackexchange.com/questions/193886