Shift-Enter
터미널 및 repl 모드에서 현재 표현식을 평가하지 않고 개행 문자를 삽입하기 위해 바인딩을 시도했습니다 . 끝까지 읽어보세요건축 위키피디아~/.Xmodmap
, 내 파일에 설정하고 ~/.Xmodmap
reload를 사용해 보았습니다 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+를 동일시하는 것이 유용한 경우가 많습니다. 대신 XTerm에 개행 문자를 삽입하려면 +를 변경하는 것이 좋습니다. 당신은 당신의 (또는 당신의 X 리소스를 어디에 두든) 이것을 할 수 있습니다:ReturnReturnReturnShiftCtrlReturn~/.Xresources
XTerm.vt100.translations: #override Ctrl<Key>Return: string("\012")