在長期使用 neovim 之後,我發現 ToggleTerm 對我來說是最泛用靈活的工具。你可以:
而 Astronvim 預設與 ToggleTerm 的鍵盤快速鍵,習慣後也覺得相當便利:
Ctrl + '
快速開啟/隱藏終端機Ctrl + l
隱藏 ToggleTerm儘管如此,ToggleTerm 還是比不上 VSCode 內建終端機的功能:支援多個分頁快速切換,並且可以方便的綁定各種系統級的快速鍵。
自從我換到 Kakoune 後,深受編輯器肌肉記憶感召,最另我懷念的就是 ToggleTerm 的快速鍵。
很多時候,我只是想要快速開啟終端機小視窗,做點輕量操作,而不想離開現有的畫面。此時 Popup 帶來的就是最少 Context switching 的體驗。
Tmux 其實也已經內建了 popup 功能,只是:
既然要做到永久維持的效果,直接建立一個 Tmux popup 專用的 tmux session 就好啦!
tmux-poppup
腳本然後在 .tmux.conf
增加以下:
可以看到 tmux-poppup
實作的地方,我在 session_name 的地方用了比較詳盡的 floating_${current_session_name}_${window_id}
的,這代表每個 window 開出來的 Popup session 都是不一樣的。如果你想讓單一個 session 共享 popup,把後面 window_id 拿掉即可。
最後附上影片。
後來我又對腳本進行修改,現在支援啟動程式,如果既有 tmux session 已經有正在執行的程式,就會切換到那個 window,而不會重新啟動。比如說:tmux-popup lazygit
就會啟動 lazygit,即使再 detach 後,也會重新掛載該 lazygit window。