Zsh vim मोड में एक कमांड निष्पादित करें


10

में zshमें vim mode, मैं कुछ लिखने

foo foo bar bar

फिर मैंने Escसामान्य मोड में जाने के लिए मारा और टाइप किया :

foo foo bar bar
execute: _

फिर, मुझे लगता है कि मैं ऐसा कर सकता हूं, मैं खोजना चाहता हूं और इसके barसाथ प्रतिस्थापित करना चाहता हूंbaz

foo foo bar bar
execute: s/bar/baz/g_

फिर मैं एंटर को हिट करने की कोशिश करता हूं, लेकिन यह काम नहीं करता है। मैं केवल + का executeउपयोग करके वापस जा सकता हूं ।Ctrlc

मैं कमांड को कैसे निष्पादित कर सकता हूं?

मैंने अपने सामान्य .zshrcऔर बिना किसी के साथ यह कोशिश की .zshrc

जवाबों:


10

vicmdमोड , नाम के बावजूद, Vi के सामान्य मोड आदेश के लिए है। विह: के पूर्व-मोड कमांड के लिए प्रॉम्प्ट शुरू नहीं हुआ है , लेकिन ZLE (Zsh का लाइन एडिटर) कमांड चलाने के लिए है :

$ echo foo
execute: e_
edit-command-line          emacs-forward-word         end-of-history             end-of-line-hist           exchange-point-and-mark    execute-named-cmd          expand-history             expand-or-complete-prefix
emacs-backward-word        end-of-buffer-or-history   end-of-line                end-of-list                execute-last-named-cmd     expand-cmd-path            expand-or-complete         expand-word

दबाने Enterपर काम होगा जब एक अद्वितीय उपसर्ग दर्ज किया गया है (यानी, आप टाइप करें ed, जो मेल खाता है edit-command-line, फिर Enterकाम करेगा)। आप Tabमिलान आदेशों को देखने के लिए दबा सकते हैं।


धन्यवाद। bashइसके बजाय उपयोग करने का एक कारण zsh
pfnuesel

@pfnuesel यह है? क्या बैश वी के पूर्व आदेशों का उपयोग करता है?
मूरू

1
टाइपिंग v, आप दर्ज कर सकते हैं vimऔर जो कुछ भी आप कर सकते हैं वह कर सकते हैं vim
pfnuesel

3
@pfnuesel ओह, वह। Zsh है कि। यह डिफ़ॉल्ट रूप से सक्षम नहीं है। Unix.stackexchange.com/a/6622/70524
muru

@ मुरू आपका जवाब थोड़ा भ्रामक है। क्या आप "vicmd मोड" के रूप में संदर्भित कर रहे हैं वास्तव में कीमैप है command- यह "पूर्व जैसा" है जो आपको execute:ZLE कमांड दर्ज करने के लिए संकेत देता है । vicmdकीमैप है vi (एम) शैली आदेश मोड काम करने के लिए। Vi मोड में zsh उपयोग करते समय, आप की संभावना के बीच आगे पीछे की अदला-बदली हो जाएगा vicmdऔर viinsठीक उसी तरह है कि आप में vi (एम) आदेश के बीच और डालने मोड एक आगे वापस ले जाने के।
wjv
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.