2011-08-03 18 views
43

Uzun zamandır kullanıcı Vim'i öğreniyorum. Emacs, diğer arabelleğindeki gibi aynı gezinme klavye kısayollarını kullanarak mini tamponda (C-x C-s gibi komutlar yayınladığım) gezinmeme izin verir. Örneğin, mini tamponda bile C-f kullanarak bir karakter ileri gidebilirim. Ok tuşlarını da kullanabilirim ama çok uzaklar.Vim'in Komut Modunda Gezinme

Vim komut modunda gezinmek için herhangi bir klavye kısayolu var mı (:), ok tuşlarını kullanmadan - emacs C-f, C-b? Teşekkürler.

+0

Olası kopyası [Vim komut satırında nasıl dolaşabilirim?] (Http://stackoverflow.com/questions/2075569/how-can-i-move-around-in-the-vim-command- satır) –

cevap

61

yılında, komut satırı penceresi açmak için q: kullanabilirsiniz sahip Elinizde herhangi bir Vim düzenleme gücünüz var.

+1

Hey hey, daha önce hiç kullanmadım. –

+2

Vim hakkında bir şey öğrendiğimde, o zaman yeni ve şaşırtıcı bir özelliği öğrenmeyi asla bırakmazsınız ;-) – Boldewyn

+20

Ayrıca zaten komut satırındaysanız ve yazdıklarınızı saklamak istiyorsanız komut satırı penceresi, ctrl-F yazın. Böylece ": ", "q:" ile aynı şeyi gerçekleştirmelidir. Çalışmıyorsa, 'uyumlu' ayarlanmış veya 'cedit' seçeneğiyle eşlenmiş başka bir anahtarınız var. Bakınız: yardım q: daha fazla bilgi için :) – bhh1988

7

Varsayılan tuş bağlamaları ile vim, komut satırı düzenlemesinin ok-olmayan bir şekilde gezinmesini sunmaz. Ancak, alternatif anahtar bağlamaları ayarlamak için :cnoremap komutunun nasıl kullanılacağı örneği için bkz. :help cmdline-editing.

27

Vim yardımı gelen bazıları:

CTRL-B or <Home> 
     cursor to beginning of command-line 
CTRL-E or <End> 
     cursor to end of command-line 
CTRL-H    
<BS>  Delete the character in front of the cursor (see |:fixdel| if 
     your <BS> key does not do what you want). 
<Del>  Delete the character under the cursor (at end of line: 
     character before the cursor). 
CTRL-W  Delete the |word| before the cursor. This depends on the 
     'iskeyword' option. 
CTRL-U  Remove all characters between the cursor position and 
     the beginning of the line. 
+0

Tam olarak aradığım şey, teşekkürler Jeet! –

19

Bunları Greg Hewgill cevabı ekleme benim .vimrc

cnoremap <C-a> <Home> 
cnoremap <C-e> <End> 
cnoremap <C-p> <Up> 
cnoremap <C-n> <Down> 
cnoremap <C-b> <Left> 
cnoremap <C-f> <Right> 
cnoremap <M-b> <S-Left> 
cnoremap <M-f> <S-Right> 
+0

Bu beni çok mutlu ediyor. Sorunlu kullanıcılar için "" konusuna bakın. Http://stackoverflow.com/a/27206531/1213041 – cdosborn