जब मेरी esc कुंजी काम नहीं करती है तो vm को ESC सिग्नल कैसे भेजें?


20

Escजब मुझे सम्मिलित मोड से इंटरेक्टिव मोड पर लौटना है, तो मुझे कुंजी की समस्या हो रही है। क्या इन्सर्ट मोड जारी करने के लिए उपयोग की जाने वाली एक और कुंजी मौजूद है।


13
प्रेस नियंत्रण[
थॉमस डिके

3
Vi.stackexchange.com/q/300/9708 पर भी कुछ सुझाव दें।
गय

2
नई मैकबुक प्रो? <grin>
रुई एफ रिबेरो

2
नहीं, थिंकपैड एक्स 1 कार्बन
सैंड्रा रॉस

जवाबों:


7

मौजूदा समाधान के बावजूद, विम में पारंपरिक समाधान आपके .vimrcकॉन्फ़िगरेशन में कुंजियों को हटाने के लिए है। वास्तव में, कई विम उपयोगकर्ताओं के लिए आसान रीप्लेबल कुंजी रीमैप्ड है Esc। लोकप्रिय विकल्प Ctrl+ Enter, या jjआदि हैं।

इसे सक्षम करने के लिए, बस निम्नलिखित में से कुछ को अपने में डालें .vimrcऔर इसे पुनः लोड करें / फिर से शुरू करें:

" Shift-Enter
inoremap <S-CR> <Esc>
" Double-j
inoremap jj <Esc>

अधिक जानकारी और विकल्प


1
आईप, वह विम तरीका है। Learn Vim the Hard Way (पुस्तक) द्वारा प्रचारित एक और सामान्य तरीका हैinoremap jk <Esc>
grochmal

यह एक अच्छा समाधान है, लेकिन केवल Ctrl + Enter + j का उपयोग करने में क्या समस्या है?
सैंड्रा रॉस

@SandraRoss आप वास्तव में किसी भी प्रमुख संयोजन का उपयोग कर सकते हैं जिसे आप कल्पना करते हैं (हालांकि सावधान रहें कि कुछ, जैसे Ctrl-Enter, macOS पर काम न करें)। उस ने कहा, Ctrl + Enter + j मुझे टाइप करने के लिए अधिक कठिन है, और मुझे ईमानदारी से पता नहीं है कि क्या आप Vim में दो गैर-संशोधक कुंजियों (Enter, j) के साथ तीन-कुंजी संयोजनों को भी कॉन्फ़िगर कर सकते हैं।
कोनराड रुडोल्फ

ठीक है, मैं उपक्रम करता हूं। वास्तव में, Ctrl + Enter + jj मेरे लिए काम नहीं करता है, क्योंकि, वास्तव में, मैं macos X का उपयोग करता हूं। कम से कम, क्या आप मुझे बता सकते हैं कि मुझे सिर्फ Ctrl + j के लिए क्या दर्ज करना है।
सैंड्रा रॉस

@SandraRoss उसके लिए, inoremap <C-j> <Esc>काम करना चाहिए। :-)
कोनराड रुडोल्फ

32

