Emacs'ta programlama dışı daha iyi metin yazmak için hangi seçenekler var?


58

Bu soruya bir çatalı Emacs yazım denetimi yapmak için hangi seçenekler var?

Çünkü şu anda Emacs'ta pek çok programlama dışı görev yapıyorum. Emacs'ın daha iyi metinler yazmada beni destekleyip desteklemediğini merak ediyorum .

Öyleyse zorunlu soru cümlesiyle açalım.

Emacs'ta daha iyi, daha doğru ve özlü metinler yazmamda bana yardımcı olacak herhangi bir paket / kütüphane / yerleşik yazı var mı?

özellikle,

  • için gramer yazım denetimi . Bir cümlenin gramer olarak yanlış olup olmadığını anlayan MS Word yazım denetleyicisine benzer (ancak umarım daha iyi)

  • ifadelerinizi ve kullandığınız ifadeleri geliştirmek için. Ölü Ozanlar Cemiyeti sınırları boyunca bir şeyler :

    Bu yüzden 'çok' kelimesini kullanmaktan kaçının çünkü tembel. Bir erkek çok yorgun değil, çok yorgun. Çok üzücü kullanma, morose kullan. [...]

  • hangi bir şey için ben unuttum ya farkında değilim ama aklınıza gelebilecek (iyileştirme ilgili duh, cümleleme / dil ...)


“Unuttuğum her şey” aslında çok geniş. “Cümlenizi geliştirmek” de belirsizdir.
Gilles 'SO- kötülük yapmayı bırak'

Bu yüzden parantez içindeki kısımla "hiçbir şeyi" sınırlandırdım ... Ayrıca, "ifadenizi geliştirmenin" ne kadar mümkün olduğunu, yazı bağlamında belirsiz olabileceğini görmüyorum.
elemakil

1
Ifade geliştirmek vb burada konu dışı, düşünmeliyim. Daha iyi yazmayı öğrenen SE siteleri var. Sorunuz, Emacs'in metin yazmanıza ve düzenlemenize nasıl yardımcı olabileceği ile sınırlı olmalıdır . Ve bu zaten çok geniş - tek bir soru için çok geniş olarak kabul edilebilir. Yazma yardımı ile ilgili tüm soruların sadece bir sorunuzla birleştirildiğini hayal edebiliyor musunuz? Bir seferde bir şeye odaklanmaktan çok daha iyi olurdu. Ve diğer herkes de bundan faydalanabilir.
Drew

1
Trad Unix vardı styleve dictionve ben çabası içinde belli belirsiz farkındayım açık kaynak olarak onları reimplement . Araçlar gerçekten işe yararsa, bir Emacs sarıcısı eklemek çok kolay olmalıdır.
üçlü

2
Bilgisayarlar en azından şu anda yazınızı etkili bir şekilde geliştiremez. Geoffrey K. Pullum ve Mark Liberman çok, örneğin, bakınız bu konuda yazmak itre.cis.upenn.edu/myl/languagelog/archives/005061.html veya languagelog.ldc.upenn.edu/nll/?p=10416 olarak Bunun ne kadar saçma olduğuna bir örnek, writegood-mode"Yaşlı Adamım" ın ilk paragrafına kurdum ve batırdım (yukarıdaki bağlantıdan). writegood-mode"Yaşlı adam şişman bir adam için kesildi" ifadesini pasif olarak tanımlar. Bu sistemler a) iyi çalışmaz ve b) iyi yazma ile ilgili kötü kurallara dayanır.
Erik Hetzner

Yanıtlar:


64

Ben şahsen bir şeyler yazmaya sopa org-modeile flyspell-modeve langtool...

org-modeEmacs'ta her türlü belgeyi hızlı bir şekilde yazmak için harika, flyspell yazım işleriyle ilgileniyor ve langtool dilbilgisi için endişeleniyor. Her şey de son derece özelleştirilebilir olduğundan, kalbinizin içeriğine göre herhangi bir şeyi özelleştirebilirsiniz.

