Bash

如何綁定“C-;”在 ~/.inputrc 中?

  • March 5, 2016

我使用 Meta-ijkl 作為 Emacs 中的箭頭和M-;退格鍵,所以我想讓 bash 中的鍵代表相同的樣式。移動和刪除效果很好,但由於某種原因,我無法綁定unix-line-discardC-;它將從游標到開頭的整行擦除到終止緩衝區中。由於用於複製、殺死和抽出的預設 emacs 鍵是C-j,C-kC-y,因此另一個 C 組合非常適合那裡。並且\e:(Meta-Shift-;) 已經綁定到backward-kill-word. C-u預設情況unix-line-discard下,效果很好,但按起來不方便。如果我將這個函式重新綁定到 ,\C-g它也可以正常工作。

~/.inputrc我有

"\C-;": unix-line-discard

我也試過

"\C-\;": unix-line-discard
"\C-\x3b": unix-line-discard

沒有效果。C-v C-;在 shell 中,除了通常的分號之外不列印任何內容,並且\C-;它的所有變體也只列印它,僅此而已。

我在 Urxvt 工作。

同意@meuh 的評論,終端不會為control``;(通常)生成不同的程式碼。

@tijagi 建議的連結xterm適用於並且不適用於urxvt. 使用手冊頁urxvt顯示您可以從這裡開始:

  keysym.sym: string
      Compile frills: Associate string with keysym sym. The intervening
      resource name keysym. cannot be omitted.

並使用如下設置之一:

*keysym.Control-semicolon: mybinding
URxvt.keysym.Control-semicolon: mybinding

根據需要使用類名來覆蓋現有資源,並且mybinding是您urxvt在鍵入時想要發送的任何內容control``;(但請閱讀手冊頁以獲取正確的語法)。@meuh 建議使用\025( ^U) ,因為它通常綁定到unix-line-discard.

進一步閱讀:

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