Ubuntu + पर Ctrl + X, Ctrl + C, Ctrl + V के साथ GVim में कट / कॉपी / पेस्ट कैसे करें?


54

डिफ़ॉल्ट रूप से, Ubuntu पर GVim में कट-कॉपी / पेस्ट / शॉर्ट-कट निम्न हैं:

 कट ”+ x
 कॉपी "+ y
 पेस्ट करें "+ जी.पी.

मैं GVim में नियंत्रण कुंजी कॉम्बोस का उपयोग करना चाहूंगा, जैसे मैं फ़ायरफ़ॉक्स में उपयोग करता हूं और गनोम एप्लिकेशन का उपयोग करता हूं। मैं अन्य Gnome ऐप्स की तरह काम करने के लिए GVim को कैसे कॉन्फ़िगर करूं?


डिफ़ॉल्ट विम कुंजियों के साथ टकराव से बचने के लिए, Ctrl + Key के बजाय Ctrl + Shift + Key चुनें
Shehariar

जवाबों:


50

निम्नलिखित पंक्तियों को अपने _vimrcया में जोड़ें.vimrc

source $VIMRUNTIME/mswin.vim
behave mswin

लेकिन सावधान रहें, विजुअल मोड CTRL-V के बजाय CTRL-Q है।

एक अवलोकन के लिए जो mswin.vim mswin.vim sourcode देखता है । यह बहुत अच्छी तरह से टिप्पणी की है और अगर कुछ आदेश अस्पष्ट है तो आप इसे आसानी से विम की मदद में देख सकते हैं।

यहाँ एक त्वरित अवलोकन स्रोत से संकलित किया गया है:

  • बैकस्पेस और कर्सर कुंजियाँ पिछली / अगली पंक्ति में लपेटी जाती हैं
  • CTRL-X और SHIFT-Del कट हैं
  • CTRL-C और CTRL-Insert कॉपी हैं
  • CTRL-V और SHIFT- इंसर्ट पेस्ट हैं
  • CTRL-V का उपयोग करने के लिए CTRL-Q का उपयोग करें
  • बचत के लिए CTRL-S का प्रयोग करें, इन्सर्ट मोड में भी
  • CTRL-Z पूर्ववत है; हालांकि cmdline में नहीं
  • CTRL-Y Redo है (हालांकि दोहराना नहीं); हालांकि cmdline में नहीं
  • Alt- स्पेस सिस्टम मेनू है
  • CTRL-A सभी का चयन करें
  • CTRL-Tab अगली विंडो है
  • CTRL-F4 विंडो बंद है

निप्पिसॉरस के अनुरोध पर: मैंने मेनू में पेस्ट के अलावा Ctrl-V दिखाने के लिए अपने .gvimrc में निम्नलिखित डाला:

unmenu! Edit.Paste
aunmenu Edit.Paste
nnoremenu 20.360 &Edit.&Paste<Tab>Ctrl-V        "+gP
cnoremenu    &Edit.&Paste<Tab>Ctrl-V        <C-R>+

मैं इसे अच्छी तरह से परीक्षण नहीं किया, बस एक त्वरित जाँच अगर यह मुझे उम्मीद थी कि किया था। मेरे लिए काम करता है, आशा है कि यह आपके लिए काम करता है ;-)


1
मैं उन बिंदुओं को समझता हूं और उनकी सराहना करता हूं जो पीटर थोरिन के उत्तर की टिप्पणियों में मन्नी और पीटर थोरिन ने किए थे। मेरा लेना यह है कि मैंने एक नोटपैड प्रतिस्थापन के रूप में विंडोज पर जीवीएम सीखा, और मैं कम घर्षण चाहता हूं।
थैंक्स

2
क्या नई शॉर्टकट कुंजियों से मिलान करने के लिए मेनू शॉर्टकट टेक्स्ट को बदलने का कोई तरीका है?
निप्पिसोरस

@ निप्पिसॉरस: मैंने इसे .gvimrc में मेन्यूट्रांस के साथ आज़माया। काम करने के लिए नहीं मिला, शाम को एक और नज़र होगी ...
लुडविग वेन्ज़िएरेल

2
ऐसा लगता है कि mswin.vimपहले से ही एक behave mswinकॉल है। क्या यह अपने आप में फिर से कॉल करना आवश्यक है _vimrc?
नाथन मित्र

1
@ नथनफ्रीड डिट्टो। यह बिना भी काम करता है behave mswin, कम से कम मेरे सिस्टम पर विम 8.0 के साथ।
मिकेल

46

यदि आप "मानक" हॉटकी का उपयोग करके काम करने के लिए कट / कॉपी / पेस्ट करना चाहते हैं, लेकिन आप gvim में किसी भी अन्य कॉन्फ़िगरेशन विकल्प को बदलना नहीं चाहते हैं, तो निम्नलिखित को जोड़ने का प्रयास करें ~/.vimrc

vmap <C-c> "+yi
vmap <C-x> "+c
vmap <C-v> c<ESC>"+p
imap <C-v> <C-r><C-o>+

