工程師無可避免的會碰到指令列,但一般指令列存在的目的是為了有一個地方讓電腦可以接收指令,因此我們需要熟記各種指令,各種游標操作方式,才能順暢的操作。
更多時候,我們會忘了指令、甚或不知道有這樣子的操作方式。我也想 RTFM,只是,如果 Manual 本身就百來頁長,誰有辦法好好看完,就算看完也很難消化。
最近看到有人在介紹 WARP 說是很棒的 terminal,一用發現真的值得介紹,趕緊來紀錄一下。
WARP 是什麼?
Warp: The terminal for the 21st century
如標題所說,這是一個以提升開發者生產力為目標的 terminal app,用 RUST 寫的。目前只有 MacOS 版本,但之後會有 Linux, Windows, WASM 版本。
功能介紹
輸入框就是一個編輯區
WARP 的指令輸入與一般 terminal 有點不同,輸入框其實是一種編輯區的概念,這概念 iTerm 也有試過但似乎沒有認真想做好,WARP 這塊做的還滿順暢的。
多了編輯區,就可以一次輸入多行( cmd + enter ),也可以透過 ctrl + G 來選擇同樣的字串作修改。因為個人已經很習慣 vscode 的 cmd + D ,所以就到快捷鍵設定下調整為自己的偏好。
有了編輯區,要套用範本之類的就會更方便,或是不同指令間的小調整都可以在這個區塊完成。
Block
另一個比較大的差異是,每一個指令都是一個 Block,如下圖
透過 Block 命令變成不同區塊,有一些好處:
- 指令輸出區段明顯,只要鍵盤上下鍵就可以切換不同指令的區塊,進而限縮動作範圍為當前 Block,進行搜尋、複製等動作。
cmd + C
複製此區段內容,cmd + shift + C
複製指令,cmd + alt + shift + c
複製輸出cmd + shift + s
分享 block ,搭配合適的工具可以呈現出更好的效果如排版、上色等。用來分享給其他人作排查時閱讀也會比較舒服 https://app.warp.dev/block/4ZjJ3ZoouOyxScXiiNmsr4
指令搜尋方式
指令列最麻煩的事情:『我想作 XXX,但是我不知道命令該怎麼輸入』
- 如果有印象之前輸入過但是忘了,可以透過
ctrl + R
帶出輸入歷程搜尋框,與一般原生命令列的ctrl + R
類似,但呈現與操作上更為友善 - 如果是工具套件常用的指令,可以
ctrl + shift + R
搜尋一下 workflow ,裡面有滿多常用的指令,依照工具來分類,也可以自己新增 - 最後,近年潮流就是什麼都要 AI, `ctrl + `` 叫出命令搜尋框 ,用英文白話打下你想作的事情
不可少的 Command Palette
cmd + P
開啟功能列表應該算是趨勢了?
問題與小技巧
- 雖然大部分輸入都會先在一個暫時的輸入框完成,在這裡的操作很類似一般的 command prompt 比如說可以用 alt + 左右來跳游標,但如果你進到另一個命令列環境比如 node console 就有可能需要改回使用原生的 esc + f/b 來作,沒有了 key binding 會很不方便。 (一看 issue list 果然不是只有我這樣需要 https://github.com/warpdotdev/Warp/issues/579)
- 想自訂 prompt , Prompt — Warp Documentation
- 注音輸入法的輸入中字會看不到
- 使用前強迫你要 GitHub 授權,官方說法是用作資料蒐集與更好的客製化,並且正式版可能會有 opt-out 的選項
除了以上提到的 ,Warp 有許多優點,為了提升輸入的效率做了許多相關的功能。不過不要忘記這仍然是個 BETA 中的產品,許多問題尚待解決( OPEN issues 目前超過五百個 ,但滿積極的在處理中),是個值得一試的工具。