वीईएम एमएसीएस कमांड के साथ अनुकूलित (केवल मोड डालें)


10

मैं एक emacsउपयोगकर्ता था , और मुझे स्विच करना होगा vim। लेकिन मुझे vimडालने के मोड में कुछ बुनियादी emacs कमांड याद हैं :

  1. C-A
  2. C-E
  3. C-K
  4. C-Y
  5. C-x C-s
  6. ... और कुछ अन्य

मुझे पता है कि मैं प्रेस कर सकता हूं Escapeऔर फिर निम्नलिखित कुछ कुंजियों को दबा सकता हूं और अंत में कुंजी दबा सकता हूं i:

  1. ^
  2. $
  3. d$
  4. p
  5. :w [दर्ज]
  6. ...

हालाँकि मैं vimइन्सर्ट मोड में रहना पसंद करूँगा और प्रेस Escape/ iकीज़ से बचूँगा ।

वेब पर, मैं के लिए अनुकूलन पाया है emacs( vi-mode, vip, viper, vimpulse, vim-mode, evil)। लेकिन अभी तक विपरीत नहीं मिला: कमांड vimका उपयोग करने के लिए अनुकूलित emacs...

मुझे केवल इन्सर्ट मोडemacs में कमांड्स के बारे में दिलचस्पी है । के रूप में बस कुछ बुनियादी आज्ञाओं, कमांड: , , , , ... (हां एक डिफ़ॉल्ट नहीं है आदेश, लेकिन मैं इसे पसंद भी)।vim bashC-AC-EC-KC-YC-UC-Uemacs

जवाबों:


7

मैं चार साल बाद इस सवाल का जवाब दे रहा हूं क्योंकि प्रदान किया गया जवाब एक आंशिक समाधान है जो मूल प्रश्न को पूरी तरह से संबोधित नहीं करता है।

मुझे ओलिब्रे के समान ही इच्छा है, और एक पूर्ण समाधान के साथ आना चाहता था। मैं इसे एक अलग दृष्टिकोण से आता हूं - मैं बैश में Emacs लाइन संपादन के लिए उपयोग किया जाता हूं - लेकिन मुद्दा समान है। मुझे लगता है कि विम इन्सर्ट मोड (केवल) में ले जाना चाहता हूँ।

ऑलिबर द्वारा प्रस्तुत मूल प्रश्न में कीबाइंडिंग अनुरोधों के निम्नलिखित सभी पते, साथ ही कुछ अतिरिक्त:

" Mimic Emacs Line Editing in Insert Mode Only
inoremap <C-A> <Home>
inoremap <C-B> <Left>
inoremap <C-E> <End>
inoremap <C-F> <Right>
" â is <Alt-B>
inoremap â <C-Left>
" æ is <Alt-F>
inoremap æ <C-Right>
inoremap <C-K> <Esc>lDa
inoremap <C-U> <Esc>d0xi
inoremap <C-Y> <Esc>Pa
inoremap <C-X><C-S> <Esc>:w<CR>a

इस बिंदु पर काम करने के लिए एकमात्र बाइंडिंग मुझे नहीं मिल सकती है <Alt-B>और <Alt-F>, जो पूरे शब्दों को छोड़ देगा। जब भी मैं बाँध <Esc>, <Alt>या <Meta>संयोजन, जाँचने (Windows पर v7.4) उच्चारण चिह्न वर्ण आउटपुट। यदि आपके पास इस समस्या का समाधान है तो कृपया इस उत्तर को संपादित करने के लिए स्वतंत्र महसूस करें। मैं विशेष वर्णों का उपयोग करने के लिए किसी अन्य पोस्ट के सुझाव के आधार पर काम करने के लिए Alt संयोजनों को प्राप्त कर चुका हूं । मैंने उन्हें ऊपर डाला है।

संपादित करें

- (संपादन मूल उत्तर पोस्टर द्वारा नहीं है) -

मैंने निओविम और विंडोज 10 के तहत निम्नलिखित का उपयोग किया है। आपको "ए" को अन्य ओएस पर "एम" में बदलने की आवश्यकता हो सकती है क्योंकि "एलटी" कहीं और "मेटा" हो सकता है। मैंने इसके साथ पर्याप्त रूप से नहीं खेला है।

inoremap <A-x> <Esc>:
inoremap <A-f> <Esc>lwi
inoremap <A-b> <Esc>bi
inoremap <A-S-f> <Esc>lWi
inoremap <A-S-b> <Esc>Bi

बस एक छोटा सा सुझाव: मुझे लगता है कि <Esc>paइसके लिए बेहतर होगा<C-Y>
यामनेको

ऐसा लगता है कि <C-K>जब कर्सर बाईं ओर काम नहीं करता है - तो उसे पूरी लाइन को हटा देना चाहिए लेकिन Esc>lDaपहले वर्ण को अनिर्धारित छोड़ देना चाहिए ।
यिंग जिओंग

7

आप कमांड मोड में किसी भी कमांड को :imapकमांड का उपयोग करके कुछ भी मैप कर सकते हैं , या टाइप करके सेव कर सकते हैं :im। अपनी पहली मैपिंग के लिए, आप टाइप कर सकते हैं (सामान्य मोड में):

:im <C-A> <esc>^i

जो सामान्य मोड में जाता है (भागने के साथ), ^आपके लिए दबाता है और इन्सर्ट मोड में वापस जाता है। अधिक जानकारी के लिए मदद देखें:

:help :imap या इससे कम: :h :im

ध्यान दें कि आप मौजूदा कुंजी मैपिंग को अधिलेखित कर सकते हैं। .vimrcयदि आप चाहते हैं कि आप उन्हें हर दस्तावेज़ के लिए रखें, तो अपने कॉन्फ़िगरेशन फ़ाइल में कमांड डालें ।


