Bash에서 다음 기록과 이전 기록을 다시 바인딩하는 방법은 무엇입니까?

Bash에서 다음 기록과 이전 기록을 다시 바인딩하는 방법은 무엇입니까?

vi 키 바인딩을 사용하도록 Bash를 설정했지만 Emacs 스타일 과 바인딩을 유지하여 기록을 반복하고 set -o vi싶습니다 . bash(1)의 "Binding" 섹션을 읽고 다음 변형을 시도했습니다.Ctrl-pCtrl-n

bind -m vi-insert "\C-p": previous-history
bind -m vi-insert "\C-n": next-history

그러나 내가 실행한 명령 중 어떤 것도 bind효과가 없는 것 같습니다. 이후의 출력은 bind -P변경되지 않습니다. 이러한 명령에 대한 키 바인딩을 어떻게 변경할 수 있습니까?

답변1

에서 help bind:

The non-option argument syntax is equivalent to
that found in ~/.inputrc, but must be passed as a single argument:
e.g., bind '"\C-x\C-r": re-read-init-file'.

나는 필요한 인수를 찾기 위해 set -o emacsand 를 사용합니다.bind -p | grep history

필요한 명령은 다음과 같습니다.

bind '"\C-p": previous-history'
bind '"\C-n": next-history'

나는 set -o vi이것이 올바른 명령인지 확인하기 위해 이것을 테스트했습니다.


또한 이는 help쉘의 내장 명령을 배우기 위해 사용하는 것임을 참고하세요. 그 자체는 및 와 help마찬가지로 쉘 내장 함수입니다 .typebind

관련 정보