2011-08-03 15 views
43

Jestem od dawna użytkownikiem emacsa uczącego się Vima. Emacs pozwala mi nawigować w mini-buforze (gdzie wydaje polecenia takie jak C-x C-y) za pomocą tych samych skrótów klawiaturowych, jak w każdym innym buforze. Na przykład mogę poruszać się do przodu o jeden znak przy użyciu C-f, nawet gdy znajduje się on w mini-buforze. Mógłbym też użyć klawiszy strzałek, ale są one zbyt daleko.Poruszanie się w trybie poleceń Vima

Czy istnieje skrót klawiszowy do nawigacji w trybie komend Vima (:), bez użycia klawiszy strzałek - odpowiednik emacs C-f, C-b? Dzięki.

+0

Możliwy duplikat [Jak mogę się poruszać w linii poleceń Vima?] (Http://stackoverflow.com/questions/2075569/how-can-i-move-around-in-the-vim-command- line) –

Odpowiedz

61

dodając do odpowiedzi Greg Hewgill, można użyć q: aby otworzyć okno wiersza polecenia, gdzie masz w ręku moc edycji Vima.

+1

Hej fajne, nigdy wcześniej tego nie używałem. –

+2

Kiedy nauczyłem się jednej rzeczy o Vimie, to nigdy nie przestawaj się uczyć jakiejś nowej i niesamowitej funkcji ;-) – Boldewyn

+20

Także, jeśli jesteś już w linii poleceń i chcesz zachować to, co napisałeś i nadal wchodzisz do w wierszu polecenia, wpisz ctrl-F. Zatem ": " powinno osiągnąć to samo co "q:". Jeśli to nie zadziała, to ustawiona jest opcja "kompatybilna" lub masz inny klucz zmapowany do opcji "cedit". Zobacz: help q: po więcej szczegółów :) – bhh1988

7

Przy domyślnych powiązaniach klawiszy vim nie oferuje nawigacji bez klawiszy strzałek podczas edycji wiersza poleceń. Jednak, aby zapoznać się z przykładem użycia polecenia :cnoremap do skonfigurowania alternatywnych powiązań klawiszy, zobacz artykuł :help cmdline-editing.

27

Niektóre z pomocą vim:

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

Dokładnie tego, czego szukałem, dzięki Jeet! –

19

mam je w moim .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

To mnie cieszy. Dla użytkowników z problemami wiążę '' zobacz http://stackoverflow.com/a/27206531/1213041 – cdosborn

Powiązane problemy