2009-11-24 10 views
6

W vimie, gdy uderzę :wq, prawie zawsze jest to wypadek, który wystąpił podczas próby wprowadzenia :w. Chciałbym wyłączyć :wq.Jak wyłączyć wbudowane polecenie w vim

Najbliższe znalezione jest cmap, ale ma dziwne zachowanie. Jeśli zrobię coś takiego, jak

Nie mogę już wprowadzić ; po prostu zmienia kolejność klawiszy wq na w w trybie poleceń. Teraz nie mogę, na przykład, wprowadzić polecenia wyszukiwania/zamiany w ciągu znaków zawierającym wq.

Chciałbym podać alias dokładnie polecenie :wq do :w lub no-op. Czy jest jakiś sposób na zrobienie tego?

EDIT: wyjaśnić dlaczego :cmap nie jest opcja dla mnie

Odpowiedz

0

Wygląda na to najlepszym rozwiązaniem jest po prostu przyzwyczaić się do :cmap zachowanie. W rzadkim przypadku chcę wprowadzić sekwencję klawiatury wq Mogę po prostu nacisnąć wq, odczekać chwilę, a następnie ponownie nacisnąć q. Znalazłem this possible solution, ale jest to zbyt skomplikowane dla moich upodobań.

2

Lepszym rozwiązaniem może być:

:cabbrev wq w 

Ale nie jestem pewien, dlaczego cmap nie działa jako wykluczone. Właściwie miałem odwzorowany jeden klawisze funkcyjne, aby zapisać swoje pliki:

:map <F2> :w<CR> 
:nmap <F2> <ESC>:w<CR>i 

UPDATE: literówki poprawione w pierwszym poleceniu.

Update2: możliwe obejście:

:cabbrev wq<CR> w 

HTH

+0

Czy możesz wyjaśnić: cabbrew? –

+2

Myślę, że powinno to być ': cabbrev'. ': cabbrev wq w' zmieni się wq na w po naciśnięciu spacji lub enter, więc zrobi': wq' do ': w'. Zobacz ': help: cabbrev' i': help: ab', aby uzyskać więcej informacji. – DrAl

+0

Przepraszam, myślę, że nie byłem wystarczająco jasny w moim pytaniu. Jeśli to zrobisz: cmap i wygląda na to: cabbrew, oznacza to, że sekwencja klawiszy "wq" w trybie poleceń jest mapowana na coś innego niż "wq". Więc nie możesz na przykład wyszukać/zamień na łańcuch zawierający "wq". Wszystko, co chciałbym zrobić, to uczynić tak, jeśli wprowadzę dokładną komendę: wq, jest aliasing na "w" lub no-op. – user85509

Powiązane problemy