Opsi apa yang ada untuk menulis teks non-pemrograman yang lebih baik di Emacs?

58

Ini adalah percabangan dari pertanyaan Pilihan apa yang ada untuk melakukan pemeriksaan ejaan di Emacs?

Karena saya sedang melakukan banyak tugas non-pemrograman di Emacs, saya bertanya-tanya apakah Emacs dapat mendukung saya dalam menulis teks yang lebih baik .

Jadi, mari kita buka dengan frasa pertanyaan wajib

Apakah ada paket / pustaka / built-in yang dirancang untuk membantu saya menulis teks yang lebih baik, lebih benar, dan ringkas di Emacs?

Secara khusus,

  • untuk pemeriksaan ejaan tata bahasa . Sesuatu yang mirip dengan (tapi mudah-mudahan lebih baik daripada) pemeriksa ejaan MS Word yang mengakui jika kalimat secara tata bahasa salah

  • untuk meningkatkan frase Anda dan ekspresi yang Anda gunakan. Sesuatu di sepanjang garis Dead Poets Society :

    Jadi hindari menggunakan kata 'sangat' karena itu malas. Seorang pria tidak terlalu lelah, dia kelelahan. Jangan gunakan sangat sedih, gunakan murung. [...]

  • untuk apa pun yang saya lupa atau tidak sadari tetapi Anda dapat memikirkan (terkait dengan frasa / bahasa, ya ...)

elemakil
sumber
"Apa pun yang saya lupa" pada dasarnya terlalu luas. "Meningkatkan frase Anda" juga sangat kabur.
Gilles 'SO- stop being evil'
Oleh karena itu saya telah membatasi "apa pun" dengan bagian itu dalam tanda kurung ... Juga, saya tidak melihat dengan cara apa "peningkatan frasa Anda" bisa kabur dalam konteks penulisan.
elemakil
1
Memperbaiki frase Anda dll. Di luar topik di sini, saya pikir. Ada situs SE untuk belajar menulis yang lebih baik. Pertanyaan Anda harus dibatasi pada bagaimana Emacs dapat membantu Anda menulis dan mengedit teks. Dan itu sudah sangat luas - bisa dianggap terlalu luas untuk satu pertanyaan. Bisakah Anda bayangkan jika semua pertanyaan tentang bantuan tulisan digabungkan menjadi satu pertanyaan saja? Anda akan jauh lebih baik berfokus pada satu hal pada satu waktu. Dan semua orang akan mendapat manfaat dari itu juga.
Drew
1
Trad Unix telah styledan diction, dan saya samar-samar menyadari upaya untuk mengimplementasikannya kembali sebagai open source . Jika alat benar-benar berfungsi, menambahkan pembungkus Emacs harus mudah.
tripleee
2
Komputer tidak dapat secara efektif memperbaiki tulisan Anda, setidaknya saat ini. Geoffrey K. Pullum dan Mark Liberman banyak menulis tentang ini, misalnya, lihat itre.cis.upenn.edu/myl/languagelog/archives/005061.html atau languagelog.ldc.upenn.edu/nll/?p=10416 As contoh betapa konyolnya ini, saya menginstal writegood-modedan menarik di paragraf pertama "My Old Man" (dari tautan di atas). writegood-modemengidentifikasi "orang tua saya cocok untuk orang gemuk" sebagai pasif, yang bukan. Sistem ini a) tidak berfungsi dengan baik dan b) didasarkan pada aturan yang buruk tentang penulisan yang baik.
Erik Hetzner

Jawaban:

64

Saya pribadi tetap menulis hal-hal org-modedengan flyspell-modedan langtool...

org-modefantastis untuk mengetik segala jenis dokumen dengan cepat di Emacs, flyspell menangani pengejaan, dan langtool khawatir tentang tata bahasa. Semuanya juga sangat dapat disesuaikan, sehingga Anda dapat menyesuaikan apa pun dengan isi hati Anda.

