답변:
귀하의 질문은 bash에 관한 것이므로 :
모든 새 세션에 대해 영구적으로 설정하려면 다음을 수행하십시오.
echo 'set -o vi' >> ~/.bashrc
또는 (권장), ./inputrc에 행을 추가 (또는 변경)하십시오.
set editing-mode vi
이것은 bash 이외의 다른 여러 프로그램에서 사용되는 readline의 편집 모드를 설정합니다.
두 옵션을 모두 쉽게 설정 해제 할 수 있습니다.
shopt -ou vi emacs
하나를 설정하려면 다음 중 하나를 수행하십시오.
set -o vi
또는
shopt -os vi
에 대해서도 동일합니다 emacs. 설정 vi설정 해제 emacs및 viceversa에 있습니다.
상태를 나열하려면
$ shopt -op emacs
set +o emacs
$ shopt -op vi
set -o vi
또는 한 번에 둘 다 :
$ shopt -op emacs vi
set +o emacs
set -o vi
vi설정되어 있는지 테스트하려면 :
shopt -oq vi && echo vi is set
또는 (ksh 구문) :
[[ -o vi ]] && echo vi is set
이맥스 :
shopt -oq emacs && echo emacs is set
또는:
[[ -o emacs ]] && echo emacs is set
또는 옵션이 설정되지 않았 음을 테스트하려면 다음을 수행하십시오.
! ( shopt -oq emacs || shopt -oq vi ) && echo no option is set
받는 사람 set:
set -o vi
또는:
set -o emacs
(하나를 설정하면 다른 하나가 해제됩니다. set -o vi +o vi둘 다 설정을 해제 할 수 있습니다 )
확인하다:
if [[ -o emacs ]]; then
echo emacs mode
elif [[ -o vi ]]; then
echo vi mode
else
echo neither
fi
이 구문은에서 온 것입니다 ksh. 은 set -o viPOSIX입니다. POSIX가 지정한 모드에 set -o emacs반대하는 Richard Stallman은 emacs아니지만 쉘 구현에서 매우 일반적입니다. 일부 쉘은 추가 편집 모드를 지원합니다. [[ -o option ]]POSIX는 아니지만 ksh, bash 및 zsh에서 지원됩니다. [ -o option ]에 의해 지원되고 bash, ksh그리고 yash(참고 -o도 대한 이진 OR 연산자이다 [).
set -o | egrep -w '^emacs|vi'emacs 또는 vi 설정 여부를 반환합니다.