我尝试绑定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")