나는 방금 이 기적을 발견했고 set -o vi
이 vi 쉘 모드를 vi나 vim과 같은 방식으로 사용자 정의할 수 있는지 궁금합니다.
예를 들어, 보다 편리한 키나 키 조합을 esc
?
현재 지원되지 않는 경우 일부 사용자 정의에서 프로그램의 소스 코드와 하드코드를 변경하는 것이 얼마나 어렵습니까? 아니면 나쁜 생각입니까?
답변1
예, 내장 명령(vi 또는 emacs와 같은 모드의 경우)을 사용하여 키맵을 변경할 수 있습니다 bind
. 이것은 실제로 readline 기능입니다(따라서 bash뿐만 아니라 모든 readline 프로그램에서 vi와 유사한 바인딩을 가질 수 있습니다).
찾고 있는 키 이름 vi-movement-mode
, 기본값은 \e
(escape)입니다. 또한 이것을 다음과 같이 (다소 어리석은 일이지만) 동일하게 바인딩할 수도 있습니다. 두 번째 줄은 이스케이프된 바인딩을 제거합니다.
$ bind "=":vi-movement-mode
$ bind -r "\e"
실행하면 bind -p
바인딩할 수 있는 모든 키와 현재 바인딩(있는 경우)이 표시됩니다.
bind
명령을 당신의 명령에 넣거나 실행하는 모든 readline 프로그램에서 작동하도록 .bashrc
편집할 수 있습니다 . ~/.inputrc
readline 문서에는 자세한 내용이 포함되어 있습니다.