Bagaimana cara mengatur direktori kerja / saat ini di Vim?


109

Jadi ketika saya ingin membuat file baru dengan menggunakan perintah: e saya tidak ingin menentukan seluruh path, hanya nama file baru. Bisakah itu dilakukan?

Jawaban:


144

Seperti yang sudah disarankan, Anda dapat menggunakan autochdir, yang akan mengubah direktori file yang Anda buka, opsi lainnya adalah

:cd mydirectory

yang akan mengubah direktori. Ini bisa menjadi jalur absolut atau relatif, jadi :cd ..akan naik satu tingkat. Atau Anda dapat menggunakan :cd %:hyang juga akan mengubah ke direktori tempat file saat ini berada, tetapi tanpa menyetel autochdir.

:cd

akan mengubah direktori ke direktori home Anda (atau di windows, cetak direktori saat ini).

:cd -

akan mengubah direktori ke direktori sebelumnya yang Anda kunjungi.


13
jika Anda menggunakan banyak jendela, Anda bahkan dapat menggunakan: lcd untuk mengubah direktori hanya untuk jendela saat ini.
berguna

1
@Useless: menarik ... Saya rasa saya tidak akan pernah menginginkan itu, tapi saya rasa itu masalah selera. Terimakasih atas infonya.
falstro

3
Saya mencoba mencari tahu apa artinya%: h, ada bantuan?
Michael

10
@Michael %diterjemahkan ke nama file saat ini termasuk jalur, :menambahkan pengubah, hadalah kepala, yaitu jalur hingga pemisah jalur terakhir, yang tidak termasuk nama file itu sendiri.
falstro

@ falstro, tahukah Anda bagaimana: perintah cd dapat diterapkan ke semua jendela dalam contoh vim yang sama? Contoh: saat menggunakan split: sp
mgouin

15

Juga jika Anda menjelajahi sistem file dengan file explorer netrw Anda dapat mengatur direktori saat ini dengan menekan tombol c.


juga digunakan set autochdiruntuk membuat 'c' keyefek di shell, sehingga Anda dapat menggunakan !command args dir yang diubah.
pimgeek

9

Coba tambahkan set autochdirke .vimrc. Jika Anda ingin mengubahnya sekali ini saja, gunakan :cd(atau :cd!untuk memaksanya).


1
bantuan mengatakan ini merusak beberapa plugin (saya tidak tahu yang mana) jadi saya telah mengambil tindakan pencegahan dengan menambahkan pemetaan di .vimrc saya: cnoremap cd. lcd %:p:hdan nnoremap ,cd :cd %:p:h<CR>:pwd<CR>sebagai gantinya
ErichBSchulz

juga digunakan 'c' keydalam file explorer netrw untuk menyertai ini.
pimgeek

3

Saya tidak tahu apa yang salah dengan vim. Saya ingin direktori tempat saya memulai vim sebagai saat ini.

Saya telah mengikuti tip tentang autochd di atas dan mengaturnya ke noautcd di .vimrc saya.

Saya belum melakukannya, tetapi saya akan memulai vim seperti ini mulai sekarang:

vim —cmd 'cd `pwd`'

Itu akan membuatnya menempel pada direktori saat ini!


2

Dengan netrw:selain menekan ctombol untuk mengatur direktori saat ini, Anda juga dapat menempatkan:

let g:netrw_keepdir= 0

di Anda .vimrc; ini berarti netrwdirektori penjelajahan akan tetap sama dengan direktori saat ini.


Ini tampaknya memiliki perilaku yang setara sebagai: lcd untuk setiap perubahan folder netrw. Apakah Anda tahu bagaimana pengaturan ini bisa sama dengan a: cd sebagai gantinya (ubah dir untuk semua jendela)? Terima kasih!
mgouin

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.