Windows 7'de dot emacs .emacs dosyası için nasıl farklı bir konum ayarlayabilirim?


16

Windows 7 bilgisayar kullanıyorum ve yönetici erişimim yok. Bu nedenle kök dizine bir nokta emacs dosyası yerleştiremiyorum. Dot emacs dosyası için farklı bir konum belirlememin bir yolu var mı?


Emacs kurulumunun kendi konumunuzu kontrol edebiliyorsanız (örneğin, istediğiniz yere koymanız veya en azından kuruluma yazma erişiminiz varsa), kendiniz site-start.elyüklemek gibi bir şeyi kullanarak tam kontrolü ele alabilirsiniz init.elve artık ihtiyacınız kalmaz a .emacs. Bu örnekte, giriş dizini ile uğraşmanıza gerek yoktur (bilgisayarda başka biri, yaptığınız işi etkileyecek şeyler koymuyorsa). Başka bir deyişle, boş olabilir ve asla dokunmanıza gerek yoktur.
hukukçu

Yanıtlar:


4

Emacs, kılavuzda belirtildiği gibi init dosyalarını aradığı birkaç yere sahiptir . Emacs'ı özelleştirmek istiyorsanız, bu dosyalardan biriyle başlamalısınız.

Yaygın bir yaklaşım, HOME dizininizde bir yerine, init.elkendi dosyasında kullanmaktır .user-emacs-directory.emacs

user-emacs-directoryVarsayılan ~/.emacs.d, bu yüzden hala HOME görecelidir, ancak bu yöntemin avantajı, tek bir yerde Emacs yapılandırma ile ilgili her şeyi tutabilir olduğunu. Bu dizin sürüm kontrolü altında olabilir, yedeklenebilir, birden çok makinede paylaşılabilir, vb mklink. Dosyaları başka bir konumda tutmak için bir sembolik ( Windows'ta) kullanabilirsiniz.

Örneğin, insanların Gacub'daki Emacs yapılandırmasını sürdürdüklerini görmek oldukça yaygındır. İnit.el dosyaları olan elisp projeleri için Github'da arama yaparak bunun birçok örneğini bulabilirsiniz .


Bu çözümü beğendim ve kullanmak istiyorum ancak yine de nasıl değiştirileceğimi söylemiyoruser-emacs-directory
Startec

Benim önerim sembolik bağlantıları kullanmaktı. Diğer cevapların gösterdiği gibi, Emacs'ın başlatma sırasında okuduğu standart konumlardan birine bir şey koymanız gerekir , tek yaptığı yapılandırma yapılandırmanızı başka bir yerden yüklese bile.
glucas

Manuel bağlantı bozuk.
corvus_192

17

Emacs kullandığım her Windows yüklemesinde .emacs, listelenen konumdaki bir dosyada aşağıdaki kod var :

;; Place this file in C:\Users\Username\AppData\Roaming and point to the appropriate files
(setq user-init-file "C:/path/to/.emacs")
(setq user-emacs-directory "C:/path/to/.emacs.d/")
(setq default-directory "C:/whatever/you/want/to/start/in")
(setenv "HOME" "D:/my/home/directory")
(load user-init-file)

Bu şekilde kendimi .emacsve .emacs.d/istediğim her yere koyabilirim .


Teşekkür ederim, neredeyse ihtiyacım olan şey. Ben varsayılan dizini ve sentenv HOME bıraktı ama aksi takdirde setq için gereken bu!
Grant Bowman

Ryan'ın cevabını denedim. Ancak, şimdi bu dosyayı AppData \ Roaming klasöründeki emacs içinde açamıyorum. Nazikçe özür dilerim, yorum ekleyemediğim için henüz 50 puanım yok.
Sreekumar R

@SreekumarR Bir "Cevap" göndermek yerine, bununla bağlantılı yeni bir soru sormalısınız
Andrew Swann

@SreekumarR Yeni bir sorunuz varsa, lütfen Soru Sor düğmesini tıklayarak sorun . Bağlam sağlamaya yardımcı oluyorsa bu soruya bir bağlantı ekleyin. - Yorumdan
Stefan

5

.Emacs dosyanız HOMEdizininize girer . Gönderen Emacs kılavuzda:

HOME'un Windows eşdeğeri, kullanıcıya özgü uygulama veri dizinidir. Gerçek konum Windows sürümüne bağlıdır ...

HOME ortam değişkenini açıkça sisteminizdeki herhangi bir dizine işaret edecek şekilde ayarlayarak HOME'un bu varsayılan değerini geçersiz kılabilirsiniz. HOME, komut kabuğu isteminden veya 'Bilgisayarım'ın' Özellikler 'iletişim kutusundan ayarlanabilir. HOME ayrıca sistem kayıt defterinde ayarlanabilir, bkz. MS-Windows Kayıt Defteri.


1
Evet, giriş dizinini nasıl ayarlayacağımı biliyorum, ancak sürüm kontrolü nedenleriyle, emac'leri farklı bir dizinden okumak için ayarlamak istiyorum (böylece emac'lara özgü bir dizine sahip olabilirim)
Startec

3
Bu kesmek Emacs ana dizin olarak başka bir şey düşünmek yapar unutmayın.
wasamasa

@wasamasa - Ben buna "hack" demezdim. Emacs 25 derlememde, bir ortam değişkeni ile "HOME" ayarlamazsanız, varsayılan olarak Emacs yükleme dizini kullanılır. "HOME", kullanıcının ana dizinini düşündüğü şekilde ayarlanmalıdır ve ortam değişkenini ayarlamak, bunu yapmanın amaçlanan standart yoludur. Unix sistemlerinde bu genellikle oturum açma işlemi sırasında kullanıcı için zaten yapılır, ancak Windows'ta bunu manuel olarak yapmanız gerekir.
TED

Bunun amacı, HOMEdizininizi normalde düşündüğünüz şeyi çılgınca farklı bir şeye dönüştürmektir. Bu yüzden neden bu değişikliği bir hack olarak adlandırıyorum. Uygun değerine ayarlamak açıktır.
wasamasa

2

Diyorsun:

Nasıl ev dizini ayarlamak sürüm denetim nedenleriyle biliyorum (böylece emacs için özel bir dizin olabilir) farklı bir dizinden okumak için emacs ayarlamak mümkün istiyorum .

İnit dosyanız herhangi bir yere koyabileceğiniz ana dizininize gider. Görünüşe göre Emacs'ın yüklediği şeyler için farklı bir dizine sahip olmak istiyorsunuz. Problem değil. İnit dosyanızı ana dizininize koyun ve bu dosyanın değişken değerine başka bir dizin eklemesini load-pathve ardından kullanmak istediğiniz diğer Emacs kitaplıklarını gerektirmesini sağlayın . Bu kütüphaneleri diğer dizine koyun.

IOW, init dosyanızın yüklemek istediğiniz Emacs kitaplıklarını sakladığınız dizinin kurulumunun ötesinde hiçbir şey içermesi gerekmez.



0

Eğer almayı düşünecek (setq user-init-file "C:/path/to/.emacs")ve @ryan önerdiği diğer hatlar içerisine site start.el

Sitenizde bir site başlangıç ​​dosyası da olabilir; buna site-start.el adı verilir. Default.el gibi Emacs da bu dosyayı Lisp kütüphaneleri için standart arama yolu üzerinden bulur. Emacs, init dosyanızı yüklemeden önce bu kitaplığı yükler.

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.