Jak mogę zmienić pozycję / kolejność mojej bieżącej karty Vim
? Na przykład, jeśli chcę zmienić pozycję mojej bieżącej karty na pierwszą?
200
Możesz przenieść kartę za :tabm
pomocą względnych lub bezwzględnych argumentów o indeksie zerowym.
absolutny:
:tabm i
krewny:
:tabm +i
:tabm -i
To stosunkowo nowa funkcja. Więc jeśli to nie działa spróbuj zaktualizować vima.
:tabm
akceptuje względne argumenty w vimie 7.3.Masz na myśli przesunięcie bieżącej karty? Działa to przy użyciu tabmove.
Mam dwa powiązania klawiszy, które przesuwają moją bieżącą kartę o jeden w lewo lub jeden w prawo. Bardzo przydatne!
EDYCJA: Oto moje makro VIM. Nie jestem wielkim programistą ViM , więc może lepiej to zrobić, ale tak to działa dla mnie:
Następnie możesz powiązać klucze, na przykład w następujący sposób
.vimrc
:Teraz możesz przenieść bieżącą kartę, naciskając F9 lub F10.
źródło
Szukałem tego samego i po kilku postach znalazłem prostszy sposób niż funkcję:
Tabpagenr () zwraca rzeczywiste położenie zakładki i tabmove wykorzystuje indeksów.
Odwzorowałem prawą stronę na Ctrl + L, a lewą na Ctrl + H:
źródło
:execute "tabmove" tabpagenr() + 1 <CR>
do przejścia w prawo. Dla MacVim 8.0.1420 (144) .Przenieś bieżącą kartę do n- tej pozycji
Gdzie
n
jest liczba oznaczająca pozycję (od zera)Przenieś karty w lewo / w prawo
Myślę, że lepszym rozwiązaniem jest przesunięcie tabulatora w lewo lub w prawo do jego aktualnej pozycji zamiast obliczania wartości liczbowej nowej pozycji, w której chcesz.
Dzięki powyższym mapom klawiszy możesz przenieść bieżącą kartę:
źródło
+tabmove
itabmove+
? Czy pozycja ma znaczenie?Oprócz drobnych sugestii w innych odpowiedziach, możesz także przeciągać tabulatory za pomocą myszy, aby je przenosić, jeśli masz włączoną obsługę myszy.
Jest to domyślnie włączone w MacVim i innych implementacjach GUI vim, bez względu na to, czy korzystasz z kart widgetów GUI, czy kart stylów terminali w trybie GUI.
Działa również w trybie VIM w czystym tty, jeśli masz
set mouse=a
i masz odpowiedni terminal (xterm i większość jego emulatorów, takich jak gnome-terminal, Terminal.app, iTerm2 i PuTTY / KiTTY, aby nazwać widok). Pamiętaj, że kliknięcia myszą poza kolumną 222 również wymagająset ttymouse=sgr
; zobacz w Vimie, dlaczego moja mysz nie działa poza 220. kolumną? na tle tego.Napisałem wtyczkę o nazwie vim-tabber, która zapewnia pewne dodatkowe funkcje do zamiany kart, przesuwania ich i dodawania możliwości wbudowanych poleceń manipulacji tabulatorami, pozostając w dużej mierze kompatybilnymi z wbudowanymi. Nawet jeśli zdecydujesz się nie używać wtyczki, w pliku README znajduje się kilka ogólnych informacji o użyciu kart.
źródło
Z jakiegoś powodu funkcja przestała działać. Podejrzewam konflikt z vim-ctrlspace . Niezależnie od tego, matematyka w odpowiedzi na funkcję jest niepotrzebna, ponieważ Vim może przesuwać tabulatory w lewo i prawo dzięki wbudowanym funkcjom. Musimy po prostu poradzić sobie z opakowaniem , ponieważ Vim nie jest przyjazny dla użytkownika.
źródło
-tabm
I+tabm
moim vim 7.4 nie prawidłowo przenieść karty. Również mój:help tabm
nie wymienia tego jako prawidłowej składni. Więc otrzymuje ostatnielse execute ...endif
zelseif a:direction == 1 execute "tabmove" s:current_tab else execute "tabmove" s:current_tab - 2 endif
użyciem Pablo odpowiedźtabmove
i znak-
/+
wexecute
linii.Oto moje makro, używając względnych argumentów z odpowiedzi @ maybeshewill:
Obsługuje opakowanie owijające.
źródło