Terminal
我想從 vim 內部執行一些終端命令
當我編寫程式碼時,我會做兩件常見的事情。我要麼在瀏覽器中打開該文件,要麼在 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 完成將錯誤轉儲到螢幕並再次重繪。在它們顯示奇怪的位之前將它們丟棄要容易得多。