我嘗試綁定Shift-Enter
以插入換行符,而不評估終端和 repl 模式中的當前表達式。閱讀透過建築維基百科~/.Xmodmap
,我嘗試在我的文件中設置它並~/.Xmodmap
使用重新加載xmodmap ~/.Xmodmap
。然而,這不起作用。這是我的詳細設定:
內容:
~/.Xmodmap:
keysym Return = Return Linefeed
~/.Xmodmap
透過設定登入時自動取得資源:
if [ -s ~/.Xmodmap ]; then
xmodmap ~/.Xmodmap
fi
在我的~/.xinitrc
。
附加相關資訊:
(1) 我在我的~/.bashrc
和我的~/.inputrc
.然而,去掉這些選項後,結果並沒有什麼不同。
(2)keysym Return = Return Linefeed
建議使用這裡.* 其他方法也不起作用。
(3) 我的$TERM
設定為xterm-256color
。
謝謝你的幫忙!
*更新:本頁建議的解決方案(如果仍有待找到)無法在此處討論的特定情況下工作,因為程式語言正在使用自己的 repl 實作。因此,這與目前的案件沒有任何關係。
答案1
簡單的答案是輸入Ctrl+ V Ctrl+ J。
綁定Shift+Return使其Linefeed
發送^J
= control-J == \n
(而\012
不是^M
== )。這只是您需要做的一部分:預設情況下,兩個鍵都綁定到執行 bash 中的當前行。您需要更改 ^J 的綁定以插入文字 ( = ) 換行符:\r
\015
.inputrc
^V
\026
"\n": self-insert
或者,將密鑰綁定在您的.bashrc
:
bind -m vi-command '"\n": self-insert'
bind -m vi-insert '"\n": self-insert'
Shift將+更改Return為Linefeed
可能會產生不良副作用 - 將Shift+Return等同於通常很有用,這樣即使在停機時也Return可以快速鍵入。我建議改為更改+以在 XTerm 中插入換行符。您可以在您的(或您放置 X 資源的任何地方)執行此操作:ReturnShiftCtrlReturn~/.Xresources
XTerm.vt100.translations: #override Ctrl<Key>Return: string("\012")