終端機裡印出來的網址可以直接點,不管印它的程式有沒有特意標記。Term 會先讓你看清目標,然後在應用內開啟。
需要 Term v26.1.6 或更新版本。
撰寫於
點螢幕上任意一個網址,Term 會先問一句,並把即將開啟的完整位址顯示出來。你同意之前,不會發出任何請求。
這一步不是為了增加操作。螢幕上的文字來自遠端,而一個你並不完全信任的遠端可以印任何東西 —— 所以唯一值得保證的,就是你看到的是真正的目標位址,在請求發出之前。
see https://docs.github.com/en ok,對話框裡恰好只有網址。周圍的詞不屬於連結 —— 見最後一節。終端機程式可以把文字標記成連結(那個轉義序列叫 OSC 8),標記了的話,Term 開啟的是它宣告的目標 —— 那可能和你看到的文字不一樣。但幾乎沒有程式這麼做:echo 出來的、編譯器報錯裡的、git remote、從別處貼進來的,都只是普通字元。這些 Term 也能認出來。
包括網址太長、折到下一行的情況。點其中任意一半,開啟的都是完整位址。
tar. 之後斷開,對話框裡是完整的。連結在 Term 自帶的瀏覽器裡開啟,而不是把你交給別的應用 —— 這是為了你的工作階段,不是為了留住你。離開 Term 會讓它進入背景,而背景應用保住 SSH 工作階段的時間遠不到一分鐘。看一個網頁,不該讓你丟掉正在用的 shell。
頂欄會寫明你在哪個站點。我們自己的頁面顯示 const.net 並帶一個藍色印記;其他站點顯示完整主機名稱,含子網域 —— 因為那才是告訴你真正在跟誰打交道的部分。右側按鈕可以隨時把頁面交給系統瀏覽器。
很多連結其實是檔案 —— 發佈包、.deb、PDF。Term 沒有地方存放它們,所以與其開啟一個永遠不出現的頁面,不如把下載交給系統瀏覽器(它有下載管理器),然後自己退開。
判斷依據是伺服器怎麼說,而不是從位址猜 —— 只有這樣才判斷得準:下面這個發佈包,路徑中間含 tar.gz,結尾什麼也沒有;而很多普通網頁反而以看著像檔案的後綴結尾。
例外是透過連接埠轉發開啟的頁面,它只在應用內存在 —— 別的瀏覽器根本載入不了。這種情況下 Term 會告訴你這是個下載,並留在原處,而不是把一個註定悄悄失敗的位址交出去。
網址周圍那句話的標點不屬於它。位址後面的句號會被留下;括號只有在它的左半邊也在位址裡時才保留 —— 所以 (https://x.dev/a) 開啟的是網址,而 https://x.dev/a(b) 會帶著自己的括號。
另外,光是一個主機名稱不算連結:www.example.com 或 example.com 點了沒反應。這是刻意的。文字裡到處都是點號,而點開錯誤的東西比點了沒反應更糟 —— 凡是能複製貼上的網址,本來就帶著 https://。