Yanıtlar:
Sorunuz bash hakkında özel olduğundan:
Her yeni oturum için kalıcı olarak ayarlamak üzere:
echo 'set -o vi' >> ~/.bashrc
veya (önerilir), ./inputrc dosyasına bir satır ekleyin (veya değiştirin):
set editing-mode vi
Bu, bash yanındaki diğer birçok program tarafından kullanılan readline'ın düzenleme modunu ayarlayacaktır.
Her iki seçeneği de ayarlamak kolaydır:
shopt -ou vi emacs
Bir tanesini ayarlamak için:
set -o vi
Veya
shopt -os vi
Aynısı emacs
. vi
Unsets emacs
ve viceversa ayarlama .
Durumu listelemek için:
$ shopt -op emacs
set +o emacs
$ shopt -op vi
set -o vi
Ya da her ikisi de aynı anda:
$ shopt -op emacs vi
set +o emacs
set -o vi
Ayarlanıp vi
ayarlanmadığını test etmek için :
shopt -oq vi && echo vi is set
Veya (ksh sözdizimi):
[[ -o vi ]] && echo vi is set
emacs:
shopt -oq emacs && echo emacs is set
Veya:
[[ -o emacs ]] && echo emacs is set
veya herhangi bir seçeneğin belirlenmediğini test etmek için:
! ( shopt -oq emacs || shopt -oq vi ) && echo no option is set
Alıcı set
:
set -o vi
Veya:
set -o emacs
(birini ayarlamak diğerini kaldırır. Her set -o vi +o vi
ikisini de kaldırmak için yapabilirsiniz )
Kontrol etmek:
if [[ -o emacs ]]; then
echo emacs mode
elif [[ -o vi ]]; then
echo vi mode
else
echo neither
fi
Bu sözdizimi geliyor ksh
. set -o vi
POSIX olduğunu. set -o emacs
(Richard Stallman'ın emacs
POSIX tarafından belirtilen moda itiraz ettiği gibi ) değil, kabuk uygulamaları arasında çok yaygın. Bazı kabuklar ekstra düzenleme modlarını destekler. [[ -o option ]]
POSIX değil, ksh, bash ve zsh tarafından desteklenir. [ -o option ]
tarafından desteklenmektedir bash
, ksh
ve yash
(not -o
ayrıca bir ikili VEYA operatörüdür [
).
set -o | egrep -w '^emacs|vi'
emacs veya vi ayarlanıp ayarlanmadığını döndürür.