Jika saya membuka vim dengan beberapa file pada baris perintah, misalnya vim debug.log*
yang memuat debug.log
, debug.log.1
dan debug.log.2
, bisakah saya menavigasi di antara mereka, menetapkannya ke beberapa jendela ( :split
/ :vsplit
) atau semacamnya?
Satu-satunya jalan pintas yang saya tahu untuk mode operasi ini adalah :n
, yang memuat file berikutnya dalam daftar. Apa lagi yang bisa saya lakukan dalam mode operasi multi-file ini? (atau subjek bantuan mana yang mencakup hal itu?)
multiple-files
load
SF.
sumber
sumber
:previous
(atau:prev
) adalah kebalikan dari:n
, dan mengembalikan file.Jawaban:
Topik bantuan yang paling relevan adalah
:ls
, juga dikenal sebagai:files
atau:buffers
.Dalam
vim debug.log*
contoh Anda , jika Anda memberi:ls
perintah, Anda akan melihat:... menunjukkan bahwa yang pertama adalah buffer aktif.
Untuk membuka
debug.log.2
di jendela saat ini, berikan perintah:b 3
atau:b debug.log.2
untuk menampilkan buffer 3.Untuk membagi jendela dan membuka buffer 2 di dalamnya, berikan
:sb 2
perintah. Versi vertikal-split itu adalah:vert sb 2
.Ada banyak varian
:b
perintah; telusuri topik bantuan yang dikutip di sini untuk merasakannya.Selain itu, Anda dapat meminta
vim -o debug.log*
untuk membuka semua file, masing-masing di split sendiri, atauvim -O debug.log*
untuk membukanya masing-masing dalam split vertikal.sumber
Selain fungsionalitas vim mentah yang disebutkan oleh 200_success, ekosistem Vim penuh dengan plugin untuk memberikan fungsionalitas tambahan, seperti:
Namun, sebelum Anda pergi dan mulai menggunakan plugin, yang terbaik adalah memahami sepenuhnya buffer dan windows di vim.
sumber
Anda juga dapat membuka vim dengan parameter berbeda.
Buka file di tab:
Membuka file dalam pemisahan vertikal:
Ada plugin keren dan cukup kuat yang disebut CtrlSpace:
https://github.com/szw/vim-ctrlspace
Ini sangat berguna jika Anda perlu bekerja dengan banyak file. Cukup Anda bisa membayangkan ctrl-space sebagai daftar buffer sendiri untuk setiap tab. Ini memberikan cara yang sangat mudah untuk menavigasi antara file, seperti yang dinyatakan penulis:
sumber
Jika Anda ingin membuka file tertentu tanpa harus melalui
:ls
, Anda dapat menggunakan salah satu dari berikut ini::vs filename
membuka file dalam pemisahan vertikal:sp filename
melakukan hal yang sama, tetapi dalam pemisahan horizontal:tabe filename
terbuka di tab baruPerlu diketahui juga, bahwa jika Anda tidak menentukan nama file, Anda akan membuka split / tab baru dari file saat ini, yang dapat berguna untuk file yang panjang.
sumber
:t
adalah perintah salin. Untuk:tabedit
Anda memerlukan setidaknya:tabe
.Ada beberapa cara pintas yang berguna untuk menavigasi banyak file:
CTRL-^
(di manaN
nomor buffer) untuk melompat ke file yang diedit sebelumnya.N CTRL-^
(di manaN
nomor buffer) untuk melompat ke buffer tertentu.Sebagai contoh:
Ini setara dengan
:buffer N
.Gunakan
:Ex
/:Sex
/:Vex
untuk menavigasi direktori saat ini.Gunakan
:tabs
sebagai gantinya (vim -p
) dengan beberapa pintasan khusus di Anda.vimrc
seperti:Gunakan
:ba
/:vert ba
untuk membagi, lompat ke buffer yang dipilih melalui Control+w, w/ W, lalu jadikan itu jendela saat ini (:on
).sumber