Windows'ta Emacs'ı tek bir örneği başlatacak ve mevcut örnekte dosyaları açacak şekilde ayarlama


18

Özellikle aşağıdakiler de dahil olmak üzere tam Windows deneyimi ile ilgileniyorum:

  • Başlatılmamış bir sunucuyu otomatik olarak başlatma
  • Emacs, sunucuyu kullanacak şekilde nasıl çağrılır (örneğin komut satırından veya üçüncü taraf araçlarından)
  • Bağlam menüsü desteği (örn. Bir dosyayı sağ tıklayın ve görüntüleme ve düzenleme için emac'lara gönderilmesine izin verin)

Böyle bir destek herhangi bir yerde kullanıma hazır mı?

Yanıtlar:


21

Başlatılmamış bir sunucuyu otomatik olarak başlatma

Bu herhangi bir Emacs derlemesi için aynı olmalıdır. Bu pasajı .emacsveya cihazınıza ekleyin .emacs.d/init.el.

(require 'server)
(unless (server-running-p)
  (server-start)) 

Ve sonra sadece runemacs.exederleme ile birlikte gelen yürütülebilir dosyayı çalıştırarak emacs başlatın .

Emacs, sunucuyu kullanacak şekilde nasıl çağrılır (örneğin komut satırından veya üçüncü taraf araçlarından)

Emacs'ın Windows derlemesi emacsclientw.exe, bin/dizinde yürütülebilir bir dosya ile birlikte gelir . Kullanım tam yolunu yapılandırmanız gereken herhangi bir üçüncü taraf araçlar üzerinde seçtiğiniz editörü olarak bu yürütülebilir için.

Bağlam menüsü desteği (örn. Bir dosyayı sağ tıklayın ve görüntüleme ve düzenleme için emac'lara gönderilmesine izin verin)

  1. Bir dosyaya sağ tıklayın, seçin Open With -> Select Default Program.
  2. Açılan pencerede, emacsclientw.exeyukarıda belirtilen yürütülebilir dosyaya gidin ve seçin.
  3. Emacs'ın varsayılan olmasını istemiyorsanız, varsayılan olarak farklı bir program seçerek 1. ve 2. adımları tekrarlayın.

emacsclientw.exe artık içerik menüsünde her zaman bir seçenek olacaktır.


Teşekkürler - sunucu hakkında büyük bir nokta, ben düşünmüyordu.
cristobalito

Emacsclient.exe ile ilgili olarak, bu emacsclientw.exe olmamalı mı? Ayrıca, sunucu çalışmıyorsa alternatif bir düzenleyici belirtmek için bunu -a bayrağıyla çalıştırmanız gerektiğini düşündüm.
cristobalito

Sunucunun yapılandırmamla düzgün çalışmasını sağlamak için EMACS_SERVER_FILE, dizinime işaret eden bir ortam değişkeni de eklemek zorunda kaldım .emacs.d\server.
Ryan

@Ryan Ortam değişkenine ihtiyaç duymadan bu çalışmayı başardım - sadece sunucunun çalıştığından emin olmak için gerekli.
cristobalito

Hmm, benim için Windows'daki (server-running-p)getirileri değerlendiriyorum :other(bu EMACS_SERVER_FILEenv var ayarını denedikten sonra bile
Kaushal Modi

5

Başlatılmamış bir sunucuyu otomatik olarak başlatma

Çok yönelik bir ortam değişkeni tavsiye ALTERNATE_EDITORetmek runemacs.exe. Bu şekilde, sunucu olmasa bile her zaman emacsclient'i arayabilirsiniz. Sadece init dosyanıza (server-start) ekleyin. Bir sunucu olmadığında emacsclient çağrıları ALTERNATE_EDITORbizim durumumuzda emacs olan. Emace init dosyasında bir sunucu başlattığından, emacsclient'a yapılan yeni çağrılar anlık olacaktır.

Emacs, sunucuyu kullanacak şekilde nasıl çağrılır (örneğin komut satırından veya üçüncü taraf araçlarından)

Kullanım emacsclientw.exe -c -n "your_file"açık your_file için. -cArgümanı yeni grafik çerçevesini oluşturur ve -nsunucu durumunu kaybetmeden çerçeveyi kapatmak için izin verir. Hatta *Scratch*ara belleği açmak için dosya adı olmadan da çağırabilirsiniz . Masaüstü kısayolundan da çalışır. Kullanılması emacsclient.exebirkaç saniye istemi bir komut açılacaktır (w eksik unutmayın) diyorsunuz her.

Bağlam menüsüne ekleme

Emacswiki'nin içerik menüsüne Emacs eklemeyle ilgili güzel bir sayfası var . HKEY_CLASSES_ROOT\*Emac'lerle açılacak bir eylem eklemek için kayıt defteri düğümünün düzenlenmesini içerir .


5

Diğerleri sunucu kısmını yanıtladı. İşte UNIX / GNU / Linux benzeri yardımcı programları almak için yaptığım grepve diff:

  1. Cygwin'i yükleyin (bir defalık işlem).
  2. Yük cygwin-mount.el.
  3. Yük setup-cygwin.el.

Ancak, Cygwin'in farklı sürümleri olduğunu unutmayın. Ben eski bir sürümünü (dunno hangisi - söylemek zor, AFAICT) kullanın. Son sürümlerle ilgili sorun yaşayıp yaşamayacağınızı bilmeyin.

Ayrıca bakınız:


Not: cygwin EMACS kullanmayın. GNU yapısını ftp.gnu.org/gnu/emacs/windows
M Smith

Bazı gnu araçlarına sahip olmak için istenmeyen yan etkiler (emacs, gcc, ... gibi diğer gnu windows portlarını kırmak gibi) olabileceğinden Cygwin'i yüklemenizi tavsiye etmiyorum. Bunun yerine GnuWin32 portlarını takın . Paketin tamamını veya seçtiğiniz araçları yükleyebilirsiniz.
Seki

@Seki - Evet, Eli Zaretskii seninle aynı şeyi söylüyor. Söyleyebileceğim tek şey sorunum olmadı (ve Emacs'ı kırma iddianızla ilgili ciddi şüphelerim var ). Ancak (a) Eski bir Cygwin sürümü kullanıyorum ve (b) Cygwin tarafından sağlanan UNIX / GNU Linux yardımcı programlarının çoğunu kullanmıyorum.
Drew

@drew: "emacs'ı kırmak", "tuhaf davranışlara neden olmak" hakkında konuşmak için belki de aşırı olması daha iyi olurdu. Örneğin, eğer Cygwin araçlarının dikkate alınmadığını veya başka yoksa varsayılan olarak alınmadığını dikkatlice kontrol etmezseniz, Cygwin Make MinGW araç zincirini frenler. Marka ile sınırlı değildir, diğer birçok araç karışamaz ve bazen sorunu işaret etmek inceliklidir. Kısacası, ya yerel bir Emacs portunuz var ve yerel GNU araçlarına sahip olmak daha iyidir ya da emacs dahil tüm Cygwin dağıtımını kullanabilirsiniz.
Seki

@Seki: Görünüşe göre asıl amacınız Cygwin ve MingGW'nin birlikte iyi oynamadıkları. Bu benim için şaşırtıcı değil. (FWIW, Cygwin yerine MingGW kullanmaya karşı hiçbir şeyim yok. Benim için Cygwin'i kurmak basitti ve sorunlarla karşılaşmak için yeterince kullanmıyorum.)
Drew
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.