Windows'ta çalışan Emacs için .emacs dosyamı nerede bulabilirim?


115

Emacs için Windows kurulumum için .emacs dosyasını aramayı denedim, ancak bulamadım. Windows altında Unix'teki ile aynı dosya adına sahip mi?

Kendim yaratmak zorunda mıyım? Eğer öyleyse, hangi belirli dizine gidiyor?

Yanıtlar:


108

Emacs SSS http://www.gnu.org/software/emacs/windows/ adresinden kopyalanıp yapıştırılmıştır :

Başlangıç ​​dosyamı nereye koymalıyım?

Windows'ta dosya, dosya adlarının nokta ile başlayamadığı DOS ve FAT dosya sistemleriyle geriye dönük uyumluluk .emacsiçin çağrılabilir _emacs. Bazı kullanıcılar böyle bir adı kullanmaya devam etmeyi tercih eder, çünkü Windows Gezgini, dosya sistemi ve diğer birçok programın üstesinden gelebilse de, bir noktayla başlayan bir adla dosya oluşturamaz. Emacs 22 ve sonrasında, init dosyası da çağrılabilir .emacs.d/init.el. Lisp paketleri tarafından oluşturulan diğer dosyaların çoğu artık .emacs.ddizinde de saklanmaktadır , bu nedenle bu Emacs ile ilgili tüm dosyalarınızı tek bir yerde tutar.

Yukarıda bahsedilen tüm dosyalar HOME dizininize gitmelidir. HOME dizini aşağıdaki adımlar izlenerek belirlenir:

  1. HOME ortam değişkeni ayarlanmışsa, belirttiği dizini kullanın.
  2. HKCU \ SOFTWARE \ GNU \ Emacs \ HOME kayıt defteri girdisi ayarlanmışsa, belirttiği dizini kullanın.
  3. HKLM \ SOFTWARE \ GNU \ Emacs \ HOME kayıt defteri girdisi ayarlanmışsa, belirttiği dizini kullanın. Kullanıcıların aynı HOME dizinini paylaşmasına neden olduğu için önerilmez.
  4. Varsa C:\.emacs, kullanın C:/. Bu, C:/HOME ayarlanmadıysa önceki sürümler varsayılan olarak ayarlandığı için geriye dönük uyumluluk içindir .
  5. Kullanıcının, konumu Windows sürümüne ve bilgisayarın bir etki alanının parçası olup olmadığına göre değişen, genellikle kullanıcının profil dizini altında Application Data adlı bir dizin olan AppData dizinini kullanın.

Emacs içinde ~, bir dosya adının başında HOME dizininize genişletilir, böylece .emacs dosyanızı her zaman ile bulabilirsiniz C-x C-f ~/.emacs.

MS-Windows'ta HOME ve Başlangıç ​​Dizinlerinde daha fazla bilgi bulunmaktadır .


1
Veya Cx Cf ~ / _emacs ile bulmanız gerekebilir (nokta yerine). Başlangıç ​​için alt çizgiyi kullanmak hem Vim hem de Emacs için yaygın (ve önerilen) bir uygulamadır.
labirent

