Saya ingin membuka file di Vim seperti di Eclipse menggunakan Ctrl+ Shift+ R, atau melalui opsi Ctrl+ Nautofill. Panggil pintasan keyboard, ketik nama / pola file, dan pilih dari semua nama file yang cocok.
Saya tahu membukanya secara normal seperti:
:tabe <filepath>
:new <filepath>
:edit <filepath>
Masalahnya di sini adalah saya harus menentukan seluruh jalur file dalam kasus ini.
vim
keyboard-shortcuts
Techmaddy
sumber
sumber
:tabe
akan membuka file di tab baru,:new
akan membagi jendela secara horizontal, dan:edit
akan menutup file saat ini sebelum membuka yang baru.Jawaban:
Baru-baru ini saya jatuh cinta dengan fuzzyfinder.vim ... :-)
: FuzzyFinderFile akan memungkinkan Anda membuka file dengan mengetikkan nama atau pola parsial.
sumber
Yang biasanya saya lakukan adalah
e .
(e-space-dot) yang memberi saya direktori saat ini yang dapat dijelajahi - kemudian saya bisa/
- mencari fragmen nama, seperti menemukan kata dalam file teks. Saya menemukan bahwa secara umum cukup baik, sederhana dan cepat.sumber
:e.
).:e.
dan:E
meskipun: jika file saat ini telah diedit dan belum disimpan, yang pertama akan mengeluh (seperti:edit
) karena "tidak ada penulisan sejak perubahan terakhir", sedangkan yang terakhir akan membagi jendela secara horizontal (seperti:new
) untuk memungkinkan pembukaan file baru (sementara keduanya akan mengganti file saat ini dengan file baru jika belum diubah (seperti:edit
)).:find
adalah pilihan lain.Saya membuka vim dari root proyek saya dan
path
mengaturnya ke sana.Kemudian, saya dapat membuka file yang terletak di mana saja di pohon menggunakan:
Tab akan otomatis selesai melalui berbagai kecocokan. (
**
memberitahu itu untuk mencari secara rekursif melalui jalur).sumber
:find
karena untuk mendapatkan jalur relatif ke direktori kerja. Lihat pertanyaan dan @romainl jawabannya di sini: stackoverflow.com/questions/28224168/… . Saya menemukan jawaban @strager yang lebih menarik untuk mendapatkan jalur relatif ke direktori kerja lebih mudah.Anda dapat mencari file di jalur saat ini dengan menggunakan
**
:Tekan tab untuk melihat berbagai penyelesaian jika ada lebih dari satu kecocokan.
sumber
:tabe **/*der.h
jika Anda tidak ingat nama lengkap file tersebut.Pertimbangkan untuk menggunakan CtrlP plugin .
Itu termasuk dalam Janus Distributive .
Memungkinkan Anda menemukan file di direktori saat ini, buffer terbuka, atau file yang terakhir digunakan menggunakan "pencocokan fuzzy" atau ekspresi reguler.
sumber
kecuali saya melewatkan sesuatu,: e nama file adalah cara tercepat yang saya temukan.
Anda juga dapat menggunakan tab untuk melengkapi nama file secara otomatis.
sumber
Saya suka: FuzzyFinderTextMate (atau Ctrl+ F) di pengaturan saya. Lihat http://weblog.jamisbuck.org/2008/10/10/coming-home-to-vim
sumber
Saya menggunakan beberapa pintasan di file .vimrc saya (sintaks persis di bawah).
Mereka didasarkan pada fakta bahwa dalam 90% kasus, saya ingin membuka file lain di direktori yang sama dengan file yang sedang saya edit, atau dalam direktori yang sangat dekat dalam hierarki dengan file yang diedit.
Inilah yang dilakukan perintah:
,cd
: Ubah direktori kerja saat ini ke direktori tempat file saat ini yang sedang Anda edit.,e
: Membuka file dengan direktori kerja saat ini sudah diisi sehingga Anda harus menentukan hanya nama file.Masukkan ini ke .vimrc Anda:
Berikut urutan kejadiannya:
,cd
-> Direktori kerja saat ini sekarang menjadi "/ home / prog",e
-> Perluas ke ": e / home / prog" sehingga Anda bisa mengisi nama file, katakan test.h.,e
-> Memperluas ke ": e / home"tab
-> Pilih subdirektori / homeenter
->cd
ke direktori yang ingin Anda katakan / home / prog,e
-> Memperluas ke ": e / home / prog"sumber
Ada juga perintah-t yang menurut saya adalah yang terbaik dari kelompok itu (dan saya sudah mencoba semuanya). Ini adalah kerumitan kecil untuk menginstalnya tetapi, setelah terinstal, itu adalah mimpi untuk digunakan.
https://wincent.com/products/command-t/
sumber
Gunakan tab, mereka bekerja saat memasukkan path file dalam mode escape vim!
sumber
Jika Anda memiliki tag (dan seharusnya), Anda dapat membuka file dari baris perintah hanya dengan nama kelas atau metode atau fungsi c, dengan "vim -t DBPlaylist", dan dalam vim dengan ": tag ShowList ".
sumber
Jika Anda sedang mengedit file di direktori umum, Anda bisa
:cd
ke direktori itu, lalu gunakan:e
hanya pada nama file.Misalnya, daripada:
Anda dapat melakukan:
Atau, jika Anda sudah membuka file di direktori yang diinginkan, Anda dapat menggunakan
%
singkatan untuk nama file saat ini, dan memangkasnya ke direktori saat ini dengan:h
modifier (:help :_%:
):Dan, seperti yang dikatakan orang lain, Anda dapat melengkapi nama file di ex-line (lihat
:help cmdline-completion
lebih lanjut).sumber
Ini tidak tepat apa yang Anda cari, tetapi baik itu dalam banyak kasus (meskipun tidak semua).
Jika Anda membuka VIM dan ada nama file di buffer, Anda dapat meletakkan kursor di nama dan jenis file tersebut gf. Ini membuka file yang namanya berada di bawah kursor di buffer yang sama. Itu sama dengan
:e CTRL+r CTRL+w
sumber
:b oldname
Saya tahu tiga plugin yang mengizinkan untuk membuka file, mendukung pelengkapan otomatis, dan tidak perlu memasukkan nama jalur lengkap file untuk dibuka (selama file berada di bawah salah satu direktori dari
&path
opsi vim) ::e
/:find
, tetapi pada tindakan terpisah)Akhir-akhir ini, saya telah melihat plugin lain dengan fitur serupa, tetapi saya tidak ingat namanya.
Segera,: find kemungkinan mendukung pelengkapan otomatis - tambalan tentang topik ini sedang beredar di milis vim_dev akhir-akhir ini.
sumber
p*.dat
atau sesuatu seperti itu (seperti di 'dos' lama)Anda juga bisa: menelusuri konfirmasi e (untuk jendela grafis)
tetapi Anda mungkin juga harus menentukan versi vim yang Anda gunakan, dan cara kerja emacs itu. Mungkin kami dapat menemukan alternatif vim yang tepat untuk Anda.
sumber
FuzzyFinder telah disebutkan, namun saya menyukai perilaku seperti teman teks dari FuzzyFinderTextmate plugin yang memperluas perilaku untuk menyertakan semua subdirektori.
Pastikan Anda menggunakan fuzzyfinder.vim versi 2.16 - Versi yang lebih tinggi merusak plugin.
sumber
Dengan Exuberant ctags, Anda dapat membuat file tag dengan informasi file:
Kemudian, buka file dari VIM dengan
Anda juga dapat menggunakan
<tab>
untuk melengkapi nama file secara otomatis.sumber
Di GVIM, File dapat diakses menggunakan dialog buka / baca / tulis;
{perintah} - buka / baca / tulis
open - Membuka file yang dibaca - Menambahkan file menulis - dialog SaveAs
sumber
Saya telah menginstal FuzzyFinder. Namun, batasannya adalah ia hanya menemukan file di direktori saat ini. Salah satu solusi untuk itu adalah dengan menambahkan FuzzyFinderTextmate. Namun, berdasarkan dokumen dan komentar, itu tidak berfungsi dengan baik. Anda memerlukan versi FuzzyFinder yang tepat dan Anda memerlukan salinan Vim Anda untuk dikompilasi dengan dukungan Ruby.
Solusi lain yang saya coba sekarang adalah membuka semua file yang mungkin saya perlukan di awal sesi pengeditan. Misalnya, buka semua file di direktori kunci ...
(Ini berarti saya mungkin akan membuka banyak file, namun sejauh ini tampaknya masih berfungsi dengan baik.)
Setelah itu, saya bisa menggunakan FuzzyFinder dalam mode buffer dan itu akan bertindak seperti
command-o
pintasan TextMate ...sumber