Akhir-akhir ini saya secara drastis mengurangi jumlah plugin yang saya gunakan jadi saya mencari jawaban hanya menggunakan fitur Vim bawaan.
Saya telah memperhatikan kekurangan dalam alur kerja saya ketika saya mengedit banyak buffer: Saya di buffer dan saya ingin beralih ke buffer lain yang saya tidak ingat namanya dan yang bukan buffer alternatif . Jadi :b#
tidak mungkin menggunakan dan menggunakan penyelesaian dengan perintah :b
juga tidak nyaman.
Untuk melakukan itu saya melakukan hal berikut:
- Pertama digunakan
:buffers
untuk mendapatkan daftar buffer terbuka - Ingat jumlah buffer yang ingin saya gunakan
- Tekan Enteruntuk menutup daftar buffer
- Gunakan
:bX
denganX
jumlah buffer yang digunakan.
Alur kerja ini sepertinya cukup berat bagi saya jadi saya menambahkan baris berikut ke saya
.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
Ini memberi saya perintah :B
(dan pemetaan) yang memanggil fungsi :buffers
menunggu input dan akhirnya panggilan :b
diikuti oleh input.
Ini bekerja dengan baik tetapi saya terkejut bahwa saya harus mengembangkan fungsi seperti itu: biasanya Vim memiliki alur kerja default yang cukup efisien jadi saya bertanya-tanya apakah ada cara yang lebih baik untuk beralih ke buffer yang saya tidak tahu apa-apa kecuali bahwa itu sudah dibuka di sesi pengeditan saya.
:b#
bukan yang saya cari tapi ya fakta bahwa Anda dapat menyimpan keystroke dengan memasukkan langsung :b
tanpa menekan enter
sebelumnya itu menarik. (Memang itu mungkin terlalu ringan untuk menjadi jawaban, tapi itu layak untuk dikomentari :-))
#
karakter sebagai penopang untuk nomor (penyangga), bukan #
karakter literal .
:ls
diikuti oleh:b#
(tidak perlu menekan balik atau melarikan diri dulu, dapat langsung dari daftar buffer di 'ls'.) (Posting sebagai komentar karena sepertinya tidak cukup substansial untuk menjadi jawaban? Juga bertanya-tanya apakah saya Saya kehilangan sesuatu dan menjawab pertanyaan yang salah.)