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ę!



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)


: 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.


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,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.