Ini adalah sedikit tip-up cepat dalam mode-org dengan langtool dan flyspell diaktifkan; tidak ada yang terlalu istimewa.

Jika saya menjalankan langtool-correct-bufferseperti yang disarankan, setiap kesalahan tata bahasa yang ditemukan langtool disorot satu per satu dengan sejumlah saran di buffer bawah. Saya dapat memilih salah satu dari kandidat ini dengan tombol angka yang sesuai, atau lewati saja dengan [Space bar].

Selain itu, flyspell memungkinkan saya [Klik Tengah] pada kata-kata yang salah eja untuk melihat saran ejaan.

org-modememiliki banyak format ekspor; Anda dapat mengekspor dokumen Anda sebagai PDF, ODT, atau bahkan sebagai HTML. (Anda dapat mengekspor menggunakan C-c C-edi org-mode)

Sekarang saya telah menerbitkan karya saya sebagai PDF menggunakan LaTeX, inilah yang saya lihat ketika saya membukanya di PDF viewer ...

Mungkin ini adalah cara termudah untuk membuat dokumen yang tampak mewah dalam lingkungan penulisan yang relatif baik di Emacs ...

Berita baiknya adalah org-modedan flyspell-modedisertakan secara default dengan sebagian besar versi Emacs. Berita buruknya adalah langtool tidak, dan itu agak besar, dan itu membutuhkan Java ... Tetapi jika itu tidak menghalangi Anda:

Langtool adalah pemeriksa tata bahasa yang biasanya dipasangkan dengan Openoffice atau Libreoffice. Alat itu sendiri adalah utilitas baris perintah yang sederhana, sehingga relatif mudah untuk berinteraksi dengan program lain; seseorang menghubungkannya dengan Emacs.

Untuk menambahkannya di Emacs, Anda dapat menginstalnya dengan M-x package-install langtool... Atau, jika Anda tidak memiliki pengaturan repo yang tepat (saya menggunakan yang disarankan di sini .), Anda bisa mendapatkan .elfile dan memasukkannya secara manual dari sini .

Saat ini saya sudah memasang kait mode-org saya seperti ini. (Memotong bit yang tidak relevan.)

