जवाबों:
चूँकि आपका प्रश्न बैश के बारे में विशिष्ट है:
इसे हर नए सत्र के लिए स्थायी रूप से सेट करने के लिए:
echo 'set -o vi' >> ~/.bashrc
या (अनुशंसित), ./inputrc में एक पंक्ति जोड़ें (या बदलें):
set editing-mode vi
यह रीडलाइन के संपादन मोड को सेट करेगा जिसका उपयोग बैश के साथ कई अन्य कार्यक्रमों द्वारा किया जाता है।
दोनों विकल्पों को खोलना आसान है:
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
Emacs:
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 vi
POSIX है। set -o emacs
(जैसा कि रिचर्ड स्टॉलमैन ने emacs
POSIX द्वारा निर्दिष्ट मोड पर आपत्ति जताई ) नहीं है, लेकिन शेल कार्यान्वयन के बीच बहुत आम है। कुछ गोले अतिरिक्त संपादन मोड का समर्थन करते हैं। [[ -o option ]]
POSIX नहीं है, लेकिन ksh, bash और zsh द्वारा समर्थित है। [ -o option ]
द्वारा समर्थित है bash
, ksh
और yash
( -o
एक बाइनरी या ऑपरेटर के लिए भी ध्यान दें [
)।
set -o | egrep -w '^emacs|vi'
क्या emacs या vi सेट है या नहीं।