Ostatnio drastycznie zmniejszam liczbę wtyczek, których używam, więc szukam odpowiedzi za pomocą tylko wbudowanych funkcji Vima.
Podczas edytowania wielu buforów zauważyłem błąd w przepływie pracy: korzystam z bufora i chcę przejść na inny, z którego nie pamiętam nazwy i który nie jest alternatywnym buforem . Tak więc używanie :b#
nie jest możliwe, a używanie uzupełniania za pomocą polecenia również :b
nie jest wygodne.
Aby to zrobić, wykonałem następujące czynności:
- Najpierw użyj,
:buffers
aby uzyskać listę otwartych buforów - Zapamiętaj numer bufora, którego chcę użyć
- Naciśnij, Enteraby zamknąć listę buforów
- Użyj
:bX
zX
numerem używanego bufora.
Ten przepływ pracy wydawał mi się dość ciężki, dlatego dodałem następujące wiersze do mojego
.vimrc
:
" Improve the navigation in the buffers
nnoremap <Leader><S-b> :B<CR>
command! B call Buffers()
function! Buffers()
execute "buffers"
let buffer=input("Enter a buffer:")
execute "b" . buffer
endfunction
To daje mi polecenie :B
(i mapowanie), które wywołują funkcję, :buffers
czekają na dane wejściowe i na koniec wywołują :b
dane wejściowe.
Działa dobrze, ale jestem zaskoczony, że musiałem opracować taką funkcję: zwykle Vim ma dość wydajny domyślny przepływ pracy, więc zastanawiam się, czy istnieje lepszy sposób na przejście do bufora, o którym nie wiem nic poza wyjątkiem że został już otwarty w mojej sesji edytorskiej.
:b#
nie szukam tego, ale tak, fakt, że można zapisać naciśnięcie klawisza, wprowadzając bezpośrednio :b
bez naciskania enter
wcześniej, jest interesujący. (Rzeczywiście to może być zbyt lekkie, aby być odpowiedzią, ale warto było skomentować :-))
#
postać jako zastępstwo dla liczby (buforowej), a nie dosłownie #
.
:ls
nim następuje:b#
(nie muszę najpierw naciskać Return ani Escape, mogę przejść bezpośrednio z listy buforów w „ls”). (Publikowanie jako komentarz, ponieważ nie wydaje się wystarczająco istotne, aby być odpowiedzią? Zastanawiam się również, czy ja coś mi brakuje i odpowiadam na złe pytanie.)