현재 표현식을 평가하지 않고 개행을 삽입하기 위해 Shift-Enter 바인딩

현재 표현식을 평가하지 않고 개행을 삽입하기 위해 Shift-Enter 바인딩

Shift-Enter터미널과 repl 모드에서 현재 표현식을 평가하지 않고 줄바꿈을 삽입하기 위해 바인딩을 시도합니다 . 를 통해 읽기ArchWiki, 내 ~/.Xmodmap파일 ~/.Xmodmap에 이것을 설정하고 xmodmap ~/.Xmodmap. 그러나 이것은 작동하지 않습니다. 자세한 설정은 다음과 같습니다.

의 내용:

    ~/.Xmodmap:
    keysym Return = Return Linefeed

~/.Xmodmap다음 설정을 통해 로그인할 때 자동으로 자원이 확보됩니다.

    if [ -s ~/.Xmodmap ]; then
        xmodmap ~/.Xmodmap

    fi

~/.xinitrc.

추가 관련 정보:

~/.bashrc(1) my 및 my 에서 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")

관련 정보