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 :bjuga tidak nyaman.
Untuk melakukan itu saya melakukan hal berikut:
- Pertama digunakan
:buffersuntuk mendapatkan daftar buffer terbuka - Ingat jumlah buffer yang ingin saya gunakan
- Tekan Enteruntuk menutup daftar buffer
- Gunakan
:bXdenganXjumlah 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 :buffersmenunggu input dan akhirnya panggilan :bdiikuti 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 :btanpa menekan entersebelumnya itu menarik. (Memang itu mungkin terlalu ringan untuk menjadi jawaban, tapi itu layak untuk dikomentari :-))
#karakter sebagai penopang untuk nomor (penyangga), bukan #karakter literal .



:lsdiikuti 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.)