Buat file baru di direktori file yang terbuka di vim?

93

Saya menemukan diri saya dalam posisi di mana saya ingin membuat file baru di direktori yang sama dengan file yang dibuka. Bagaimana cara membuat file baru di direktori file yang terbuka di vim? Juga, adakah tempat di mana saya bisa mempelajari hal-hal ini sendiri? Googling tidak membantu.

Dawg
sumber
Apakah Anda berbicara tentang vim, editor teks di Linux?
ianaz

Jawaban:

173

Dari dalam Vim, file baru dibuat seperti file yang ada diedit, melalui perintah seperti :edit filenameatau :split filename. Untuk menyimpannya ke disk, Anda perlu (secara opsional mengetikkan konten dan) menyimpannya melalui :write.

Seperti prompt perintah, Vim memiliki gagasan tentang direktori saat ini ( :pwdmencantumkannya). Semua jalur file relatif terhadapnya. Anda tidak perlu menduplikasi jalur ke file Anda saat ini, ada beberapa cara pintas yang bagus untuk mereka: %mengacu pada file saat ini, :hadalah pengubah untuk direktorinya, tanpa nama file (cp. :help filename-modifiers). Begitu,

:e %:h/filename
:w

akan membuat file baru dengan nama filenamedi direktori yang sama dengan file yang saat ini terbuka, dan menulisnya.

Atau, beberapa orang menyukai Vim untuk selalu mengubah ke direktori file saat ini. Ini dapat dikonfigurasi dengan menempatkan

:set autochdir

ke dalam ~/.vimrcfile Anda (yang dibaca saat startup Vim). Kemudian, di atas menjadi sederhana

:e filename
:w

Akhirnya, Vim memiliki built-in yang bagus :help. Belajar untuk menavigasi dan mencarinya!

Ingo Karkat
sumber
2
autochdirbersisik, sayangnya, dan saya merasa tidak bisa bergantung padanya. Sebagai gantinya saya meletakkan autocmd di vimrc saya:autocmd BufEnter * silent! lcd %:p:h:gs/ /\\ /
dash-tom-bang
1
Dawg juga ingin memberikan suara untuk jawaban Anda, tetapi Dawg tidak memiliki perwakilan yang diperlukan. Terima kasih atas penjelasan yang ditulis dengan baik!
Dawg
14

Anda harus mencoba plugin "nerdtree". Di jendela nerdtree, Anda mengetik kunci m, dan pilihan operasi file akan ditampilkan kepada Anda

harris
sumber
11

Jika Anda ingin membuat file baru dan juga menampilkannya di jendela di samping file Anda saat ini, Anda dapat mencoba ini:

:vsp newfile

The vspsingkatan vertical split, dan membagi layar dalam setengah, satu menunjukkan file Anda saat ini, yang lain menunjukkan file baru Anda (juga bekerja hanya dengan sp, yang merupakan perpecahan horisontal).

Sesuai komentar @ MartinLyne di atas, ini akan membuat file di direktori file yang Anda buka vim. Untuk menyesuaikannya, Anda dapat mengubah direktori kerja saat ini sebagai berikut:

:cd %:p:h

Perintah ini mengubah direktori kerja saat ini ke direktori file aktif, artinya menjalankan vspperintah (atau salah satu perintah di atas) akan membuat file di direktori itu.

RocketDonkey
sumber
2

Ketika Anda telah membuka vim di lokasi yang tidak ada seperti $ vim /etc/<some_folder/<next_folder>/file.cfg

kemudian untuk membuat direktori baru saat berada di dalam vim, jalankan saja dalam mode normal :! mkdir -p /etc/<some_folder/<next_folder>dan simpan dokumen Anda seperti biasa :w :x ZZ(apa pun yang Anda suka)

itu dia

matson kepson
sumber
1

Ini untuk Gvim! Masukkan ini untuk melihat direktori saat ini.

:cd

lalu ubah dengan

:cd desktop/somefolder

lalu simpan atau buat file baru disana

:enew asd.cpp

sekarang lihat kembali file tersebut

:cd
Kilat
sumber
0

Saya cukup terlambat ke pesta, tetapi opsi lain adalah membuka NERDtree dengan :Eatau :Explore(atau alternatif pemisahannya :Vexplore/ :Sexplore== :Vex/ :Sex).

Di NerdTree Anda dapat membuat file baru dengan %, dan mengetikkan namanya. Ini akan secara otomatis membuka file, dan membuatnya setelah Anda :w/ menyimpannya.

mazunki
sumber