(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"))))

Jelas, Anda ingin mengganti /path/to/LanguageTool.jardengan jalur yang sebenarnya untuk itu di sistem Anda. Ini adalah file .jar portabel, sehingga lokasi tidak terlalu penting.

Juga, tidak seperti flyspell-mode, langtool mengharuskan Anda untuk menjalankan M-x langtool-checkketika Anda ingin memeriksa tata bahasa buffer ... Jadi Anda tidak memiliki pemeriksaan tata bahasa yang bagus saat Anda mengetik saat ini.

org-modedapat melakukan banyak hal, dan dapat digunakan untuk menulis file catatan kecil sederhana, esai lengkap dengan grafik mewah, artikel, buku, apa saja ... Tapi karena bisa melakukan banyak hal, agak sulit untuk mengetahui dari mana memulainya. Saya menemukan itu paling mudah untuk belajar dengan memulai dengan cara yang mungkin Anda dapat mengekspor org-modeberkas setelah Anda mempelajari dasar-dasar ... . Situs mode-org sangat membantu dan informatif, dan ada banyak bantuan di halaman info juga ( C-h i, m Org Mode).

Semoga berhasil..! Dan semoga ini membantu.

Archenoth
sumber
Ini bagus ! langtoolterlihat memang sangat menjanjikan.
elemakil
1
Apakah ada cara untuk mengonfigurasi langtoolagar mengetahui (La)TeXsintaks? Saya akan mengatakan sekitar setengah dari kesalahan tersebut adalah positif palsu yang disebabkan oleh (La)TeXsintaksis yang sedikit mengganggu.
elemakil
1
Sayangnya, tidak sepengetahuan saya. Saya biasanya menulis barang-barang saya di org polos dengan sangat sedikit LaTeX kecuali untuk petunjuk dalam org LaTeX. (Seperti #+LaTeX_CLASS_OPTIONS: [hidelinks,11pt]) Dengan begitu saya tidak punya apa-apa yang langtoolakan diambil. Itu bukan untuk mengatakan cara untuk mengubah di mana langtool tidak ada tentu saja, tetapi hanya bahwa itu di luar pengetahuan khusus saya tentang masalah ini. Maaf..!
Archenoth
15

Menulis kategori EmacsWiki adalah tempat untuk memulai.

Ini daftar lusinan perpustakaan yang mendukung penulisan teks menggunakan Emacs, dengan deskripsi satu baris dan tautan ke halaman detail.

Tidak ada gunanya mendaftar info seperti itu lagi di sini - lihat di sana.

(Tapi mungkin yang lain di sini akan memiliki rekomendasi khusus.)

Saya hanya akan menyebutkan halaman subkategori Thesauri dan Sinonim , yang memiliki lebih banyak tautan ke informasi tentang perpustakaan yang mendukung pencarian sinonim.

Drew
sumber
Rekomendasi itu dan pengalaman pribadi dengan berbagai pilihan adalah hal yang paling saya minati :-)
elemakil
Baik. Anda juga harus menemukan banyak hal di halaman wiki untuk topik ini.
Drew
@Drew: langtool tidak ada pada halaman emacswiki.
Tobias
@tobias: Ya, tambahkan langtool ke daftar di wiki (siapa pun dapat mengedit wiki - ini adalah wiki ;-)).
Drew
Selesai. BTW: Bisakah Anda melihat beberapa pertanyaan + dired (IMHO menarik) . Terima kasih sebelumnya.
Tobias
15

