set -o vi를 설정 해제하는 방법?


26

bash에서 vi 모드를 사용 해보고 싶었지만 이제 다시 일반 모드로 변경하고 싶습니다.

어떻게 설정을 해제 할 수 -o vi있습니까?

답변:


30

현재 사용 가능한 두 가지 라인 편집 인터페이스 bashvi모드와 emacs모드이므로 emacs모드를 다시 설정하기 만하면됩니다.

set -o emacs

이것은 질문에 직접 대답하기보다는 줄 사이를 읽는 것이 었습니다. emacsbash의 기본 줄 편집 모드입니다. 설정 emacs모드 vi는 부작용으로 모드를 비활성화 하지만 아래 jlliagre에서 언급했듯이 실제로는 둘 다 비활성화 할 수 있습니다.
Chris Down

25

"정상"정의한 내용에 따라 다릅니다. 이것이 라인 편집을 끄는 경우 문서화 해제 방법은 설정 -o vi하는 것입니다+o vi

$ set -o vi
$ set -o|egrep -w "(vi|emacs)"
emacs           off
vi              on
$ set +o vi
$ set -o|egrep -w "(vi|emacs)"
emacs           off
vi              off

Chris는 이미 일반 모드가 emacs인지 대답했습니다.


모드를 끄면 쉘 히스토리 기능도 사라집니다. 이제 위 / 아래 화살표 키를 사용하여 명령 히스토리를 볼 수 없습니다 :(
rsjethani

2
쉘 히스토리 기능은 제거하지 않습니다. history명령으로 기록을보고 !문자 앞에 숫자를 붙여 이전 명령을 실행할 수 있습니다.
jlliagre

yes 'history'n 패밀리 명령은 여전히 ​​작동하지만 더 자주 사용하는 위 / 아래 화살표 키는 작동하지 않습니다. 키의 모드를 시작하자마자 작동하지 않습니다.
rsjethani

3
위 / 아래 화살표는 라인 편집이 활성화 된 경우 (즉, emacs 또는 vi 모드 중 하나가 설정된 경우) 셸에서만 관리됩니다. 그렇지 않으면 화살표 키는 이스케이프 시퀀스를 처리되지 않은 상태로 보냅니다.
jlliagre
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.