常常在工作時都會有需要貼一些片段程式碼,或是貼一些 log 給同事的情況發生。有些同事會打開瀏覽器並把這些文字貼到 Gist 或是 Pastebin 等服務。但筆者認為這麼單純的一件事情還需要打開瀏覽器實在很沒效率,因此查詢了一下是否有能夠在 terminal 底下做到這些事情的指令。不查還好,一查不得了,也太多類似的東西了吧!一搜尋下去竟然這麼多類似的服務:
這幾個都是把要貼上的內容透過 nc
或是 curl
來把資料上傳到該網站上並進行貼上。以下是這幾個服務的比較,論功能性最強大的就是 ix 了!
功能 | termbin | sprunge | clbin | ix |
---|---|---|---|---|
純文字貼上 | ✓ | ✓ | ✓ | ✓ |
syntax highlight 網頁版 | ✓ | ✓ | ✓ | |
syntax highlight 終端機版 | ✓ | |||
上傳圖片 | ✓ | ✓ |
不過以上的服務感覺就只能直接寫個 alias 到自己的 bashrc / zshrc,不是很喜歡這麼做。如果能夠直接透過 homebrew 之類的 package manager 來安裝還是比較喜歡些,於是又找到了一個叫做 pastebinit
的指令。這個指令可以直接透過 homebrew 安裝:
1
$ brew install pastebinit
pastebinit
的使用方式也很簡單:
1
$ <command> | pastebinit
而且它支援的網站非常多,請見以下清單或是輸入 $ pastebinit -l
來查看:
- cxg.de
- dpaste.com
- fpaste.org
- lpaste.net
- p.defau.lt
- paste.debian.net
- paste.drizzle.org
- paste.kde.org
- paste.openstack.org
- paste.pound-python.org
- paste.ubuntu.com
- paste.ubuntu.org.cn
- paste2.org
- pastebin.com
- pastebin.mate-desktop.org
- pb.daviey.com
- slexy.org
- sprunge.us
預設上會採用 Pastebin 作為上傳的網站,如果想要傳到其他網站的話可以透過 -b
選項來更改上傳的網站。當筆者決定就使用 pastebinit
時,安裝後發現竟然無法使用!正確來說,是不能用 Pastebin 作為上傳的網址,會顯示以下錯誤訊息:
1
Bad API request, invalid api_dev_key
查了一下原來是 pastebinit
在 v1.4.1 版的 API token 有問題,需要更新到 v1.5 版才有修正。於是就發了人生中第一個 Homebrew 的 PR,請見:pastebinit 1.5 by KuoE0 · Pull Request #687 · Homebrew/homebrew-core。不過整個 review 過程好煩,一下不能 replace config 檔案,一下不能跳 prompt 要使用者手動 replace config 檔案。最後 reviewer 的結論是,使用者會自己找到出路 LOL!
最後,如果習慣使用 Gist 的人也可以直接安裝 gist
(http://defunkt.io/gist/) 這個工具。基本的使用方式如下:
1
$ gist [file]
如果想看更詳盡的使用方式,請前往:https://github.com/defunkt/gist#command。