Varolan bir emacs işleminde bir dosyayı komut satırından nasıl açabilirim?


14

Belirli bir proje ile ilgili tüm uygulamaları ve dosyaları başlatacak birkaç komut dosyası var. Ancak, geçerli emac'lerin istenen dosyaları açmasına neden olmak yerine, birden fazla emacs örneği başlatacaktır. Mevcut emacs proje metin dosyalarını yeni bir arabellek içinde açmayı tercih ederim.

Bunu nasıl yapabileceğime dair bir fikrin var mı?


Yanıtlar:


21

M-x server-startEmacs oturumunda, emacsclient -n file1 file2 ...mevcut Emacs'a dosya eklemek için kullanın . Kullanmak isteyebileceğiniz ek seçenekler vardır, örneğin -cdosyaları yeni bir pencerede (çerçeve) açmak için.


teşekkürler dood. Bilmem gereken bu. Henüz 'doğru cevabı' kontrol etmiyorum, çünkü başkalarına katkıda bulunma şansı vermek için her zaman biraz açık tutmanız gerektiğini duydum. Ama cevabınızı bazı senaryolara yazdım.
bev

Normalde, (server-start)sunucuyu el ile başlatmak yerine .emacs dosyanızı koymak istersiniz . (and window-system (server-start))Bir terminalde emacs çalıştırıyorsam sunucuyu başlatmaktan kaçınmak için kullanıyorum .
cjm

Modern Emacs'ta bir terminalde bu kadar faydalıdır; -tseçeneğe bakın .
geekosaur

@cjm - aslında sunucuyu .emacs dosyamda başlatıyorum. Ben sadece kullanmadım :-)
bev

5

Put (server-start)your içinde .emacsdosyanın.

Bunu şuraya ekle ~/.bashrc

alias myedit='emacsclient --alternate-editor="" --no-wait $*' #quotes intentionaly left blank

sonra myediteditör olarak kullanın . -cBir pencere açmak için seçeneği kullanmanız gerekir .

Yani bunu yapabilirsiniz:

myedit -c a-file
run-script #that uses myedit

veya

run-script #that uses myedit
myedit -c

Richard, girdi için teşekkürler. Senaryonuzla hala birkaç şey karıştırıyorum. Birincisi, emacsclient'in -c seçeneği olmadığından, bunun bash bir şey olduğunu varsayıyorum, ama bilmiyorum. İkincisi, neden emac'leri alternatif editör olarak koymuyorsunuz? Teşekkürler
bev

# $ emacsclient --help .... Şu SEÇENEKLER kabul edilir: ... -c, --create-frame Geçerli Emacs çerçevesini kullanmaya çalışmak yerine yeni bir çerçeve oluşturur ... -a EDITÖR, --alternate -editor = EDITOR Editör sunucu çalışmıyorsa geri dönecek EDITOR boş dize ise, Emacs'ı arka plan modunda başlatın ve tekrar bağlanmayı deneyin
ctrl-alt-delor

Diğer ad tanımında konum parametrelerini kullanmanıza (ve aslında istemiyorsanız) gerek yoktur. Nasıl alias foo='echo bar $*'genişlediğini düşünün set quux; foo baz. Konumsal parametreleri kullanmak istiyorsanız, bunu bir kabuk fonksiyonu olarak deneyin:myedit() { emacsclient … "$@"; }
Chris Johnsen
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.