為甚麼在終端機裏 Ctrl+V 不是貼上,Ctrl+V 和 Ctrl+X 在你執行的程式裏做甚麼,為甚麼 AI 智能體的 Ctrl+V 透過 SSH 甚麼也拿不到——以及真正能用的複製和貼上方法:用鍵盤、滑鼠或觸控,在 herdr 和 tmux 裏也行。
需要 Term v26.6.0 或更新版本。
Shift+Insert 作為第二個貼上鍵、手機上的 Ctrl+Shift+C、在使用滑鼠的程式裏按住 Shift 拖曳複製、在 herdr 和 tmux 裏用觸控貼上,以及貼上按鈕出現在 AI 智能體的輸入處,由 26.6.0 起提供。
撰寫於
在終端機裏,Ctrl+V 和 Ctrl+X 不是複製貼上,而是普通按鍵,它們的意思由你正在執行的程式決定。Term 會像桌面終端機一樣把它們原樣送出——無論來自實體鍵盤,還是按鍵列上的 ctrl——也會穿過 herdr 和 tmux,交給窗格裏的程式。
| 程式 | Ctrl+V | Ctrl+X |
|---|---|---|
| bash 和 zsh | 原樣輸入下一個鍵 | 開始一個兩鍵指令(Ctrl+X Ctrl+E 在編輯器裏編輯目前的指令) |
| vim | 區塊選取 | 把游標處的數字減一 |
| nano | 下一頁 | 離開 |
| emacs | 向下捲動 | 開始一個兩鍵指令(Ctrl+X Ctrl+S 儲存) |
| AI 編程智能體(pi、Claude Code、Codex) | 從剪貼簿貼上圖片 | — |
如果終端機把 Ctrl+V 佔用為貼上,上表每一行的功能都會失去。所以 Linux 終端機都把複製和貼上放在 Ctrl+Shift 上,Term 也一樣。出於同樣的原因,Ctrl+C 仍然是中斷正在執行的指令。
AI 編程智能體把 Ctrl+V 設為「從剪貼簿貼上圖片」。它們讀取的是它們所執行那部電腦上的剪貼簿。透過 SSH 使用時,那部電腦是伺服器——而你手機上的剪貼簿留在手機裏。沒有桌面環境的伺服器根本沒有剪貼簿,所以智能體甚麼也拿不到,也不提示,就這樣甚麼都不做。
這並不是故障:按鍵確實到了(我們在 herdr 裏逐個位元組核對過),只是它問錯了電腦。華為在鴻蒙電腦終端在部分 AI 工具中無法使用 Ctrl+V 粘貼中描述了鴻蒙電腦終端上的同一現象——那裏和這裏的解決辦法一樣:改用終端機自己的貼上。
**文字:**用下面任何一種方法貼上。Term 會把它標記為貼上送出,所以支援這種方式的程式——智能體都支援——會把多行提示當作一條訊息,而不是一行一行地送出。
**圖片:**Term 只貼上文字。用 Term 的 SFTP 分頁把圖片上載到伺服器,再把路徑寫進提示裏——能貼上圖片的地方,智能體也接受圖片路徑。
接上鍵盤後,按 Ctrl+Shift+V——或者 Shift+Insert,Linux 和 Windows 上的貼上鍵——Term 會在游標處顯示貼上按鈕。按一下,文字就貼上了。
在 herdr 和 tmux 裏也一樣:這兩個快捷鍵屬於 Term,不屬於程式。
不止一行?Term 會先在貼上面板裏把內容給你看——你可以檢查,也可以修改——然後才送到 shell。貼上之後,shell 只是把這些行放在提示符上,並不執行,直到你按下 Enter。
為甚麼要多按一個按鈕,而不是直接貼上?鴻蒙系統只在你按了系統內建的貼上按鈕時,才容許應用程式讀取剪貼簿。在你按之前,Term 看不到你的剪貼簿——這也代表終端機工作階段裏的任何東西都無法在背後讀取它。
在游標旁邊長按然後放開:會出現同樣的貼上按鈕。離游標遠的地方長按不會有反應,因為文字會貼在游標處,而不是手指下。
在使用滑鼠的程式裏也一樣——herdr、開啟 mouse on 的 tmux、zellij——在 AI 智能體的提示處,按鈕會出現在輸入框旁邊。按住不動再放開;如果按住後拖曳,則是用方向鍵移動游標。
還有一種不需要按鈕的方法:剛複製完內容時,鴻蒙輸入法會在按鍵上方的 From clipboard(來自剪貼簿)下顯示它,按一下就會輸入到游標處。
輸入法剪貼簿裏的多行內容,Term 同樣當作貼上處理,和它自己的貼上按鈕一樣。
長按一個字,拖曳兩端的控點擴大選取,然後選複製。用滑鼠或觸控板時,直接拖曳選取文字。接了鍵盤也可以按 Ctrl+Shift+C 複製選取的內容。沒有選取內容時它甚麼也不做,絕不會像 Ctrl+C 那樣中斷程式。
追蹤滑鼠的程式——herdr、開啟 mouse on 的 tmux、zellij、開啟滑鼠的 vim——會收到每一次拖曳,和桌面終端機的做法一樣。正因如此,你才能拖曳窗格邊框調整大小,或在程式自己裏面選取。
如果仍想複製畫面上的內容,在接了鍵盤和滑鼠或觸控板時,按住 Shift 再拖曳。這時由 Term 自己選取文字,程式完全收不到這次拖曳——和 xterm、iTerm2、Ghostty、kitty、WezTerm 的 Shift+拖曳一樣。不按 Shift 的拖曳仍然交給程式,和以前完全一樣。只用觸控時暫時沒有這樣的方式:在這些程式裏長按會改為用方向鍵移動游標。
程式也有自己的複製。例如 tmux 在複製模式裏複製,開啟 set-clipboard on 後會透過 OSC 52 把內容傳到你手機的剪貼簿——Term 會把它轉送過去。
有些終端機用中鍵點擊貼上。在 Term 裏,中鍵交給使用滑鼠的程式,和桌面終端機的做法一樣。請改用 Ctrl+Shift+V 或 Shift+Insert。