能提高生產力的命令列工具: WARP

fin
5 min readApr 23, 2022

工程師無可避免的會碰到指令列,但一般指令列存在的目的是為了有一個地方讓電腦可以接收指令,因此我們需要熟記各種指令,各種游標操作方式,才能順暢的操作。

更多時候,我們會忘了指令、甚或不知道有這樣子的操作方式。我也想 RTFM,只是,如果 Manual 本身就百來頁長,誰有辦法好好看完,就算看完也很難消化。

最近看到有人在介紹 WARP 說是很棒的 terminal,一用發現真的值得介紹,趕緊來紀錄一下。

WARP 是什麼?

Warp: The terminal for the 21st century

如標題所說,這是一個以提升開發者生產力為目標的 terminal app,用 RUST 寫的。目前只有 MacOS 版本,但之後會有 Linux, Windows, WASM 版本。

功能介紹

輸入框就是一個編輯區

WARP 的指令輸入與一般 terminal 有點不同,輸入框其實是一種編輯區的概念,這概念 iTerm 也有試過但似乎沒有認真想做好,WARP 這塊做的還滿順暢的。

上方粉紅色的是 ps1,輸入區域與一般 terminal 不同,顯示在 ps1 下方

多了編輯區,就可以一次輸入多行( cmd + enter ),也可以透過 ctrl + G 來選擇同樣的字串作修改。因為個人已經很習慣 vscode 的 cmd + D ,所以就到快捷鍵設定下調整為自己的偏好。

有了編輯區,要套用範本之類的就會更方便,或是不同指令間的小調整都可以在這個區塊完成。

Block

另一個比較大的差異是,每一個指令都是一個 Block,如下圖

最下面是當前輸入區,上方每一個灰色橫線隔開的都是個 Block

透過 Block 命令變成不同區塊,有一些好處:

  • 指令輸出區段明顯,只要鍵盤上下鍵就可以切換不同指令的區塊,進而限縮動作範圍為當前 Block,進行搜尋、複製等動作。
  • cmd + C 複製此區段內容, cmd + shift + C 複製指令, cmd + alt + shift + c 複製輸出
  • cmd + shift + s 分享 block ,搭配合適的工具可以呈現出更好的效果如排版、上色等。用來分享給其他人作排查時閱讀也會比較舒服 https://app.warp.dev/block/4ZjJ3ZoouOyxScXiiNmsr4
分享出來的頁面,基本上你在 WARP 下面看到什麼分享出來的就是什麼

指令搜尋方式

指令列最麻煩的事情:『我想作 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 目前超過五百個 ,但滿積極的在處理中),是個值得一試的工具。

--

--