Shift-Enter
ターミナルとreplモードで現在の式を評価せずに改行を挿入するようにバインドしようとしています。アーチウィキ、ファイルでこれを設定してで~/.Xmodmap
リロードしてみました。しかし、これは機能しません。詳細な設定は次のとおりです。~/.Xmodmap
xmodmap ~/.Xmodmap
の内容:
~/.Xmodmap:
keysym Return = Return Linefeed
~/.Xmodmap
以下の設定により、ログイン時に自動的にリソースが提供されます:
if [ -s ~/.Xmodmap ]; then
xmodmap ~/.Xmodmap
fi
私の~/.xinitrc
。
追加の関連情報:
~/.bashrc
(1)私はとでvi編集モードをオンに設定しました~/.inputrc
。しかし、これらのオプションを削除しても結果は変わりませんでした。
(2)使用がkeysym Return = Return Linefeed
提案されたここ*他の方法も機能しませんでした。
(3)Myは$TERM
に設定されますxterm-256color
。
ご協力いただきありがとうございます!
*更新: このページで提案されている解決策 (まだ見つからない場合) は、プログラミング言語が独自の repl 実装を使用しているため、ここで説明されている特定のケースでは機能しません。したがって、これは手元のケースには何の影響もありません。
答え1
簡単な答えは、Ctrl+ V Ctrl+と入力することですJ。
Shift+Returnを にバインドすると、 = control-J = = ( = =ではなく)Linefeed
が送信されます。これは必要な作業の一部にすぎません。デフォルトでは、両方のキーが bash の現在の行を実行するようにバインドされています。リテラル ( = ) 改行を挿入するには、 の ^J のバインドを変更する必要があります。^J
\n
\012
^M
\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と同等にしておくと便利なことがよくあります。代わりに、XTerm で改行を挿入するように+を変更することをお勧めします。これは、 (または X リソースを配置する場所)で行うことができます。ReturnReturnShiftCtrlReturn~/.Xresources
XTerm.vt100.translations: #override Ctrl<Key>Return: string("\012")