Saya menulis novel menggunakan Emacs, dan telah mengembangkan alur kerja dari waktu ke waktu berdasarkan keunggulan unik tertentu darinya. (Contoh: Buku terbaru saya dikandung, disusun, dan diedit dengan Emacs.) Yang mengatakan, itu bukan jalan tanpa kesulitan.

  • Mode-Org

    Org-mode adalah alasan saya mulai menggunakan Emacs. Mampu melipat dan membuka bagian dari manuskrip ~ 50K-kata sangat berharga. Saya sebelumnya menggunakan program Scrivener tetapi menjadi kecewa dengan .scrivfile - file teksnya yang kembung dan tidak jelas . Org-mode juga memiliki kemampuan untuk memindahkan bab ( treesdan subtrees) dengan mudah (dengan M-arrow_key).

  • Manipulasi Teks

    Selain sejumlah emacs' teks-temuan, mengiris, dan utilitas paste ( C-s, M-y, dll dll) saya menggunakan modus dewa dan modus avy untuk menemukan jalan di sekitar penyangga. Pengeditan modal yang diaktifkan oleh mantan membantu dengan arthritis saya. Yang terakhir adalah cara yang sangat cepat untuk menavigasi layar hanya dengan beberapa penekanan tombol (biasanya pada baris rumah).

  • Flyspell

    Ini adalah pemeriksa ejaan yang sangat memadai yang bermanfaat bagi saya setiap hari.

  • Magit

    Saya baru-baru ini mulai menggunakan Git via Bitbucket untuk mengelola pekerjaan saya dengan kontrol versi. Saya seorang pemula, tetapi ada keuntungan luar biasa, dan Magit adalah antarmuka yang sangat baik untuk sistem itu. Meskipun Git tidak tepat dioptimalkan untuk penulisan novel, ia bekerja dengan cukup baik.

  • TODO dan KOMENTAR

    Org-mode memiliki kemampuan untuk menentukan pekerjaan yang harus dilakukan. Dengan MS besar mungkin ada 40 atau lebih hal yang perlu saya ingat, dari kecil ke besar. Ini dapat diidentifikasi dan bahkan diberi peringkat dengan kata kunci TODO . Juga, berbagai catatan dan tajuk ide dapat dibuat lebih dulu COMMENT, yang tidak akan diekspor saat saya mengirim file .odt.

  • Jendela terpisah

    Saya sering mengerjakan file dengan jendela terpisah, memperlihatkan dua lokasi dalam sebuah cerita. Saya sering membandingkan satu lokasi dengan yang lain. Untuk waktu yang lama saya melakukan ini dengan split-window-right( C-x 3), tetapi saya baru saja beralih ke clone-indirect-buffer-other-window( C-x 4 c). Keuntungannya di sini adalah bahwa jika saya mengubah keadaan lipat jendela A, itu tidak mengubah keadaan lipat jendela B.

  • Satu Kerugian

    Penerbitan sastra berjalan di MSWord. Hal ini dimungkinkan untuk mendapatkan dari .orgke .doctetapi tidak, bagi saya, mudah. Saat ini saya menggunakan Emacs ' org-exportuntuk mengirim file .odt, yang saya edit dengan Libreoffice . Saya secara manual, atau dengan makro, mencapai format yang diperlukan untuk dunia penerbitan yang lebih besar seperti yang saya tahu, lalu menyimpan file ke .docFormat tidak kompleks, tetapi diperlukan.

    Proses editorial melibatkan banyak bolak-balik, yang berarti bahwa saya secara serial mengekspor ke Libreoffice dan mengimpor kembali ke Emacs. Di akhir Emacs, makro dapat mengambil tanda bintang untuk berita utama saya dan meluruskan kutipan cerdas Word. Saat ini saya tidak punya solusi yang baik untuk cetak miring. Terkadang saya memperkenalkan kesalahan. Jika Emacs bukan lingkungan penyuntingan teks yang menakjubkan, saya tidak akan menderita karenanya.

    Mickey Petersen memiliki posting blog yang sangat bagus yang menggambarkan alur kerjanya sendiri untuk bukunya Mastering Emacs, yang menggunakan diffbuffer untuk menyortir perubahan dan komentar (di luar ken saya saat ini), dan juga mengharuskan editor / penerbit sastranya untuk melihat file teks biasa (yang saya dapatkan pushback, ketika saya sudah mencobanya).

  • Kesimpulan

    Emacs adalah alat paling efektif yang saya temukan untuk menulis dan mengedit novel. Ada juga banyak mode yang mungkin berguna bagi penulis dari jenis prosa lainnya (seperti blog org2 untuk menyusun dan memposting blog Wordpress dan AUCTeX untuk menulis file LaTeX).

    Saya ingin melihat masa depan di mana hubungan antara .txtdan .doclebih lancar untuk jenis tulisan yang saya lakukan. Ini termasuk:

    • mengatur Emacs untuk menggunakan spasi ganda atau spasi tunggal saat diminta
    • menyisipkan jeda halaman manual (misalnya, setelah halaman judul)
    • cetak miring yang tidak gagal di sekitar beberapa tanda baca
    • membuat tajuk sederhana yang dibenarkan benar di semua halaman selain judul

    Ada beberapa solusi (di sini ada posting blog oleh Sean Miller tentang membuat Emacs untuk secara konsisten menunjukkan huruf miring yang mencakup tanda baca, yang mendorong penggunaan ruang nol-lebar), dan tentu saja hal-hal yang saya belum tahu bagaimana melakukannya sebagai seseorang yang datang dari sastra daripada sisi pemrograman dari dunia pengeditan teks.

Beberapa waktu yang lalu saya berkesempatan menemukan posting newsgroup oleh rms berjudul "Emacs as word processor":

25 tahun yang lalu saya berharap kami akan memperluas Emacs untuk melakukan pengolah kata WYSIWG. Itu sebabnya kami menambahkan properti teks dan font lebar variabel. Namun, masih banyak fitur yang diperlukan untuk mencapai hal ini.

