Saya berusaha sangat keras untuk mempelajari vim setelah menggunakan TextMate selama beberapa tahun terakhir.
Saya sudah mulai melakukan beberapa navigasi dalam file ke memori tetapi saya kesulitan menavigasi di antara banyak file.
Dalam alur kerja saya, sangat umum bahwa saya membalik di antara beberapa file secara teratur (cukup file sehingga jendela panel terpisah menjadi terlalu kecil).
Saya saat ini menggunakan NERDTree tetapi menemukan menelusuri ke dalam direktori tidak praktis serta terus menggunakan CTRL+ W h/ CTRL+ W luntuk melompat-lompat.
Saya pikir saya akan melakukan lebih baik dengan tab yang saya dapat dengan mudah beralih di antara tetapi mungkin saya perlu menggunakan alur kerja yang berbeda.
Saya juga ingin pintasan "Buka File ..." seperti CMD+ Tdi TextMate. Saya telah menemukan fuzzy_file_finder
tetapi membutuhkan vim untuk dibangun dengan pengikatan Ruby yang bukan merupakan kasus penginstalan asli yang saya kerjakan.
Meskipun saya dapat membangun kembali alasan utama saya ingin beralih ke vim adalah agar saya dapat memiliki satu lingkungan editor yang saya tahu akan dengan mudah bekerja di semua platform.
Pilihan di luar sana sangat banyak, ide apa pun sangat dihargai!
sumber
Jawaban:
Saya tidak menemukan pengeboran ke subdirektori melalui lama biasa
:e
menjadi tidak praktis mengingat konfigurasi yang layak untuk penyelesaian tab.Lihat ke
'wildmenu'
opsi agar Vim menampilkan daftar penyelesaian (nama file) di modeline di atas baris perintah. Anda dapat mengubah'wildmode'
opsi untuk mengonfigurasi lebih lanjut jenis penyelesaian tab yang akan dilakukan Vim.Secara pribadi saya gunakan
:set wildmode=full
.Alur kerja saya seperti ini:
:cd
ke direktori tingkat atas proyek saya.Untuk membuka file
foo/bar/baz
:Skenario paling sederhana: ketik
:e f<tab>b<tab>b<tab><enter>
.Jika ada lebih dari satu file dimulai dengan
b
di salah satu direktori Anda mungkin harus melakukan<left>
atau<right>
atau yang lain<tab>
pada keyboard untuk melompat antara mereka (atau ketik beberapa huruf lagi untuk disambiguate).Skenario terburuk ada file dan direktori yang berbagi nama dan Anda perlu menelusuri ke direktori. Dalam hal ini tab-lengkapi nama direktori dan kemudian ketik
*<tab>
untuk menelusuri .:e
file baru di jendela yang sama.:b <tab>
untuk menelusuri buffer yang sudah terbuka di latar belakang. Jika Anda mengetiknya,:b foo<tab>
itu hanya akan cocok dengan file yang sedang terbuka yang cocokfoo
.Saya juga menggunakan pemetaan ini untuk mempermudah membuka jendela baru dan beralih di antaranya karena itu adalah sesuatu yang sering saya lakukan.
Saya membutuhkan beberapa detik untuk membuka Vim, mengatur beberapa jendela dan membuka beberapa file di dalamnya. Secara pribadi saya tidak pernah menemukan skrip penjelajahan file pihak ketiga mana pun yang sangat berguna.
sumber
Cara mudah untuk menelusuri sistem file adalah dengan perintah:
Saya tidak mengada-ada :)
sumber
:Vex
jika Anda ingin membagi layar secara vertikal, bukan horizontal:Vex
lebih praktis, tetapi:Sex
hanya membuat hari saya menyenangkan.:Se
berfungsi juga (sama untukVe, Te
varian). Tidak perlu membuatnya aneh :):Sex
,:Vex
,:Tex
Dan:Ex
semua perintah yang berguna untuk mantan (ploring) berkas dalam sistem Anda jika Anda ingin menggunakan sesuatu yang berbeda dari:e
(di mana
S/V/T
kependekan dari Split / Vertical / Tab)sumber
Jika Anda belum menemukannya, Anda mungkin ingin melihat:
Ingat juga bahwa Anda dapat memetakan ulang pintasan utama di .vimrc Anda agar tidak terlalu rumit. Saya sering menggunakan jendela terpisah; Saya telah menemukan hal berikut membuat menangani mereka jauh lebih mudah:
sumber
Apakah Anda mengetahui tab Vim? Tidak yakin apakah Anda merujuk ke tab Vim sendiri di sana, atau memasang pin untuk TextMate. Tidak jelas versi Vim apa yang Anda gunakan tetapi memiliki tab setidaknya sejak 7.0 (yang tampaknya dipasang di mana pun saya melihat belakangan ini), dan mereka luar biasa.
:tabe
membuka yang baru (kependekan dari "tab edit", jadi misal:tabe
untuk kosong atau:tabe path/to/file
untuk membuka file di tab baru,) Anda dapat berpindah di antara tab yang berdekatan dengangt
/gT
, dan ada banyak perintah navigasi terkait tab lainnya juga, seperti yang mungkin Anda harapkan dari Vim (:help tabs
)Alur kerja saya untuk proyek besar cenderung melibatkan banyak tab, masing-masing dengan antara 1 dan 3 jendela tergantung pada jenis konteks yang saya butuhkan. Ini bekerja lebih baik jika saya memiliki jendela terminal dua kali lipat karena saya dapat membagi secara vertikal
:vs
, jadi satu tab dapat dengan mudah menampilkan saya 4 file sekaligus dengan banyak ruang untuk masing-masing.Tip terakhir: Saya kadang-kadang menggunakan perintah "switch buffer" (
:sb <partial_buf_name>
) yang agak mirip dengan temuan fuzzy TM, karena ia bekerja cukup baik tetapi hanya untuk buffer yang sudah terbuka. Masih bagus untuk saat saya membuka selusin atau lebih file sekaligus. (NB saya perlu:set switchbuf=usetab
di vimrc saya agar ini berfungsi di seluruh tab, tetapi setelah itu disetel, itu bagus.)sumber
vim-titlecase
sekrup dengan gt / pemetaan gT, tapi ada kerja-sekitar .Saya menemukan LustyExplorer yang terbaik sejauh ini.
Anda dapat membuka file hanya dengan mengetik sebagian dari namanya.
Anda dapat membuka file dari direktori file saat ini, atau saat ini
pwd
, atau dari daftar buffer.Jika Anda membuka file dari daftar buffer, Anda tidak perlu menelusuri pohon direktori, meskipun sayangnya untuk dua mode lainnya, Anda masih harus menavigasi melalui pohon. Hal baiknya adalah Anda tidak harus memulai dari karakter pertama.
Jika Anda memiliki:
dan Anda ingin membukanya
dir_b/file.html
biasanya Anda dapat menemukannya dengan mengetikb<Tab>h
sumber
Mengejutkan melihat bahwa
:find
perintah tersebut tidak disebutkan dalam jawaban mana pun. Saya biasanya bekerja dengan proyek rel di mana saya perlu menelusuri jauh ke dalam hierarki direktori. Jadi untuk fileapplication.css
, letaknya diapp/assets/stylesheets/
semua saya harus ketik is:find applica
lalu tekan tab untuk autocomplete dan enter untuk membuka.sumber
Lihat plugin ctrlp sebagai alternatif dari plugin Command-T . Ini lebih baik daripada ini karena ini adalah skrip Vim 'asli' dan tidak memerlukan Vim untuk dikompilasi dengan ruby (atau dukungan lain) sementara itu berjalan sangat cepat dan tidak mengganggu.
sumber
Jika file yang Anda inginkan sudah dimuat ke buffer (yang kemungkinan besar jika Anda beralih di antara beberapa file secara teratur) maka Anda dapat dengan cepat beralih ke buffer dengan
:b[uffer]
perintah.:b
dapat mengambil nomor buffer sebagai parameter, atau (lebih berguna) string yang cocok dengan bagian dari jalur / nama file. Jika ada beberapa pertandingan, Anda dapat menggunakan tab untuk menggilirnya.Jika Anda ingin membagi jendela dan membuka buffer di jendela baru, gunakan
:sb name
Jika Anda ingin membuka buffer di tab baru, gunakan
:tab b name
Anda juga dapat menggunakan
:ls
perintah untuk melihat daftar buffer yang saat ini dimuat.sumber
Saya menggunakan fungsi ini untuk menemukan file di subdirektori, saya tidak menulisnya. Ini dari vim wiki :
Satu hal yang saya suka adalah ada dukungan untuk wildcard (*). Itu juga berperilaku baik untuk beberapa pertandingan.
sumber
Selain
wildmenu
jawaban, saya menggunakan plugin BufExplorer , dan pemetaan berikut untuk melompati buffer dengan cepat:Atau Anda bisa mengganti buffer explorer dengan
:ls
perintah, yang pada dasarnya menampilkan hal yang sama.Yang terakhir memetakan
Alt-=
untuk menampilkan penjelajah buffer.Saya tidak menggunakan Windows sebanyak itu, karena saya biasanya hanya memiliki satu atau dua jendela.
Saya juga memodifikasi
statusline
untuk memasukkan nomor buffer%2n
, sehingga saya selalu tahu buffer mana yang sedang diedit. Lihat:h statusline
sumber
apakah Anda tahu aplikasi MacVim? Ini adalah VIM yang dipoles untuk OS X, dan salah satu fiturnya adalah dukungan untuk tab (CMD + T untuk membuka tab baru), ada laci, dll ... (baca ini: http://zerokspot.com/weblog/2008 / 08/03 / macvim-as-textmate-replacement / )
Cobalah!
Salam Michal
sumber
NerdTree paling baik untuk navigasi file di vim.
Tautan di bawah ini adalah pengantar yang bagus untuk nerdtree.
http://www.catonmat.net/blog/vim-plugins-nerdtree-vim/
sumber
Inilah sesuatu yang cukup sepele yang saya pertahankan
.vimrc
. Ini akan memuat file dari subdirektori manapun.Jadi saya bisa bilang:
: Er Main.java
dan itu akan mencari subdirektori, menemukan
Main.java
dan memuatnya. Ini tidak berperilaku baik untuk banyak file dengan nama yang sama, tetapi cepat dan sederhana.Alat lain yang saya gunakan adalah VTreeExplorer , yang menyediakan jendela file / direktori berbasis pohon, dan tidak memerlukan opsi build khusus dari VIM (yaitu plugin vanilla).
sumber
models.py
,views.py
, dllAlur kerja saya untuk menemukan file adalah wildmenu, autocwd dan
:e
.Bagian yang relevan di
.vimrc
:Dan bagaimana cara menggunakannya:
Itu memberikan semua file di direktori saat ini yang dimulai dengan myf. Anda juga bisa
<Tab>
melalui mereka. Gunakan kembali untuk membuka :)^D
akan selalu memberi Anda semua pertandingan. Karena autocmd selalu masuk ke folder file saat ini, maka mudah untuk dikerjakan. Jika Anda berada di dalamfoo/bar.py
dan ingin pergi,foo/baz.py
lakukan saja:e baz.py
dan Anda di sana. Itu juga berfungsi dengan buffer (:b foo^D
mencantumkan semua buffer yang dimulai dengan foo)sumber