을 모방하여 줄 시작 부분에 커서를 놓습니다.
셸이 Vi 명령 줄 편집 모드에있을 때 Bash가 KornShell93 (ksh
)의 동작을 모방하도록하려고합니다.
KornShell 기본값은 “Vi 일반 모드”(일명 “명령”모드)이며 명령 줄 기록을 뒤로 이동할 때 커서를 명령 줄의 맨 처음에 배치합니다. 이는 “Vi”에있는 Bash와는 대조적입니다. 삽입 모드 “및 명령 줄 끝에.
“ Bash vi 모드 구성을 명령 모드로 기본 설정 ” , Vi 명령 줄 편집이 활성화되어있을 때 Bash를 “Vi 일반 모드”로 기본 설정하는 방법은 거의 없다고 결론을 내 렸습니다.
5 년이 넘었습니다. s 전 지금, 이것이 그 이후로 변경되었는지 궁금합니다.
그리고 명령 줄의 시작 부분에 커서를 자동으로 배치하는 것은 어떻습니까? 저에게 도움이 될 수있는 알려지지 않은 Readline 마법이 있습니까?
저는 소스에서 컴파일 된 Bash 버전 4.4.5 (1) 릴리스를 사용하고 있습니다 (OpenBSD shells/bash
port) on OpenBSD-current (2017 년 1 월).
댓글
- 데이터 포인트로서 Zsh는 Bash ^ H ^처럼 동작합니다. H ^ H ^ HReadline, ksh와 다릅니다. (Bash '의 동작은 ' 정말 Bash가 아닙니다 ' s, it ' s Readline ' s, Bash가 사용합니다.)
답변
명령 줄에 Esc를 삽입 할 적절한 방법이없는 것 같습니다.
대부분의 alpha/numeric
키가 사용됩니다. Esc는 꽤 멀리 떨어져 있으며 모든 코드 (예 : Alt-j
( 작동)) 원하는 것보다 더 복잡해 보입니다. 따라서 두 개의 키를 구성으로 변환하는 방법이 있습니다. rable string.
해결 방법은 이 답변
의 아이디어를 사용하여 작동합니다.
:
set editing-mode vi set vi-ins-mode-string \1\e[6 q\2 set vi-cmd-mode-string \1\e[2 q\2 set keymap emacs "\ee": vi-editing-mode "jk": "\eejk" "kj": "\eejk" set keymap vi-insert "\ee": emacs-editing-mode "jk": vi-movement-mode "kj": vi-movement-mode set keymap vi-command "\ee": emacs-editing-mode
그렇게하면 어디서 시작하든 emacs
또는 vi
에서 jk
를 모두 누르면 vi-command 모드 줄의 시작 .
또한 Esc를 사용하여 emacs
모드로 전환 할 수 있습니다. – e .
댓글
- 할 수 있습니다 ' 충분히 찬성하지 마세요! emacs 항목을 제거했고 " jk " 단축키 만 필요합니다. ' " kj "가 필요하지 않으므로 간단히 다음과 같이합니다.
set editing-mode vi
set vi-ins-mode-string \1\e[6 q\2
set vi-cmd-mode-string \1\e[2 q\2
set keymap vi-insert
"jk": vi-movement-mode
이제 저는 행복합니다!