ZSH में फुल स्क्रीन एडिटर में कमांड लाइन कैसे संपादित करें?


52

बैश में, vi मोड का उपयोग कर, अगर मैं मारा Esc, v, मेरे वर्तमान कमांड लाइन संपादक द्वारा निर्दिष्ट में खोला जाता है $EDITORऔर मैं पहले आदेश 'बचत' खोल में लौट आए और निष्पादित करने के लिए पूर्ण स्क्रीन में संपादित करने में सक्षम हूँ।

मैं zsh में समान व्यवहार कैसे प्राप्त कर सकता हूं? परिवेश vमोड EDITORसेट होने के बावजूद, कमांड मोड में हिट करने का एक बेल पर कोई प्रभाव नहीं पड़ता है ।

जवाबों:


36

देखें edit-command-lineमें zshcontrib

bindkey -M vicmd v edit-command-line

13
(बस स्पष्ट करने के लिए): सक्षम करने के लिए edit-command-lineकी तरह कुछ "विजेट" आप की आवश्यकता होगी autoload edit-command-line; zle -N edit-command-lineमें अपने में से एक zsh init फ़ाइलें (देखें ZLE कार्य खंड के zshcontribप्रलेखन )।
क्रिस जॉन्सन

एक बार इसकी जगह पर आप इसे कैसे सक्रिय करेंगे? Emacs- शैली उत्तर में बाँधने से मुझे समझ में आता है। लेकिन मुझे इस बात का संदर्भ नहीं मिल रहा है कि क्या bindkey -M vicmd vसेट होता है।
Mat Schaffer

@MatSchaffer बैश के समान: यदि आप vi मोड में हैं, तो <ESC>इन्सर्ट मोड से एंटर मोड में और फिर vविजुअल मोड ( Meta-vयह वही है) में हिट करें , या vयदि आप पहले से कमांड मोड में हैं। यदि आप Emacs मोड का उपयोग कर रहे हैं, तो विशिष्ट बाइंडिंग है C-x C-e
ephemient

1
वी कुंजी को हटाने का मतलब है कि आप दृश्य मोड का उपयोग किसी भी अधिक नहीं कर सकते हैं, इसलिए मैं स्पेसबार (जो सामान्य मोड में उपयोगी कुछ भी नहीं करता है) का पुन: मैपिंग करना पसंद करता हूंbindkey -M vicmd ' ' edit-command-line
gib

37

मामले में आप Emacs कीबाइंडिंग पसंद करते हैं:

autoload -z edit-command-line
zle -N edit-command-line
bindkey "^X^E" edit-command-line

9
^x^eबंधन के साथ एक डिफ़ॉल्ट हो रहा है वर्तमान ओह-मेरी-zsh है, जो बेहद अच्छा है।
quodlibetor

^ x ^ e वास्तव में वही है जिसकी मुझे तलाश थी।
jmreicha

1
जब तक editorमॉड्यूल लोड किया जाता है तब तक Prezto के लिए समान सेटअप ।
X

23

आप fcइतिहास में अंतिम कमांड को संपादित करने के लिए उपयोग कर सकते हैं । यह समान कमांड को संपादित करने के समान नहीं है, लेकिन एंटर कुंजी पर एक त्वरित हिट आपके वर्तमान कमांड को इतिहास में अंतिम कमांड बनाता है।


14

यह वह पूर्ण कॉन्फ़िगरेशन है जिसे मैंने अपने ~/.zshrcव्यवहार को बैश से प्राप्त करने के लिए जोड़ा था :

export VISUAL=vim
autoload edit-command-line; zle -N edit-command-line
bindkey -M vicmd v edit-command-line

यदि आप ओह मेरे ZSH या Prezto का उपयोग कर रहे हैं, तो पहले की टिप्पणियों के अनुसार, यह डिफ़ॉल्ट रूप से कॉन्फ़िगर किया गया है । उत्तरार्द्ध की आवश्यकता editorमॉड्यूल लोड होने के लिए viया vimआदेश मोड के लिए चयन किया।
X

मैं इसे स्वीकृत उत्तर देने के लिए मतदान करूँगा, इसने मेरे प्रश्न का वर्णन सभी विन्यास के साथ किया। धन्यवाद।
लॉरेंट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.