In letzter Zeit habe ich die Anzahl der von mir verwendeten Plugins drastisch reduziert, sodass ich nur mit den integrierten Vim-Funktionen nach Antworten suche.
Ich habe einen Fehler in meinem Workflow festgestellt, als ich viele Puffer bearbeite: Ich bin in einem Puffer und möchte zu einem anderen wechseln, von dem ich mich nicht an den Namen erinnere und bei dem es sich nicht um den alternativen Puffer handelt . Die Verwendung :b#
ist also nicht möglich und die Vervollständigung mit dem Befehl :b
ist auch nicht bequem.
Dazu habe ich folgendes gemacht:
- Verwenden Sie zuerst
:buffers
, um die Liste der offenen Puffer abzurufen - Merke dir die Nummer des Puffers, den ich verwenden möchte
- Drücken Sie Enter, um die Liste der Puffer zu schließen
- Verwenden Sie
:bX
mitX
der Nummer des zu verwendenden Puffers.
Dieser Workflow schien mir ziemlich schwer zu sein, daher habe ich die folgenden Zeilen zu meinem hinzugefügt
.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
Dies gibt mir einen Befehl :B
(und ein Mapping), der die Funktion :buffers
auf eine Eingabe wartet und schließlich :b
gefolgt von der Eingabe aufruft .
Es funktioniert gut, aber ich bin überrascht, dass ich eine solche Funktion entwickeln musste: Normalerweise verfügt Vim über einen recht effizienten Standardworkflow, weshalb ich mich frage, ob es eine bessere Möglichkeit gibt, zu einem Puffer zu wechseln, von dem ich nichts Außergewöhnliches kenne dass es in meiner Editiersitzung schon geöffnet wurde.
:b#
ist nicht das, wonach ich suche, aber die Tatsache, dass Sie einen Tastenanschlag speichern können, indem Sie direkt eingeben, :b
ohne enter
vorher zu drücken, ist interessant. (In der Tat ist das vielleicht zu leicht, um eine Antwort zu geben, aber es war einen Kommentar wert :-))
#
Zeichen eher als Ersatz für eine (Puffer-) Zahl als als das wörtliche #
Zeichen.
:ls
gefolgt von:b#
(muss nicht zuerst Return oder Escape drücken, kann direkt aus der Pufferliste in 'ls' gehen.) (Als Kommentar posten, weil es nicht substanziell genug zu sein scheint, um eine Antwort zu sein? Ich frage mich auch, ob ich fehle etwas und beantworte die falsche