Burada langtool ve flyspell etkin olan org modunda hızlı bir küçük yazma var; çok özel bir şey yok.

Koşarsam langtool-correct-buffero da anlaşılacağı gibi, bulunan langtool herhangi gramer hataları alt tampon yer alan önerilerden bir sayı ile tek tek vurgulanır. Bu adaylardan herhangi birini ilgili sayı tuşuyla seçebilir veya [Boşluk çubuğu] ile üstlerine atlayabilirim.

Buna ek olarak, flyspell yazım önerilerini görmek için yanlış yazılmış kelimelere [Orta Tıklama] yapmama izin veriyor.

org-modebir ton ihracat formatına sahiptir; belgenizi PDF, ODT veya hatta HTML olarak dışa aktarabilirsiniz. (Kullanarak dışa aktarabilirsiniz C-c C-eiçinde org-mode)

Şimdi şaheserimi LaTeX kullanarak bir PDF olarak yayınladığımdan beri, bir PDF görüntüleyicide açtığımda gördüğüm şey bu ...

Muhtemelen Emacs'ta iyi görünümlü bir yazı ortamı içinde şık görünümlü belgeler oluşturmanın en kolay yolu ...

İyi haber olduğunu org-modeve flyspell-modeEmacs çoğu sürümleri ile varsayılan olarak dahil edilir. Kötü haber şu ki langtol değil, biraz büyük ve Java gerektiriyor ... Ama eğer seni caydırmazsa:

Langtool , genellikle Openoffice veya Libreoffice ile eşleştirilmiş bir dilbilgisi denetleyicisidir. Aracın kendisi basit bir komut satırı aracıdır, bu nedenle diğer programlarla arabirim oluşturmak nispeten kolaydır; Birisi Emacs ile arayüze girdi.

Emacs'a eklemek için, onu yükleyebilirsiniz M-x package-install langtool... Veya, doğru depoları ayarlamıyorsanız ( burada önerilenleri kullanırım .), .elDosyayı alabilir ve buradan manuel olarak ekleyebilirsiniz .

Şu anda org modu kancam bu şekilde ayarlanmış durumda. (Alakasız bitlerin kırılması.)

(add-hook 'org-mode-hook (lambda ()
   (progn
     ;; Snipped
     (auto-fill-mode t)

     ;; Spelling
     (flyspell-mode t)

     ;; Grammar
     (require 'langtool)
     (setq langtool-language-tool-jar "/path/to/LanguageTool.jar"))))

Açıkçası, /path/to/LanguageTool.jarsisteminizde gerçek yolu ile değiştirmek istersiniz . Taşınabilir bir .jar dosyası, bu nedenle konumu gerçekten önemli değil.

Ayrıca, tersine flyspell-mode, langtool M-x langtool-checktamponu kontrol etmek için dilbilgisi kontrol etmek istediğinizde çalıştırmanızı gerektirir ... Yani şu anda yazarken süslü dilbilgisi denetimine sahip değilsiniz.

org-modeBir ton yapabilir ve basit küçük notlar dosyaları yazmak için kullanılabilir, süslü grafikler, makaleler, kitaplar ile kompozisyonları tamamlayın, siz adlandırın ... Ama bu kadarını yapabildiği için nereden başlayacağınızı bilmek biraz zor. Temel bilgileri öğrendikten sonra bir org-modedosyayı dışa aktarabileceğiniz olası yollardan başlayarak öğrenmenin en kolay yolu olduğunu öğrendim . Org-mode'un sitesi çok yardımsever ve bilgilendirici ve bilgi sayfalarında da pek çok yardım var ( , ).C-h im Org Mode

İyi şanslar..! Ve umarım bu yardımcı olur.


Bu harika ! langtoolgerçekten çok umut verici görünüyor.
elemakil

1
Sözdiziminden langtoolhaberdar olacak şekilde yapılandırmanın bir yolu var mı (La)TeX? Hataların yaklaşık yarısının (La)TeXbiraz sinir bozucu olan sözdiziminden kaynaklanan yanlış pozitif olduğunu söyleyebilirim .
elemakil

