Debian

如何在 xfce4-terminal 中將 <Ctrl+C> 從中斷切換到複製,並將 <Ctrl+Shift+V> 切換到 <Ctrl+V>?

  • May 5, 2021

這與 How to set ctrl+c to copy, ctrl+v to paste and ctrl+shift+c to kill process in xfce4-terminal基本相同?,但不是重複的,因為這兩個答案都沒有幫助。  Alex Kaszynski 的回答建議修改 ~/.config/xfce4/terminal/accels.scm文件。 

我做到了:我改變了兩行:

; (gtk_accel_path "&lt;Actions&gt;/terminal-window/paste" "&lt;Primary&gt;&lt;Shift&gt;v")
--&gt;
; (gtk_accel_path "&lt;Actions&gt;/terminal-window/paste" "&lt;Primary&gt;v")

; (gtk_accel_path "&lt;Actions&gt;/terminal-window/copy" "&lt;Primary&gt;&lt;Shift&gt;c")
--&gt;
; (gtk_accel_path "&lt;Actions&gt;/terminal-window/copy" "&lt;Primary&gt;c")

但這些都沒有幫助;中斷仍分配給Ctrl+ C。(我可能需要解除綁定並重新綁定到Ctrl++ ,但不知道該怎麼做。ShiftC

  1. 如何將“複製”從Ctrl++映射到Shift+C``Ctrl``C
  2. 將中斷從Ctrl+重新映射CCtrl+ Shift+C
  3. 將“粘貼”從Ctrl+ Shift+重新映射VCtrl+V

將這些行添加到~/.config/xfce4/terminal/accels.scm文件中。

(gtk_accel_path "&lt;Actions&gt;/terminal-window/paste" "&lt;Primary&gt;v")
(gtk_accel_path "&lt;Actions&gt;/terminal-window/copy" "&lt;Primary&gt;c")

請注意,這些行不以分號開頭,它在 Scheme 中以註釋開頭。

改變Ctrl-改變C任何其他東西是一個非常糟糕的主意。

由於也是一個問題,要改變Ctrl- V。這些設置在 linux(和 Unix)中根深蒂固,幾乎不可能正確地進行這些更改。我強烈建議你學會使用

Ctrl-Ins # to copy

Shift-Ins # to paste

Ctrl-Del # Or shift-del also to cut

在 LinuxWindows 中都一樣。

還有使用其他快捷方式的 Linux 剪貼板。


話雖如此,所需的更改位於(非常)不同的層。

最簡單的改變(一旦你知道在哪裡)是Ctrl-C中斷。它通常是TTY的設置,即控制線路終端通信的程序。一個非常非常古老的想法(從替代“電傳列印機”的終端開始)。linux中控制那個的程序sttystty -a並將列印目前設置:

$ stty -a
speed 38400 baud; rows 43; columns 93; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = &lt;undef&gt;; eof = &lt;undef&gt;; eol = &lt;undef&gt;;
eol2 = &lt;undef&gt;; swtch = &lt;undef&gt;; start = &lt;undef&gt;; stop = &lt;undef&gt;; susp = &lt;undef&gt;; rprnt = ^R;
werase = &lt;undef&gt;; lnext = ^V; discard = ^O; min = 1; time = 0;
.......

中斷信號的設置intr = ^C如下:中斷的鍵是Ctrl^部分)後跟字母C。

TTY 中無法同時使用 shift 和 control。只有一個編碼字元Ctrl-C實際上(因為控制影響字元位的方式)ASCII 0x03 字元。為了能夠編寫 require 命令進行設置intr,您還需要使用Ctrl- V。在控制台上設置它所需的順序是:

stty intr Ctrl- V Ctrl-C``Enter

或者,如果所有其他選項都失敗,請使用 shell:

stty intr $(printf '\003')

設置intrto ,在這個級別^C沒有Shift- 。Ctrl

還要了解,如果您更改Ctrl-C您需要更改命令的方式reset,它將終端返回其預設值,或者stty sane執行類似的工作;工作。

圖形使用者界面(X 伺服器)

在這個級別,可以設置一個鉤子來擷取一個Ctrl-密鑰並轉換為一個普通的-Shift到終端。但是,終端仍然必須使用普通的- 。c``Ctrl``c``Ctrl``C

圖形使用者界面複製和粘貼

每個 DM(顯示管理器)(Lxde、XFce、Gnome2、Gnome3、KDE ​​等)更改複製和粘貼快捷方式的操作順序是不同的。並且對於不同的終端(Mate-terminal、xfce-terminal、lxterminal、Xterm、gnome-terminal、konsole 等等)也是不同的。

mate-terminal(可以在 xfce 中安裝和使用沒有任何問題的 gnome 應用程序)中,更改CopyPaste快捷方式的順序在您報告不起作用的文章中描述。

lxterminal你去編輯 - >首選項 - >快捷方式並更改其中任何一個。

最後,在xfce-terminal您編輯文件中:

~/.config/xfce4/terminal/accels.scm

引用自:https://unix.stackexchange.com/questions/586882