पेस्ट केवल विज़ुअल और इंसर्ट मोड में काम करता है, इसलिए आपको Ctrl-V और ब्लॉकवाइज़ विज़ुअल मोड के साथ संघर्ष के बारे में चिंता करने की ज़रूरत नहीं है। यह कोई समस्या नहीं है, क्योंकि कॉपी और कट आपको इन्सर्ट मोड में डालते हैं, इसलिए आप तुरंत बाद में पेस्ट कर सकते हैं। यदि आप इसे आज़माते हैं, तो आप पाएंगे कि यह पूरी तरह से प्राकृतिक लगता है।

मैं ट्वीकिंग के कई पुनरावृत्तियों के बाद इस विन्यास के साथ आया था, और मुझे लगता है कि यह अब "सही" है। यदि आप अपनी वर्तमान प्रति / पेस्ट कॉन्फ़िगरेशन से थोड़ा असंतुष्ट हैं, तो इसे आज़माएँ और मुझे यकीन है कि आप इसे पसंद करेंगे।


यही वह है जिसकी तलाश में मैं हूं। धन्यवाद।
शॉन मैकक्लेरी

2
कुछ प्रयोगों और परामर्श के बाद :help i_ctrl-r_ctrl-o, मैंने इसे बदलने imap <C-v> <ESC>"+paका फैसला किया imap <C-v> <C-r><C-o>+; यह अपेक्षा के अनुसार काम करता है जब कर्सर एक पंक्ति के पहले वर्ण के बाईं ओर होता है, और यह "मानक" व्यवहार का सबसे निकट से अनुकरण करता है।
होल्गर

मैं <C-v>शिफ्ट + इंसर्ट में बदलने के बारे में सोच रहा हूं जो लगता है कि मेरी मशीन पर तेजी से हो रहा है। लेकिन एक परियोजना के बीच में और अभी विम को पुनः आरंभ करने का मन नहीं है। बस साझा कर रहे हैं
होगा

तुम कमाल हो =)
युगल जिंदल

9

यदि आप सामान्य व्यवहार को बनाए रखना चाहते हैं, लेकिन सिस्टम क्लिपबोर्ड के कम बोझिल उपयोग के लिए भी अनुमति देते हैं, तो सिस्टम क्लिपबोर्ड तक पहुंच देखें । आप अपनी डिफ़ॉल्ट बफर के रूप में सिस्टम क्लिपबोर्ड का उपयोग करने के (इसलिए किसी भी जाँचने चाहते हैं, तो x, y, p, आदि आदेश क्लिपबोर्ड का उपयोग करता है) फिर अपने vimrc में निम्न पंक्ति जोड़ें:

set clipboard=unnamed

मैं व्यक्तिगत रूप से vim और system के बीच की तुलना में vim के भीतर बफ़र्स का अधिक उपयोग करता हूं; इसलिए मैं अपने सिस्टम क्लिपबोर्ड को लगातार क्लोब किए जाने की तुलना में थोड़ा अधिक बोझिल शॉर्टकट होगा। लेकिन यह अच्छा है कि विकल्प उन लोगों के लिए है जो इसे पसंद करेंगे।


2

मुझे लगता है कि आप इसे इसके साथ जोड़ सकते हैं: imap कमांड (इसे विंडोज़ में Ctrl + X के साथ आज़माया जो काम करता है, ctrl + c दबाने से कमांड रद्द हो जाती है, हालांकि आपको इसे vimrc में करना पड़ सकता है)।

:imap <C-X> "+x
:imap <C-C> "+y 
:imap <C-V> "+gP

यदि आप इसे अपने ~ / .vimrc में जोड़ते हैं तो आपको बस हटाने की आवश्यकता है: imap के सामने।

imap केवल इन्सर्ट मोड में बाइंडिंग जोड़ता है, इसलिए आप इसे केवल मैप या कुछ और में बदलना चाह सकते हैं। :help mapmodeसामान हटाने और हटाने के बारे में और जानने के लिए देखें ।

सौभाग्य!


1
यह थोड़ा सा ट्रिक करना चाहिए। लेकिन ऐसा करना एक बुरा विचार है। Ctrl-V को दृश्य मोड में जाना चाहिए, Ctrl-C किसी भी कमांड को रद्द कर देगा। और ट्रिक केवल आपके सिस्टम पर काम करेगी; एक अलग मशीन पर, आप खो जाएंगे।
इन्ना

1
मैं इस बात से सहमत हूं कि यह एक बुरा विचार है, मैं इसे स्वयं उपयोग नहीं करना चाहता, लेकिन यदि आप केवल एक आकस्मिक gvim उपयोगकर्ता हैं, तो आप शायद वैसे बाइंडिंग को याद नहीं करेंगे जो आप किसी भी तरह से हटाते हैं।
पीटर थोरिन

1
पहली जगह में gvim का उपयोग क्यों करें? आप कब तक एक आकस्मिक उपयोगकर्ता बने रहेंगे?
इन्ना

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