1
Maalesef bildiğim kadarıyla değil. Eşyalarımı genellikle org LaTeX yönergeleri dışında çok az LaTeX içeren düz org yazıyorum. (Gibi #+LaTeX_CLASS_OPTIONS: [hidelinks,11pt]) Bu şekilde langtoolalacak hiçbir şeyim yok . Bu, langtoolun elbette nerede olmadığını değiştirmenin bir yolunu söylemek değil, sadece konu hakkındaki özel bilgimin ötesinde olduğunu söylemek. Üzgünüm..!
Archenoth

15

EmacsWiki kategori Yazma başlangıç noktasıdır.

Tek satır açıklamaları ve ayrıntı sayfalarına bağlantılar içeren Emacs kullanarak metin yazmayı destekleyen düzinelerce kitaplığı listeler.

Bu tür bilgileri burada tekrar listelemek bir anlam ifade etmiyor - oraya danışın.

(Ama belki de burada başkalarının özel önerileri olacaktır.)

Eş anlamlı aramayı destekleyen kitaplıklar hakkında daha fazla bağlantıya sahip olan sadece Thesauri ve Eş anlamlı alt kategori sayfasından bahsedeceğim .


Bu tavsiyeler ve farklı seçeneklerle kişisel deneyim, en çok ilgilendiğim şey :-)
elemakil

İnce. Ayrıca, bu konuyla ilgili wiki sayfalarında bolca bilgi bulmalısınız.
Drew

@Drew: langtool emacswiki sayfasında eksik.
Tobias,

@tobias: Evet, lütfen wiki'deki listeye langtool ekleyin (herkes wikiyi düzenleyebilir - bu bir wiki ;-)).
Drew,

Bitti. BTW: Eğer bir göz alabilir bazı (IMHO ilginç) + soru dired . Şimdiden teşekkürler.
Tobias

15

