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


26

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

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

답변:


30

현재 사용 가능한 두 가지 라인 편집 인터페이스 bash는 vi모드와 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.