Ultimamente ho ridotto drasticamente il numero di plugin che sto usando, quindi cerco risposte usando solo le funzionalità integrate di Vim.
Ho notato un difetto nel mio flusso di lavoro quando sto modificando molti buffer: sono su un buffer e voglio passare a un altro dei quali non ricordo il nome e che non è il buffer alternativo . Quindi l'uso :b#non è possibile e l'utilizzo del completamento con il comando :bnon è conveniente neanche.
Per fare ciò stavo facendo quanto segue:
- Primo utilizzo
:buffersper ottenere l'elenco dei buffer aperti - Ricorda il numero del buffer che voglio usare
- Premere Enterper chiudere l'elenco dei buffer
- Utilizzare
:bXconXil numero del buffer da utilizzare.
Questo flusso di lavoro mi è sembrato piuttosto pesante, quindi ho aggiunto le seguenti righe al mio
.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
Questo mi dà un comando :B(e una mappatura) che chiama la funzione :buffersaspetta un input e infine chiama :bseguito dall'input.
Funziona bene ma sono sorpreso di dover sviluppare una tale funzione: di solito Vim ha un flusso di lavoro predefinito piuttosto efficiente, quindi mi chiedo se c'è un modo migliore per passare a un buffer di cui non so nulla tranne che è già stato aperto nella mia sessione di editing.
:b#non è quello che sto cercando, ma sì, è interessante il fatto che è possibile salvare una sequenza di tasti digitando direttamente :bsenza premere enterprima. (In effetti è forse troppo leggero per essere una risposta, ma vale la pena commentare :-))
#personaggio come sostituto di un numero (buffer), piuttosto che il #carattere letterale .



:lsseguito da:b#(non è necessario il ritorno di successo o la fuga prima, può andare direttamente dalla lista dei buffer di 'ls'.) (Distacco come commento perché non sembra sufficientemente rilevante per una risposta? Anche se mi chiedo mi manca qualcosa e rispondo alla domanda sbagliata.)