आपके सुझाव के लिए धन्यवाद +1 :-) लेकिन क्या आप जानते हैं कि इस तरह की मैपिंग पहले से ही कॉन्फ़िगर की गई है? (उदाहरण के लिए मौजूदा प्रमुख मैपिंग के बिना अधिलेखित)। ऐसी परियोजना / विन्यास कहां से प्राप्त करें? मैं पहले से किए गए (और मजबूत) कुछ का फिर से उपयोग करना पसंद करूंगा, यह खुद करने की कोशिश कर रहा है (और कुछ महत्वपूर्ण याद आ रही है)। चीयर्स
ओलीब्रे

क्या मुझे अपने सवाल को superuser.com से पूछना / स्थानांतरित करना चाहिए ?
ओलिब्रे

धन्यवाद! आप देख सकते हैं कि क्या एक कमांड (लॉजिक) कमांड के साथ मौजूद है :im <c-a>। यदि यह कहता है कि 'कोई मानचित्रण नहीं मिला है', तो आप किसी भी तरह से ओवरराइटिंग नहीं करेंगे। मुझे नहीं लगता कि यह उससे कहीं अधिक मजबूत होगा ...
जोकर

हम्म ... मुझे अपने कॉन्फ़िगरेशन का परीक्षण करना है, फिर मेरे बग्स को ठीक करना है, और फिर से .... लेकिन मुझे सभी vimआदेशों की जानकारी नहीं है ... कृपया, क्या आप जानते हैं कि मुझे :imअंतिम तर्क की सूची कहां मिल सकती है? FYI करें, मैं भी निम्नलिखित के साथ प्रयोग किया हूँ bash: आदेशों M-backspace, M-F, M-B, M-Dयह ... यह अच्छा होगा यदि कोई पहले से ही है कि और शेयरों अपने काम किया है, हो जाएगा नहीं है? (ऐसा कुछ evil) इसलिए मैं उसकी :imकुंजी मैपिंग का पुन: उपयोग अपने आप कर सकता हूं (त्रुटि प्रवण)। क्या तुमने देखा कि मेरा क्या मतलब है?
ओलिब्रे

मैं शायद समझ नहीं पा रहा हूं कि आपका क्या मतलब है, लेकिन आप टाइप करके सभी गैर-मानक कुंजी मैपिंग पा सकते हैं :im। उच्च-स्तरीय टिप्पणी करने के लिए: यदि आप अपने स्वयं के प्लगइन्स, विशेष मोड या vimrc-file को लोड किए बिना कई प्लेटफार्मों / कंप्यूटरों पर Vim का उपयोग करने में सक्षम होना चाहते हैं, तो मुझे लगता है कि सीखने / उपयोग करने के लिए सबसे अच्छी बात यह है कि जितना संभव हो उतना मानक Vim- कमांड। मैंने स्वयं कई महत्वपूर्ण मानचित्रण किए, लेकिन हमेशा मानक विम-विकल्प खोजने का प्रयास किया। और यह बहुत जल्दी हो सकता है। एक बात मैंने किया था नक्शा है <esc>करने के लिए ;j, के रूप में आसान के रूप में अपने एन.आर. 1 मानचित्रण बनाने ;jIऔर 2 एन.आर. ;jA
जोकर

6

पूर्ण उत्तर नहीं है, लेकिन क्या आप विम के तथाकथित " आसान मोड " ( vim -y) से अवगत हैं ? यह हमेशा डिफॉस्ट द्वारा संपादित मोड में होता है, और जो आप चाहते हैं, वह काफी कुछ करता है, और आपको कुछ भी स्थापित या अनुकूलित करने की आवश्यकता नहीं होती है। यह कुंजी-सूची से CTRL-A, C, V, X, Y आदि करता है :

Key mappings:
    <Down>      moves by screen lines rather than file lines
    <Up>        idem
    Q           does "gq", formatting, instead of Ex mode
    <BS>        in Visual mode: deletes the selection
    CTRL-X      in Visual mode: Cut to clipboard
    <S-Del>     idem
    CTRL-C      in Visual mode: Copy to clipboard
    <C-Insert>  idem
    CTRL-V      Pastes from the clipboard (in any mode)
    <S-Insert>  idem
    CTRL-Q      do what CTRL-V used to do
    CTRL-Z      undo
    CTRL-Y      redo
    <M-Space>   system menu
    CTRL-A      select all
    <C-Tab>     next window, CTRL-W w
    <C-F4>      close window, CTRL-W c

इसका एक और अधिक शक्तिशाली संस्करण क्रीम है , जो कई और कुंजियों को हटाता है , और अन्य संपादकों के समान मूल कमांड बनाता है जिनसे आप परिचित हो सकते हैं।

वहाँ भी प्लगइन Vimacs है , जो सभी सामान्य emacs कुंजी मैपिंग को सक्षम करता है। इसे स्थापित करना आसान है, और आप जो चाहते हैं वह कर सकते हैं (मैंने इसे कभी कोशिश नहीं की है)।


बहुत दिलचस्प +1 :-) मैं आपके सभी लिंक को पढ़ / परीक्षण कर रहा हूं ... मैं आपको बाद में अधिक प्रतिक्रिया दूंगा। धन्यवाद। चीयर्स
ओलिब्रे सेप

1
«आसान मोड» की कुंजी का Emacs के साथ कोई लेना-देना नहीं है। लेकिन «vimacs» एक दिलचस्प बात लगती है। मैंने अभी स्थापित किया है, और पुराना होने के बावजूद यह अभी भी काम करता है।
हाय-एंजेल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.