2015-06-22 4 views
8

मैं हर समय बैश में vi मोड का उपयोग करता हूं। यदि मैं कमांड मोड या सम्मिलित मोड में हूं तो दृश्यमान रूप से देखना वास्तव में उपयोगी होगा।क्या बैश-वी वी मोड में प्रॉम्प्ट होने के लिए सामान्य/कमांड मोड इत्यादि इंगित करने का कोई तरीका है

उदाहरण के लिए जब मैं इतिहास खोजने के लिए, या तो मोड में /my_search टाइपिंग चाहते एक ही लग रहा है जब तक मैं Enter दबाएँ, और तब तक बहुत देर हो चुकी है। मैं अपने आप को सिर्फ यकीन है कि मुझे सही मोड में कर रहा हूँ बनाने के लिए Esc आवश्यकता से अधिक दबाने ....

+4

वीआई मोड को अक्षम करें और '' का उपयोग करें, जब आपको वास्तव में कुछ संपादित करने की आवश्यकता होती है। – romainl

+0

वर्तमान कुंजीमैप खोजने के लिए आप 'bind -v' से आउटपुट का उपयोग कर सकते हैं। आप शेल वेरिएबल/आदि सेट करने के लिए संभवतः एंटर/छोड़ डालें बाइंडिंग को मैप कर सकते हैं। उचित रूप से लेकिन मुझे यकीन नहीं है कि आप उस बिंदु पर उस मूल्य को कहां दिखाएंगे। (प्रॉम्प्ट काम नहीं करता है, इसलिए इसे कहीं और अधिक आसानी से अद्यतन करने की आवश्यकता होगी ... जब तक आप त्वरित आकार के साथ खेलना शुरू नहीं करना चाहते हैं और कर्सर को किसी विशिष्ट स्थान पर एक स्ट्रिंग को ओवर-लिखने के लिए चारों ओर ले जाना चाहते हैं) –

+0

I यह पृष्ठ मिला जो आप चाहते हैं: http://www.snip2code.com/Snippet/205517/Display-Vim-mode-in-Bash-prompt - बैश 4.3 की आवश्यकता है –

उत्तर

1

मैं तुम्हें शीघ्र ही अपने आप में यह कर सकते हैं यकीन नहीं है लगता है, लेकिन मुझे लगता एक कर्सर आकार/रंग सूचक कम से कम उपयोगी है।

निम्नलिखित सेटअप सामान्य मोड में एक वर्ग, हरा, ब्लॉक कर्सर, और डालने मोड में एक पतला, फ्लैट, ग्रे अंडरलाइन कर्सर देता है। इसे बाश में करने का एक तरीका हो सकता है, लेकिन मैं इसे ज़श में काम कर रहा हूं, इसलिए मैं इसे साझा करूंगा। यह URxvt में होता है, लेकिन xterm में भी काम करना चाहिए। ~/.zshrc में:

# Modal cursor color for vi's insert/normal modes. 
zle-keymap-select() { 
    if [ $KEYMAP = vicmd ]; then 
    echo -ne "\033]12;Green\007" 
    echo -ne "\033[2 q" 
    else 
    echo -ne "\033]12;Grey\007" 
    echo -ne "\033[4 q" 
    fi 
} 
zle -N zle-keymap-select 
zle-line-init() { 
    zle -K viins 
    echo -ne "\033]12;Gray\007" 
    echo -ne "\033[4 q" 
} 
zle -N zle-line-init 

संसाधन: https://bbs.archlinux.org/viewtopic.php?id=95078 और https://unix.stackexchange.com/questions/115009/how-to-change-the-cursor-theme-in-cli

संपादित करें: मैं vim, zsh, tmux, और urxvt की एक कॉम्बो में इस काम के लिए हो रही करने के लिए एक comprehensive guide तैनात।

2

आप .inputrc फ़ाइल में इसे कॉन्फ़िगर कर सकते हैं जो रीडलाइन उपयोग करता है।

set show-mode-in-prompt 

मेरे लिए, यह डालने मोड में पहले वर्ण के रूप में एक +, सामान्य मोड में एक :, और खोज मोड में कोई चरित्र खींचता है।

(आप यहां set editing-mode vi का उपयोग करके vi मोड भी सक्षम कर सकते हैं, जो इसे केवल पश के बजाय पाइथन और रूबी दुभाषियों जैसे रीडलाइन का उपयोग करके सभी प्रोग्रामों के लिए सक्षम करेगा)।

संबंधित मुद्दे

 संबंधित मुद्दे