Emacs "_emacs" in kullanımdan kaldırıldığından şikayet ediyor :(
Brian Z

Teşekkürler. Bu açıklama aslında emacs'i, bundan bahsetmedikleri bir clojure eğitiminden sonra düzgün bir şekilde kurmama yardımcı oldu. Windows üzerinde HOME değişkenini oluşturdu ve şimdi çalışıyor.
Siniyas

Yukarıdaki 5. noktaya referans olarak benim için emacs'in aradığı dizini Windows 7'de C: \ Users \ userid \ AppData \ Roaming'dir, ancak elbette bilgisayarım bir etki alanında.
user8128167

Windows 10'da AppData sonekinden kaçınmak için HOME değişkenini% USERPROFILE% olarak ayarlıyorum.
Bae

80

Değişken user-init dosyasında saklanmalıdır. C-H v user-init-file RETKontrol etmek için kullanın . Bunu doğrudan kullanarak da açabilirsiniz.M-x eval-expression RET (find-file user-init-file) RET


8
Bu çok yardımcı oldu, init dosyalarındaki kılavuz bölümünde bahsedilmemesine şaşırdım.
Brian Z

Acaba neden bunu denediğimde anladım trailing garbage following expression?
Marko Grdinic

Parantezi kullandın mı?
Jose Romero

29

Dosyayı Windows için Emacs'de şu şekilde açın:

C-x C-f ~/.emacs

Emacs Wiki'de daha fazla bilgi


11
Ve sonra tanıdık bir Windows Aç iletişim kutusunda ~ / öğesinin nerede olduğunu görmek için Dosya> Dosya Aç ... veya Farklı Kaydet ... seçeneğini tıklayın.
Yoo

21

Vista kutumda var C:\Users\<USER>\AppData\Roaming\


1
Bir istisna dışında Windows 8.1 (Emacs 24) için aynı. Emacs, Windows Gezgini'nden, bir bağlantı veya cmd konsolundan açıldığında, C: \ Users \ <USER> \ AppData \ Roaming \ .emacs profil dosyasını kullanır, ancak Emacs'i PowerShell konsolundan açarsanız, Emacs C'de .emacs dosyasını arayacaktır. : \ Kullanıcılar \ <USER> klasörü.
kri

Bu benim için çalıştı. AppData'daki Dolaşım dizininde bir .emacs dosyası oluşturdum ve bir cazibe gibi çalışıyor! Windows 10.
Retro Gamer

Windows 10'da çalıştı
Alex Kaszynski

6

Ctrl-x Ctrl-f ~/.emacsDosyayı sadece yazmanın ve oluşturmanın yeterli OLMAYACAĞINI unutmayın .

Emacs uygulamanız başlangıç ​​dosyanızı saklamak için farklı bir yer kullanıyor olabilir ve öyleyse, ~ / .emacs dosyasını oluşturmak, Emacs uygulamanızın yoksayacağı işe yaramaz bir dosya oluşturur .

Ayrıca, .emacs init dosyasına erişimden daha fazlasını yapmak isteyebilirsiniz , ancak nerede olduğunu, yani yol adını bilmek isteyebilirsiniz.

Buna ulaşmak için iki yöntem var:

Kolay yol: yazın Ctrl+ H Vkullanıcı-init-dosyasıReturn

Biraz daha karmaşık bir yol: Sisteminizin kendi .emacs dosyasını nerede sakladığını şu şekilde öğrenebilirsiniz:

  1. Seçenekleri tıklayın ve "Varsayılan Yazı Tipini Ayarla ..." seçeneğine gidin.
  2. Yazı tipi ayarını değiştirin ve tamam'a tıklayın
  3. Seçenekler menüsünde, "Seçenekleri Kaydet" e gidin
  4. Seçenekler kaydedildiğinde, sistem .emacs dosyasını kaydeder ve dosya yolunu Emacs ekranının altındaki mini arabellekte okuyabilirsiniz.

Lütfen cevabınızı biçimlendirmeyle ilgili belgelere bakın. Oldukça kolaydır ve size daha fazla itibar kazandıracaktır.
Bhavik Şah

~ / .Emacs.el dosyası adlı bir dosyayı kaydettiğimde, içinde oluşturuldu c:/Users/user1/AppData/Roaming/.emacs.el. Bu site emacswiki.org/emacs/DotEmacsDotD~/.emacs.d/init.el , dosya sistemindeki dosyanın bulunduğu anlamına gelen dosyayı adlandırmam gerektiğini anlamama yardımcı oldu c:\Users\user1\AppData\Roaming\.emacs.d\init.el(hiç beklediğim gibi değil). HOME ortam değişkenini ayarlamayı ve dosyayı %USERPROFILE%Windows'ta mantıksal HOME dizini olan dizinime yerleştirmeyi tercih ederim (en azından ilgilendiğim kadarıyla).
PatS

4

Windows 7'de init.eldosyanızı C:\Users\user-name\AppData\Roaming\.emacs.d\, kullanıcı adının kullanıcı / oturum açma klasörünüz olduğu yere koyun .

init.elDosyanızın adlandırılmaması için dikkatli olun init.el.txt. Dosyanızı Not Defteri gibi bir düzenleyiciyle oluşturursanız bu, Windows'un yaptığı bir şeydir.


4

Emacs'ın 22'nin üzerindeki Windows sürümlerinde, şu adrese taşınmış gibi görünüyor:

~/.emacs.d/init.el

, ~HOME değişkeninizin değeri olarak (bkz. Kontrol Paneli → SistemGelişmişOrtam değişkenleri ).

Dosyanın kendisi mevcut olmayabilir. Bu durumda sadece yaratın.


3

Bir emacs başlatma dosyası oluşturmalısınız. Otomatik olarak oluşturulmaz. Benzer bir sorun yaşadım ve bu cevap ne yaptığımı gösteriyor.

Sorunum dosyamın ~/.emacs.elyüklenmemesiydi. Garip çünkü bu her zaman benim için çalıştı.

Bu soru / cevap bana yardımcı oldu, ancak init dosyamı koymak zorunda kaldım %USERPROFILE%\AppData\Roaming\.emacs.d\init.elçünkü görünüşe göre bu Windows'daki varsayılan davranış.

Bu sorunu gidermek için, aşağıdakileri emacs * scratch * arabelleğinde çalıştırdım.

user-emacs-directory
"~/.emacs.d/"

Olduğunu gördüğümde user-emacs-directory, ~/.emacs.d.emacs.el dosyamı %USERPROFILE%\.emacs.d\init.el. Ama bu yine de işe yaramadı. expand-file-nameAşağıda gösterildiği gibi devam ettim :

(expand-file-name user-emacs-directory)
"c:/Users/pats/AppData/Roaming/.emacs.d/"

Windows'un çalışma şeklini sevmelisiniz. (değil) Yani benim taşındı emacs.eldosyayı %USERPROFILE%\AppData\Roaming\.emacs.d\init.elve çalıştığı bu. Dosya şimdi okunuyordu. Ancak başka hatalar aldım çünkü başlatma dosyam diğer (kişisel emacs) dosyaları ( ~/myenv/emacs/*.el.

Warning (initialization): An error occurred while loading c:/Users/pats/AppData/Roaming/.emacs.d/init.el’:

Hum ... ~/myenv/emacs/*.elBunun işe yaraması için tüm dosyalarımın taşınması gerekiyor gibi görünüyor ama ben bunu yapmak istemedim. Sonra ANA ortam değişkeni ayarlanmadığı için emacs'in varsayılan davranışını gerçekleştirdiğini fark ettim .

ÇÖZÜM

Windows HOMEortam değişkenimi ayarladığımda , %USERPROFILE%her şey son 25 yıldır olduğu gibi çalışmaya başladı. :-)

HOME ortam değişkenini ayarlamak için, Ortam Değişkenleri iletişim kutusunu açmak için WindowsKey + "hesabınız için ortam değişkenlerini düzenle" yazdım ve girdim HOME=%USERPROFILE%.

Şimdi emacs başlatma dosyam .emacs.el doğru yerine geri döndü, şurada $HOME/.emacs.eldeğil%USERPROFILE%\AppData\Roaming\.emacs.d\init.el

Adil olmak gerekirse, Windows'un kullanıcı tarafından yüklenen paketler için dosya koymak için tek bir yeri olsaydı, HOME = yapma çözümü %USERPROFILE\AppData\Roamingkabul edilebilir olabilirdi, ancak bazı uygulamalar kullandığından %USERPROFILE%, bazıları kullandığından %USERPROFILE\AppData\Roamingve diğerleri kullandığından %USERPROFILE\AppData\Local, yapılandırmanızı nerede bulacağınızı bilmeyi zorlaştırır. Dosyalar.

Her şeyin% USERPROFILE% veya $ HOME dizinimde olmasını tercih ederim.

Bir başka benzer soru da buradaydı:


"Windows'un çalışma şeklini sevmeliyim (değil)" - Bu sorunun Windows ile ilgisi yok, Emacs geliştiricilerinin Windows üzerinde Emacs çalıştıran kişilere yaptıklarından başka bir şey yok.
Chris Charabaruk

2

Kanja'nın yanıtladığı gibi, bu dosyanın yolu user-init-filedeğişkende saklanır (veya başlangıç ​​dosyası yoksa, değişken nerede oluşturulacağına ilişkin varsayılan değeri içerir).

Yani ne olursa olsun , kullandığınız olası init dosya adlarının hangi ve hangi içinde bulunduğu dizin olarak, birlikte İnit dosyasını ziyaret gerekir:

M-: (find-file user-init-file) RET

Veya yankı alanında tam yolunu şu şekilde görüntüleyin:

M-: (expand-file-name user-init-file) RET


2

Emacs 23 ve Windows 7'de yalnızca şunları ayarlarsanız çalışır:

HKCU\SOFTWARE\GNU\Emacs\HOME

Sonunda bunu buldum! Teşekkürler!
Chris

Sonunda bunu buldum! Ben de!
lowerkey

"Ayarla" derken, bu anahtarı (içerik olmadan) oluşturmayı mı kastediyorsunuz?
Peter Mortensen

1

Emacs 22'nin XP makinemde ara sıra "C: \ Documents and Settings \ kullanıcıadı \ Uygulama Verileri \ .emacs" veya sadece "C: \ Documents and Settings \ kullanıcıadı \ .emacs" ı açacağını buldum. Neden ara sıra fikrini değiştirdiğine dair bir açıklama bulamadım.

~ her zaman mevcut emacs örneğinin HOME olduğunu düşündüğü şeyi gösterir, ancak kanja'nın ipucu (Ch v user-init-file) size her zaman ~ / .emacs'in gerçekte neyle eşleştiğini söyleyecektir.


2
HOMENasıl başladığıma bağlı olarak Windows'un ortam değişkenini farklı şekilde ayarlayacağını şimdi fark ettim runemacs.exe. Explorer içinden başlatırsam, HOMEolarak ayarlanır C:\Documents and Settings\username, ancak Başlat Menüsünden başlatırsam, HOMEolur C:\Documents and Settings\username\Application Data. Garip.
37'de yeniden çevrilir



0

Windows 8.1'de Emacs, Windows Gezgini'nden , bir kısayoldan veya cmd konsolundan başlatılırsa C: \ Users \ <USER> \ AppData \ Roaming.emacs başlatma dosyasını kullanır. Emacs'i PowerShell'den başlattığımda, Emacs init dosyasını C: \ Users \ <USER> klasöründe arar . Bu sorunun düzeltilmesi, HOME kullanıcı ortamı değişkenini (Denetim Masası \ Sistem ve Güvenlik \ Sistem-> Gelişmiş sistem ayarları-> Gelişmiş-> Ortam değişkenleri) C: \ Users \ <USER> olarak ayarlamaktı . Bu değişiklikten sonra, Emacs'ı nasıl başlatırsam olayım, aynı init dosyasını kullanıyor (bu sorunun kabul edilen cevabına bakın )


0

WIndows7 & Emacs26.3 için :


eğer HOMEçevre ayarlanır, daha sonra .emacsdosya bu klasörde olmalıdır.

aksi takdirde, içinde olmalıdır c:\.


Her iki durumda da, .emacsorada değil, _emacskullanılmalıdır.

Bunun nedeni .emacs, Windows dosya adlandırma kurallarına göre dosya oluşturamayacağımızdır . (Ancak dosyayı başka bir yerden indirebilir veya kopyalayabiliriz).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.