Ctrl- [भौतिक Escकुंजी के रूप में टर्मिनल के लिए एक ही चरित्र भेजता है । उत्तरार्द्ध आमतौर पर पूर्व के लिए एक शॉर्टकट है, आम तौर पर।


3
मेरे पास एक बार वास्तविक vt220 टर्मिनल था, और इसके कीबोर्ड में एक Escapeकुंजी नहीं है । दबाव उत्पन्न करने Ctrl+[का एकमात्र तरीका था Escape
Kusalananda

11

यदि आप एक एकल कुंजी का उपयोग करने में सक्षम होना चाहते हैं, तो एक शुद्ध * निक्स समाधान (विम मैपिंग के बिना) के रूप में आप किसी भी कुंजी को परिभाषित कर सकते हैं Esc। Emacs उपयोगकर्ताओं वैसे ही जैसे पुन: मैप CapsLockकरने के लिए Ctrlकुछ विम उपयोगकर्ताओं remap (मुझे शामिल है) CapsLockकरने के लिए Esc। यह X11 का उपयोग करके किसी भी * निक्स के लिए काम करता है।

कुंजी के लिए कीकोड प्राप्त करने के लिए xev -event keyboard(और फिर दबाएं CapsLock) का उपयोग करें ( CapsLockमेरे लिए यह कीकोड 66 है)। फिर आप xmodmapकुंजी को हटाने के लिए उपयोग कर सकते हैं :

xmodmap -e 'remove Lock = Caps_Lock' -e 'keycode 66 = Escape'

लॉगिन पर इसे प्राप्त करने के लिए आप xmodmapभावों को ~/.Xmodmapइस प्रकार जोड़ सकते हैं :

remove Lock = Caps_Lock
keycode 66 = Escape

हालांकि दूसरे भाग YMMV के लिए, चूंकि सभी प्रदर्शन प्रबंधक नहीं चलते हैं ~/.Xmodmap। आप जोड़ना पड़ सकता है xmodmap .Xmodmapकरने के लिए .xinitrcउनमें से कुछ पर।


मुझे सही में पता है तुम्हारा क्या मतलब है। मैंने देखा है कि इस सप्ताह के शुरू में
सैंड्रा रॉस

मैं ऐसा करूंगा, लेकिन मैं अपनी रचना की कुंजी के रूप में कैप्सलॉक का उपयोग करता हूं: (
डोपघोटी

6

आप Ctrl-C आज़मा सकते हैं, जो मेरे लिए काम करता है और ESC की तुलना में मेरी राय में आसान है। हालाँकि मुझे यकीन नहीं है कि यह डिफ़ॉल्ट रूप से सक्षम है।


CTRL-C ASCII है 0x03, SIGINT को शेल में भेजता है - ESC के समान नहीं है।
बिल्ली

@cat यह मूल रूप से यद्यपि विम में समान रूप से काम करता है। मैं हमेशा
Erik W

1
@ कोट: आप इसे मुफ्त में प्राप्त करते हैं, क्योंकि विम में उस हैंडलर की जगह है। आपको खुद कुछ करने की जरूरत नहीं है। यह उत्तर बॉक्स से बाहर काम करता है; मैंने बस कोशिश की। क्या यह किसी भी अनुप्रयोग के लिए सामान्य रूप से काम करता है ? नहीं, लेकिन वह नहीं है जो मांगा गया था।
मोनिका के साथ हल्कापन दौड़

2
@ कोट: वाक़ई? शीर्षक है "ESC सिग्नल कैसे भेजें vim जब मेरी एस्क कुंजी काम नहीं करती है?" , केवल टैग विम है , और प्रश्न में वर्णित समस्या विम के प्रविष्टि मोड से बचने के बारे में है। यहाँ प्रश्न का सार भाग है: "क्या कोई अन्य कुंजी है जो इन्सर्ट मोड को रिलीज़ करने के लिए उपयोग की जाती है।" यदि यह विम और इसके सम्मिलित मोड के लिए विशिष्ट नहीं है, तो मुझे नहीं पता कि क्या है!
मोनिका

1
@LightnessRacesinOrbit खैर, जब मैंने शुरू में शीर्षक देखा, तो यह "Esc के लिए उपयोग की गई एक अन्य कुंजी" थी और यह प्रश्न बिल्कुल भी विशिष्ट नहीं लगा vim। माफ़ करना! ¯_ (¯) _ / ¯
बिल्ली

-3

Ctrl + F2

डिफ़ॉल्ट रूप से सक्षम है। किसी भी सेटिंग को कॉन्फ़िगर करने की आवश्यकता नहीं है।

आप सामान्य मोड में चले जाएंगे, जहां आप कर सकते हैं :q! or :wq


3
Ctrl+F2एक पलायन भेज सकते हैं, लेकिन यह भी अन्य चीजें भेज देंगे।
कुसलानंद
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.