Saya mengerjakan banyak proyek C berbeda dengan gaya lekukan yang unik. Bagaimana cara saya membuat Emacs melakukan pengaturan indentasi per proyek tanpa mencemari pohon proyek hulu dengan .dir-locals.el
file? Saya ingin mencocokkan proyek menggunakan jalur mereka pada disk.
indentation
artagnon
sumber
sumber
.dir-locals.el
. Mungkin rekan kerja akan menyukai ide ini?Jawaban:
.dir-locals.el
adalah metode pilihan saya bila memungkinkan, terutama karena ini berlaku untuk semua pengguna Emacs yang mengerjakan proyek itu.Untuk proyek yang memusuhi pengguna Emacs atau tidak ingin
.dir-locals.el
file, atau jika Anda ingin memiliki preferensi pribadi (mungkin bukan lekukan) yang seharusnya tidak berlaku untuk orang lain, jika Anda menggunakan sistem kontrol versi terdistribusi, sebuah opsi adalah untuk selalu bekerja di cabang pribadi yang Anda miliki.dir-locals.el
. Saya tidak tahu cara menggunakan DCVS yang membuat ini tidak menyakitkan.Pilihan lain adalah tidak memeriksa
.dir-locals.el
file. Misalnya, dengan git, tambahkan ke.git/info/exclude
. Itu menyakitkan ketika Anda memiliki banyak checkout proyek, tentu saja.Apa yang telah saya lakukan di tempat
.dir-locals.el
yang bukan merupakan opsi adalah menambahkan sebuah kait yang menghadap kebuffer-file-name
nilai yang diketahui.(Peringatan: kode yang diketik langsung ke browser saya karena saya tidak memiliki akses ke kode asli saya saat ini.)
sumber
.dir-locals.el
ke.git/info/exclude
tampaknya seperti pilihan yang baik..gitignore
dalam root proyek?.dir-locals.el
ke global gitignore Anda di~/.config/git/ignore
.Anda tidak dapat meyakinkan proyek-proyek hulu seperti llvm dan linux untuk check-in a
.dir-locals.el
.Solusi rumit untuk masalah ini:
Digunakan sebagai berikut:
Saya memiliki makro serupa untuk mode bahasa lainnya juga.
sumber
mendistribusikan .dir-locals.el dalam berbagai proyek sulit dipertahankan.
Caraku cukup sederhana, letakkan semua kode dalam satu ~ / .custom.el.
Pada dasarnya, kode akan dijalankan di prog-mode-hook (atau your-any-major-mode-hook) dan melakukan hal-hal berikut:
Saya telah berhasil menggunakan metode ini selama satu tahun.
Berikut ini kodenya (panggil my-setup-develop-environment di prog-mode-hook):
sumber
Cara normal untuk melakukannya adalah menggunakan
.dir-locals
. Inilah sebabnya mengapa mereka diperkenalkan di tempat pertama. Kenapa tidak? Sepengetahuan saya, sebagian besar alat yang berhubungan dengan proyek cenderung menyimpan konfigurasi mereka di direktori proyek root: git, svn, Eclipse dan banyak lainnya ...Hanya saja, jangan lupa menambahkan file
.gitignore
atau sejenisnya.sumber
Saya menggunakan guess-style.el .
Itu cukup baik menebak gaya lekukan file yang disukai
sumber