Emacs'ı kullanarak romanlar yazıyorum ve zaman içinde kendine özgü avantajlara dayanan bir iş akışı geliştirdim. (Örnek: En son kitabım Emacs ile tasarlandı, beslendi ve düzenlendi.) Bu, zorluk çeken bir yol olmadığını söyledi.

  • Org modu

    Org modu Emacs kullanmaya başlamamın nedeni. ~ 50K kelimelik bir el yazmasının bölümlerini katlayabilmek ve açabilmek çok değerlidir. Daha önce Scrivener programını kullandım ama şişkinliği ve açık metin .scrivdosyaları ile ilgisiz kaldım . Org modu ayrıca bölümleri ( treesve subtrees) kolayca (birlikte M-arrow_key) hareket ettirme yeteneğine de sahiptir .

  • Metin İşleme

    Metin bulma, dilimleme ve yapıştırma araçlardan emacs' bolluk ek olarak ( C-s, M-yvb vb) kullandığım tanrı modunu ve Avy modunu bir tampon yolumu bulmaya. Eskilerin sağladığı kalıcı düzenleme, artritimde yardımcı oluyor. İkincisi, sadece birkaç tuşa basarak (genellikle ana satırda) ekranda gezinmenin son derece hızlı bir yoludur.

  • Flyspell

    Bu her gün bana yarar sağlayan, yeterli derecede yeterli bir yazım denetleyicisidir.

  • Magit

    Son zamanlarda çalışmalarını sürüm kontrolü ile yönetmek için Git'i Bitbucket üzerinden kullanmaya başladım. Ben bir acemiyim ama muazzam avantajlar var ve Magit bu sistem için mükemmel bir arayüz. Git Roman yazımı için tam olarak optimize edilmese de, yeterince iyi çalışıyor.

  • TODO ve YORUM

    Org modu yapılacak işleri tanımlama yeteneğine sahiptir. Büyük bir MS ile, küçükten büyüğe, hatırlamam gereken 40 veya daha fazla şey olabilir. Bunlar TODO anahtar kelimeleri ile tanımlanabilir ve hatta sıralanabilir . Ayrıca, COMMENTdosyayı gönderdiğimde dışa aktarmayacak olan çeşitli notlar ve fikirler başlıkları önceden görülebilir .odt.

  • Bölünmüş pencere

    Genellikle, hikayede iki yer gösteren ve bölünmüş pencereli bir dosya üzerinde çalışırım. Bir yeri sık sık başka bir yerle karşılaştırırım. Uzun süre bunu split-window-right( C-x 3) ile yaptım ama yakın zamanda clone-indirect-buffer-other-window( C-x 4 c) 'a geçtim . Buradaki avantaj, A penceresinin katlama durumunu değiştirirsem, B penceresinin katlama durumunu değiştirmemesidir.

  • Bir dezavantaj

    Edebi yayıncılık MSWord'da yayınlanmaktadır. Öyle mümkün almak .orgiçin .docama, benim için kolay değil. Halen Libaceoffice ile düzenlediğimorg-export dosyaları taşımak .odtiçin Emac'ları kullanıyorum . Manuel olarak veya makrolarla, daha büyük yayıncılık dünyası için gerekli olan formatlamayı bildiğim gibi yapıyorum, ardından dosyayı kaydetme .docFormatlama karmaşık değil, ancak gerekli.

    Editöryal süreç ileri geri hatırı sayılır derecede ileri sürüyor; bu, seri olarak Libreoffice’e ihracat yaptığım ve Emac’lara yeniden ithal ettiğim anlamına geliyor. Emacs'ın sonunda, makrolar başlıklarımın yıldızlarını alabilir ve Word'ün akıllı alıntılarını düzeltebilir. Şimdilik italik için iyi bir çözümüm yok. Bazen hatalar yapıyorum. Emacs böyle harika bir metin düzenleme ortamı olmasaydı, bundan acı çekmezdim.

    Mickey Petersen, değişiklikleri ve yorumları sıralamak için tamponlar kullanan ( şu an benim kenımın ötesinde) kitabı Mastering Emacs için kendi iş akışını tanımlayan mükemmel bir blog yazısına sahiptir ve aynı zamanda edebi editör / yayıncının düz metin dosyalarına bakmasını gerektirir. (denedim, itiraz aldım).diff

  • Sonuç

    Emacs, roman yazmak ve düzenlemek için bulduğum en etkili araçtır. Ayrıca, başka türden yazarların ( WordPress bloglarını ve LaTeX dosyalarını yazmak için AUCTeX'i oluşturmak ve göndermek için org2blog gibi) kullanabilecekleri birçok mod vardır .

    Ben arasındaki bağlantı nerede bir gelecek görmek isteriz .txtve .docyapmak yazma tür yumuşak oldu. Bu şunları içerir:

    • Emacs'in istendiğinde çift veya tek boşluk kullanmak üzere ayarlanması
    • manuel sayfa sonları ekleme (örneğin bir başlık sayfasından sonra)
    • bazı noktalama işaretlerinin etrafında bozulmayan italik
    • tüm sayfalarda basit ve haklı başlıklar oluşturmak

    Geçici çözümler var ( işte Sean Miller tarafından, Emacs'ın noktalama işaretlerini içeren, sıfır genişlikli bir alanı kullanmayı teşvik eden italikleri tutarlı bir şekilde göstermesini sağlama konusunda bir blog yazısı) ve kesinlikle birinden nasıl geleceğini henüz bilmediğim şeyler var. metin düzenleme dünyasının programlama tarafından ziyade edebi.

Bir süre önce, rms tarafından "Emacs'ı kelime işlemcisi" başlıklı bir haber grubu yayınına katıldım:

25 yıl önce Emacs'ı WYSIWG kelime işlemlerini yapacak şekilde genişletmeyi umuyordum. Bu nedenle metin özellikleri ve değişken genişlikli fontlar ekledik. Bununla birlikte, bunu başarmak için hala daha fazla özellik gereklidir.

İnsanlar lütfen gereken özellikler üzerinde çalışmaya başlayabilir mi?

Emacs'taki tüm edebi çalışmalarımın başka bir editör başlatmak zorunda kalmadan yapabileceğim bir gelecek görmeyi çok isterim. Şu anda orada değilim, ama yine de genel olarak mutluyum, çünkü bu editörün şaşırtıcı faydası, ihracat ucundaki ek çalışmaya değmez.


1
belki undoc sana yardım eder mi? emacs için doc ithalatçısı emacswiki.org/emacs/UnDoc
Jason Mirk

Bir göz atacağım. Antiword'ü daha önce kullanmıştım ve çıkarma sırasında meydana gelen değişiklikleri biçimlendirme nedeniyle değersizdi. Tavsiye için teşekkürler!
Steven Arntson

11

Orijinal cevap kapalı Spin bağlantılı soruya .

  • Dilbilgisi Denetimi: Henüz emacs için özel dilbilgisi ayrıştırıcısının farkında değilim. writegood-modeTampondaki gelincik kelimeleri ve pasif sesi vurgulayan MELPA'dan bahsedeceğim . Seni oraya yarı yolda götürür.

    Bir başka muhtemel faydalı kütüphane, dupwords.elaynı cümle içerisinde belirli bir kelimenin (tipik olarak isimler ve zamirler) birden fazla kullanıldığını vurgulayabilen bir kütüphanedir . Bu, flyspell ile işlenebilecek tekrarlanan bitişik kelimeleri bulmaktan daha geneldir.

  • Başka bir şey: Genel olarak dili düzeltmek zor bir sorundur. Bu alanda herhangi bir harici program / komut dosyası varsa, emacs ile arayüz oluşturması genellikle kolaydır.

Yazmak için LaTeX kullanıyorsanız , kişisel olarak aşağıdaki yakut komut dosyalarını stil ve tutarlılığı kontrol etmek için oldukça yararlı buldum. Mini komutun kendisinden kabuk komutunu çağırdım Düzeltme işleminde ileri ve geri arama yapabilen bir izleyici de değerlidir. MS Windows'ta, sumatra-forwardSumatraPDF görüntüleyicide ileri arama yapmak için ELPA paketini kullanıyorum .

  1. Neil Spring tarafından stil kontrolü
  2. Neil Conway'den tire tutarlılığı

0

Bu ipucu sağlayacak kelimeleri / bölgeler biçimlendirmek (kalın, italik üstünü değil, aynı zamanda, tırnak vb parens) tek bir tuş ile yerine 'ekleme, /' ' *başında ve sonunda, vb' metniniz. Yazarken, yazılı metinleri yeniden okurken ve ince ayar yaparken olduğu gibi yararlı buluyorum:

(defun xa-bold (&optional char)
  (interactive)
  (unless (region-active-p)
    (backward-word)
    (mark-word))
  (if (region-active-p)
      (insert-pair 1 ?* ?*)
    (insert "//")
    (backward-char))
  (forward-word)
  (right-char))

Bu kod kalın bir kelime / bölge almak içindir. Yapmanız gereken tek şey, istediğiniz formatın ne olduğuna göre birinci ve ikinci ' *' (insert-pair 1 ?* ?*)işaretini değiştirmek. Parens için gitmek (insert-pair 1 ?\( ?\))

Sadece bir anahtarını bağlayın ve bitirdiniz:

 (define-key org-mode-map (kbd "M-&") 'xa-bold)

Not: Burada çaldığım kodda küçük bir değişiklik yapmakta özgürdüm. (forward-word) (right-char)İşlevin sonuna ekledim , çünkü bir kelimeyi yazarken ve biçimlendirmek istediğinizde , biçimlendirme karakterinden sonrapoint gitmek istediğinizde , sonra da yazmaya devam edebilirsiniz. Ancak (right-char), parenler veya tırnaklar için kaldırmayı , parenin içinde kalmayı veya alıntı yapmayı ve yazmaya devam etmek isteyebilirsiniz .

Ben bir programcı değilim, sadece varolan kodlarla zaman zaman oynayan bir emac meraklısıyım. Ve emacs'ın kelime işlemcim olmasını istiyorum!

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.