Ctrl-n
büyük bir hayranıyım değilim, Ctrl-Space
kullanabilmek için ister misiniz? Bunu nasıl yapabileceğime dair bir fikrin var mı?Vim'de otomatik tamamlamada kullanılan tuş bağını nasıl değiştirebilirim?
cevap
Eğer, diyelim ki, Ctrl-E, bu olurdu eşlemek isteseydi gibi bir şey:
inoremap <C-E> <C-N>
sorun Ctrl ile - Uzay en terminalleri sadece onu görecek olmasıdır uzay olarak. X içinde bazı terminal programını kullandığınızı varsayacağım; Farklı bir şey kullanıyorsanız, ilgili ikameleri kendiniz sağlamanız gerekir.
Bash'in taleb normalde sahiptir Ctrl - "literal olarak bir sonraki tuşa tedavi" V eşlenmiş Ctrl - V ve ardından Bash komut satırında Home düğmesine basmak, satırın başlangıcına gitmek yerine, komut satırında ^[[H
veya benzeri bir şey ekler. Sonra Ctrl V - - SpaceCTRL basmayı deneyin. Muhtemelen bir boşluk göreceksin. Uzay - Bu durumda
Bu değişikliği tek başına xmodmap ile yapabileceğinizi sanmıyorum; muhtemelen alt düzey/usr/share/X11/xkb/* hacklemesini yapmanız gerekecektir. Bu karmaşık ve ilk etapta X'i kullanıp kullanmadığınızı bile bilmiyorum, o yüzden orada bırakacağım.
Urxvt gibi bazı terminaller kendi tuşlamalarınızı belirtmenize izin verir. Uzay - bir uzay ve size bastığınızda bile size çıkışa urxvt söyleyebilirdi Yani "\ 033I_TYPED_CONTROL_SPACE_DAMMIT" X yapılandırmak için özel bir şey yapmadan bir Control Uzay bulunuyor Ctrl zaman Firefox gibi onlar da söyleyebilir. Ve sonra vim'e adresini ile <C-N>
arasında eşleştirebileceğini söyleyebilirsiniz.
DÜZENLEME: Ctrl-Space'in \0
çıktısını (klavyemde başka bir yerde yeniden eşleştirdiklerini) unutmuştum. Bu durumda, yukarıda anlattığım tüm karmaşıklık gereksizdir. Söylediklerim, daha egzotik bir haritalamayı kullanmak isteyen birine, Ctrl -konu veya Alt - Space gibi alanlara uygulanacaktır.
Yine de, birileri burada neler olup bittiğini tarif etmek için çaba sarf etti. Diğer cevaplar, çözümlerinin neden işe yaradığına dair herhangi bir açıklamaya sahip değildir :-) – JepZ
Ctrl + Space eşleştirmesini de seviyorum.Senin durumunda
" Remap code completion to Ctrl+Space {{{2
inoremap <Nul> <C-x><C-o>
İstediğiniz:
inoremap <Nul> <C-n>
Eğer gvim'deyseniz,
'<[email protected]>' Bazı terminallerde C-Space için kullanılır (PuTTY sanırım), tahmin ediyorum
if has("gui_running")
" C-Space seems to work under gVim on both Linux and win32
inoremap <C-Space> <C-n>
else " no gui
if has("unix")
inoremap <Nul> <C-n>
else
" I have no idea of the name of Ctrl-Space elsewhere
endif
endif
ile aynıdır. Not: '' ('gui_running') 'karakterine sahip olmanız gerekebilir. ("gui") 'basitçe, vim 'gui' seçeneği ile derlenmişse döndürür, şu an kullandığınız değil. – Dogbert
Doğrudan unix'e bağlı değil. '
Ne ortam? (Windows? Unix? Konsol vim veya gvim? Ne terminali?) –