2013-02-27 16 views
5

Próbuję odwzorować mój klawisz spacji, aby Vim wszedł w tryb wstawiania z trybu normalnego.Klawisz obszaru mapy, aby przejść do trybu wstawiania

Powodem, dla którego chcę to zrobić, jest to, że czasami zapominam, że jestem w normalnym trybie i zaczynam pisać tak, jakbym był w trybie wstawiania. Kiedy naciskasz klawisz spacji pomiędzy lub nawet na początku strony, przesuwa się w dół i coś lub inne typy z powodu możliwości naciśnięcia w tym, co właśnie wpisałem.

Aby tego uniknąć, chcę zamapować mój klawisz spacji, aby włączyć tryb normalny po naciśnięciu klawisza i, aby to zrobić.

Próbowałem następujące:

map space :i 
map <space> :i 

Ale to nie robi wydaje się działać.

Odpowiedz

8

Ty mieszania trybów w swoim mapowania; to ważna koncepcja w Vimie. Choć istnieje :startinsert komenda Ex w vim (gdzie mapowanie rzeczywiście zacząć z :), to bardziej proste używać normalny trybi polecenie:

:nnoremap <Space> i 

chcesz tylko trybie normalnym mapowanie tutaj , więc :nmap, a nie :map; cp. :help map-modes. Zobacz, :help key-notation, dlaczego jest napisane <Space>.

Wreszcie: You should always use :noremap; sprawia, że ​​mapowanie jest odporne na ponowne mapowanie i rekursję.

6

dziwne wymaganie, ale masz swój powód. :)

wypróbować tę linię na:

nnoremap <space> i 
+0

To dziwne, ale ['' '" normalne "" Normalne "mapowanie] (http://vimdoc.sourceforge.net/htmldoc/motion.html# ) jest dokładnie takie samo jak [' l' 's] (http://vimdoc.sourceforge.net/htmldoc/motion.html#l), więc przynajmniej nie blokujesz żadnych standardowych funkcji. Widziałem dużo gorzej :) – Johnsyweb

+0

@Kent: :) Dzięki. –

+0

@John: Dzięki :) Z pewnością o tym pomyślę, jeśli przestrzeń stworzy jakiś problem. –

Powiązane problemy