vim emacs komutlarıyla özelleştirildi (yalnızca ekleme modu)


10

Bir emacskullanıcıydım ve geçiş yapmam gerekiyor vim. Ancak vimekleme modunda bazı temel emacs komutlarını özledim :

  1. C-A
  2. C-E
  3. C-K
  4. C-Y
  5. C-x C-s
  6. ... ve diğerleri

EscapeAşağıdaki tuşlardan bazılarına basıp sonra da tuşuna basabileceğimi biliyorum i:

  1. ^
  2. $
  3. d$
  4. p
  5. :w [Giriş]
  6. ...

Ancak vimekleme modunda kalmak ve Escape/ ituşlarına basmaktan kaçınmak istiyorum .

Web'de, ben için özelleştirmeleri bulduk emacs( vi-mode, vip, viper, vimpulse, vim-mode, evil). Ancak henüz tam tersini bulamadı: komutları vimkullanmak için özelleştir emacs...

Yalnızca ekleme kipindekiemacs komutlarla ilgileniyorum . Tıpkı bazı temel komutlar, komutları: , , , , ... (evet varsayılan değildir de böyle komut ama).vim bashC-AC-EC-KC-YC-UC-Uemacs

Yanıtlar:


7

Bu soruyu dört yıl sonra yanıtlıyorum çünkü verilen cevap orijinal soruyu tamamen ele almayan kısmi bir çözüm.

Olibre ile aynı arzuya sahibim ve tam bir çözüm bulmak istedim. Farklı bir perspektiften geliyorum - bash'da Emacs satır düzenlemesine alışkınım - ama sorun aynı. Bunu Vim insert moduna taşımak istiyorum (sadece).

Aşağıda, olibre'nin sorduğu orijinal sorudaki tüm tuş bağlama istekleri ve birkaç ekstra ifade ele alınmaktadır:

" 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

Bu noktada işe yarayamayacağım tek bağlamalar <Alt-B>ve <Alt-F>tüm kelimeleri atlayacak. Her ne zaman ben bağlama <Esc>, <Alt>veya <Meta>kombinasyonlar, GVIM (Windows v7.4) için sunulmaktadır aksanlı karakterleri çıkarır. Bu sorunla ilgili bir çözümünüz varsa, lütfen bu yanıtı düzenlemekten çekinmeyin. Alt kombinasyonlarını , sadece özel karakterleri kullanmak için başka bir gönderinin önerisine dayanarak çalışmak için aldım . Onları yukarıya ekledim.

Düzenle

- (düzenleme orijinal yanıt posteri ile değildir) -

Neovim ve Windows 10 altında aşağıdakileri kullandım. Diğer işletim sistemlerinde "alt" ı "M" olarak değiştirmeniz gerekebilir, çünkü "alt" başka bir yerde "meta" olabilir. Onunla yeterince oynamadım.

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

Sadece küçük bir öneri: Bence <Esc>padaha iyi olurdu<C-Y>
Yamaneko

Görünüşe göre <C-K>en soldaki imleç çalışmaz - tüm satırı silmeli, ancak Esc>lDailk karakteri geri alınmayacak.
Ying Xiong

7

Ekleme modundaki herhangi bir komutu komutu kullanarak herhangi bir şeyle eşleyebilir :imapveya tuşunu kullanarak yazmayı kaydedebilirsiniz :im. İlk eşlemeniz için şunu yazabilirsiniz (normal modda):

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

Bu, normal moda (kaçış ile) ^gider, sizin için bastırır ve ekleme moduna geri döner. Daha fazla bilgi için yardıma bakın:

:help :imap veya daha kısa: :h :im

Mevcut anahtar eşlemelerin üzerine yazıyor olabileceğinizi unutmayın. .vimrcHer belge için orada olmasını istiyorsanız komutları yapılandırma dosyanıza koyun .


sizin için teşekkürler ipuçları +1 :-) Ama bu tür bir eşleme zaten yapılandırılmış olup olmadığını biliyor musunuz? (örneğin, mevcut anahtar eşlemelerinin üzerine yazmadan). Böyle bir proje / konfigürasyon nerede bulunur? Önceden yapılmış (ve sağlam) bir şeyi kendim yapmaya çalışmaktan (ve önemli bir şeyi kaçırmaktan) tekrar kullanmayı tercih ederim. Şerefe
olibre

Sorumu superuser.com'a sormalı / taşımalıyım ?
olibre

Teşekkürler! (Logic) komutuyla bir komutun var olup olmadığını görebilirsiniz :im <c-a>. 'Eşleme bulunamadı' yazıyorsa, hiçbir şeyin üzerine yazmazsınız. Bundan daha sağlam olacağını sanmıyorum ...
Joker

Humm ... Kodlamam, yapılandırmamı test etmem, sonra hatalarımı düzeltmem ve tekrar yapmam gerek ... Ama tüm vimkomutları bilmiyorum ... Lütfen, :imson argümanların bir listesini nerede bulabileceğimi biliyor musun ? Bilginize, şunlarla birlikte alışkınım bashkomutları: M-backspace, M-F, M-B, M-Dbirileri zaten ve hisse eserleri yaptıysa ... O, güzel olacak öyle değil mi? (böyle bir şey evil) Dolayısıyla onun yeniden verebilecek :imbaşıma (eğilimli hatası) bunu yapmadan tuş eşleme. Ne demek istediğimi anlıyor musun?
olibre

Ne demek istediğinizi tam olarak anlayamayabilirim, ancak standart olmayan tüm anahtar eşlemelerini yazarak bulabilirsiniz :im. Daha üst düzey bir yorum yapmak için: Vim'i her zaman kendi eklentilerinizi, özel modlarınızı veya vimrc dosyanızı yüklemek zorunda kalmadan birden fazla platformda / bilgisayarda kullanmak istiyorsanız, bence yapılacak en iyi şey öğrenmek / kullanmaktır. Mümkün olduğunca standart Vim komutları. Kendim birkaç anahtar eşleştirme yaptım, ancak her zaman standart Vim alternatifini bulmaya çalışın. Ve oldukça hızlı olabilir. Yaptığım bir şey haritasıdır <esc>için ;jkadar kolay nr 1 eşleme yaparak ;jIve 2 nr ;jA.
Joker

6

Tam bir cevap değil, ama Vim'in " kolay mod " ( vim -y) ' un farkında mısınız? Her zaman varsayılan olarak düzenleme modundadır ve istediğiniz her şeyi yapar ve herhangi bir şey yüklemenize veya özelleştirmenize gerek yoktur. CTRL-A, C, V, X, Y vb. Yapar. Anahtar listesinden :

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

Bunun bir çok daha güçlü versiyonu Krem , çok daha fazla tuşları remaps ve aşina olabilir diğer editörlere benzer temel komutları yapar.

Tüm yaygın emacs anahtar eşlemelerini sağlayan eklenti Vimac'lar da vardır . Kurulumu kolaydır ve istediğinizi yapabilir (daha önce hiç denemedim).


Çok ilginç +1 :-) Ben bir okuma / tüm bağlantıları test ... Daha sonra size daha fazla geribildirim verecektir. Teşekkür ederim. Şerefe
olibre

1
«Kolay mod» tuşlarının Emacs tuşlarıyla hiçbir ilgisi yoktur. Ama «vimacs» ilginç bir şey gibi görünüyor. Yeni kurdum ve eski olmasına rağmen hala çalışıyor.
Hi-Angel
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.