Bisakah orang mulai bekerja pada fitur yang dibutuhkan?

Saya ingin melihat masa depan di mana saya bisa melakukan semua pekerjaan sastra saya di Emacs tanpa harus meluncurkan editor lain. Saya tidak ada di sana sekarang, tetapi bagaimanapun juga saya senang secara keseluruhan, karena utilitas yang luar biasa dari editor ini lebih dari sepadan dengan pekerjaan ekstra pada akhir ekspor.

Steven Arntson
sumber
1
mungkin undoc akan membantu Anda? importir doc untuk emacs emacswiki.org/emacs/UnDoc
Jason Mirk
Saya akan lihat. Saya telah menggunakan antiword sebelumnya, dan itu lebih berhasil daripada nilainya, karena memformat perubahan yang terjadi selama ekstraksi. Terima kasih atas sarannya!
Steven Arntson
11

Putar jawaban asli ke pertanyaan yang ditautkan .

  • Tata Bahasa: Saya belum mengetahui adanya pengurai tata bahasa khusus untuk emacs. Saya akan menyebutkan writegood-modetersedia dalam MELPA yang menyoroti kata - kata musang dan suara pasif di buffer. Itu membuat Anda setengah jalan ke sana.

    Pustaka lain yang mungkin bermanfaat adalah dupwords.elyang dapat menyorot jika kata tertentu (biasanya kata benda dan kata ganti) digunakan lebih dari sekali dalam kalimat yang sama. Ini lebih umum daripada menemukan kata-kata yang berdekatan berulang yang dapat ditangani oleh flyspell.

  • Hal lain: Memperbaiki bahasa secara umum adalah masalah yang sulit. Yang sedang berkata, jika ada program / skrip eksternal di daerah ini, biasanya mudah membuatnya antarmuka dengan emacs.

Jika Anda menggunakan LaTeX untuk menulis, saya pribadi menemukan skrip ruby ​​berikut cukup berguna untuk memeriksa gaya dan konsistensi. Saya hanya memanggil perintah shell dari minibuffer itu sendiri. Penampil yang mampu memajukan dan membalikkan pencarian juga berharga saat mengoreksi. Pada MS Windows, saya menggunakan sumatra-forwardpaket dari ELPA untuk pencarian maju di SumatraPDF viewer.

  1. cek gaya oleh Neil Spring
  2. konsistensi tanda hubung oleh Neil Conway
Vamsi
sumber
0

Tip ini akan memungkinkan Anda untuk memformat kata / wilayah (cetak tebal, miring, serang, tetapi juga paren, tanda kutip, dll) dengan satu penekanan tombol , alih-alih menambahkan ' /', ' *', dll. Di awal dan di akhir teks Anda. Saya menemukan ini berguna saat menulis, seperti ketika membaca kembali dan menyempurnakan teks tertulis:

(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))

Kode ini untuk mendapatkan kata / wilayah yang tebal. Yang harus Anda lakukan adalah untuk menggantikan pertama dan kedua ' *' di (insert-pair 1 ?* ?*)menurut jenis format yang Anda inginkan. Untuk parens, ikuti (insert-pair 1 ?\( ?\))

Ikat saja kunci untuk itu dan Anda selesai:

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

Catatan: Saya merasa bebas untuk menambahkan sedikit perubahan pada kode yang saya curi di sini. Saya menambahkan (forward-word) (right-char)di akhir fungsi karena ketika Anda sedang menulis dan ingin memformat kata, Anda ingin pointpergi setelah karakter format, sehingga Anda dapat terus menulis setelah. Tetapi Anda mungkin ingin menghapus paren atau kutipan (right-char), untuk tetap berada di dalam paren atau kutipan dan terus menulis.

Saya bukan seorang programmer, hanya seorang emacs enthousiast, bermain di waktu dengan kode yang ada. Dan saya ingin emacs menjadi pengolah kata saya!

pseudomyne
sumber