Odznaczanie poleceń w Vimie

16

Więc szukałem sposobu wcięcia wielu linii w vimie, a ktoś zaproponował zrobienie tego

:map <Tab> <

i wszystko, co robi, to wstawianie <znaku za każdym razem, gdy naciskam klawisz Tab (Jak go nie widziałem). Próbowałem to zrobić :map <Tab> <Tab>i :map <Tab> \tprzywrócić regularne wcięcia, ale bez powodzenia. Jestem nowy w vimmapowaniu klawiszy, więc naprawdę doceniłbym pomoc. vimByłoby też świetnie, gdyby ktoś mógł wskazać sposób wcięcia wielu linii .

Z góry dziękuję!

Grigor
źródło
2
:unmap vim.wikia.com/wiki/Mapping_keys_in_Vim_-_Tutorial_(Part_1) Google jest twoim przyjacielem.
Adam Liss,
1
@AdamLiss Google jest moim przyjacielem od tak dawna.
Grigor

Odpowiedzi:

26

:unmap <Tab> aby przywrócić domyślne zachowanie.

użyj :x>>do wcięcia x liczby linii (od miejsca, w którym znajduje się kursor)

ennuikiller
źródło
: unmap <Tab> nie działa. Z jakiegoś powodu: /
Grigor
to działa dla mnie.
doubleDown
6
@ Grigor W swoim pytaniu twierdziłeś, że użyłeś map <Tab> <. Cofnięcie tego poprawnego polecenia jest wprawdzie unmap <Tab>, ale następny tekst („wystarczy wstawić <znak”) oznacza, że ​​pierwotne twierdzenie jest fałszywe . Nie ma możliwości wstawienia <takiego mapowania, ale byłoby to prawdą, gdybyś napisał imap <Tab> <. To polecenie jest cofane za pomocą iunmap <Tab>(zwróć uwagę na ioba polecenia). Aby uzyskać poprawne odpowiedzi, musisz być precyzyjny.
ZyX
Uwaga na wypadek, gdyby ktoś miał taką samą walkę jak ja, jeśli oryginalne mapowanie jest buforowane lokalnie, wówczas odwzorowanie musi być również:iunmap <buffer> <Tab>
cristoper 10.10.18
0

Rozwiązało to problem polegający na cofnięciu tabulacji wstecznej.

:imap <Tab> <C-t>
:imap <S-Tab> <C-d>

Naciśnięcie Tabwcięcia kodu powoduje Shift-Tabcofnięcie wcięcia kodu.

Grigor
źródło
3
możesz także użyć :iunmap <Tab>. Jeśli <Tab>jest mapowany przez :imap, musisz użyć go, :iunmapaby go odwzorować . :unmap <Tab>nie działa w tym przypadku.
Hai Feng Kao,