vi
Bash 또는 명령줄 편집 모드를 어떻게 설정 emacs
하고 현재 어떤 모드가 설정되어 있는지 어떻게 확인합니까?
답변1
도착하다 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
POSIX set -o vi
에서 나옵니다. set -o emacs
아니요(Richard Stallman이 emacs
POSIX 지정 모드에 반대했기 때문에). 그러나 이는 쉘 구현에서 일반적입니다. 일부 쉘은 추가 편집 모드를 지원합니다. [[ -o option ]]
POSIX는 아니지만 ksh, bash 및 zsh에서 지원됩니다. , 및 에서 지원됩니다 [ -o option ]
(이진 OR 연산자이기도 함).bash
ksh
yash
-o
[
답변2
귀하의 질문은 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
으며 그 반대도 마찬가지입니다.
목록 상태:
$ 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
답변3
게다가 bind -V | grep editing-mode
.
man bash
방대한 내용이지만 깊이 있게 읽어볼 가치가 충분히 있습니다.