Emacsでより良い非プログラミングテキストを記述するためのオプションはありますか?


58

これは、Emacsでスペルチェックを行うための質問にはどのような選択肢がありますか?

私は現在、Emacsでプログラミング以外の多くのタスクを実行しているため、Emacsがより良いテキストの作成で私をサポートできるかどうか疑問に思っいます。

だから、義務的な質問フレーズで開きましょう

Emacsでより良く、より正確で簡潔なテキストを書くのに役立つパッケージ/ライブラリ/ビルトインはありますか?

具体的には、

  • 以下のための文法スペルチェック。文が文法的に間違っているかどうかを認識するMS Wordスペルチェッカーに似ている(ただし、できればそれよりも良い)

  • フレーズと使用している表現を改善するため。Dead Poets Societyに沿ったもの:

    したがって、「非常に」という言葉は怠け者なので、使用しないでください。男はあまり疲れていません。疲れています。非常に悲しいものを使わないでください。[...]

  • これは何のために、私は忘れてしまったかを認識していないですが、あなたが考えることができる(改善関連当たり前、フレージング/言語...)


「私が忘れていたもの」は本質的に広すぎます。「フレージングの改善」も非常にあいまいです。
ジル「SO-悪であるのをやめる」

それゆえ、私は括弧内のその部分で「何でも」を制限しました...また、「あなたのフレージングの改善」がどのように書くことの文脈で曖昧になり得るかについてはわかりません。
エレマキル

1
ここでフレージングなどを改善することはトピックから外れていると思います。より良い書き方を学ぶためのSEサイトがあります。あなたの質問は、Emacsがどのようにあなたがテキストを書いて編集するのを助けることができるかに制限されるべきです。そして、それはすでに非常に広範です-単一の質問には広すぎると考えることができます。ライティングヘルプに関するすべての質問が1つの質問にまとめられていると想像できますか?一度に一つのことに集中する方がずっといいでしょう。そして、他の誰もがその恩恵を受けるでしょう。
ドリュー

1
Trad Unixは持っていたstyle、そしてdiction、私はそれらをオープンソースとして再実装する試みを漠然と認識している。ツールが実際に機能する場合、Emacsラッパーの追加は簡単です。
トリプリー14年

2
少なくとも現在のところ、コンピューターは効果的に文章を改善することはできません。Geoffrey K. PullumとMark Libermanはこれについて多くのことを書いています。たとえば、itre.cis.upenn.edu / myl / languagelog / archives / 005061.htmlまたはlanguagelog.ldc.upenn.edu/nll/?p=10416 Asを参照してください。これがいかに馬鹿げているかの例で、私writegood-modeは「上の老人」の最初の段落にインストールしてヤンクしました(上のリンクから)。writegood-mode「私の老人は太った男のために切り取られた」ことを受動的であると特定しますが、そうではありません。これらのシステムは、a)うまく機能せず、b)良い文章に関する悪いルールに基づいています。
エリックヘッツナー

回答:


64

私は個人的に物事を書くことに固執org-modeしてflyspell-modelangtool...

org-modeEmacsであらゆる種類の文書をすばやく入力するのに最適です。flyspellはスペルを処理し、langtoolは文法について心配します。すべてが高度にカスタマイズ可能であるため、心のコンテンツに合わせて何でもカスタマイズできます。

以下は、langtoolとflyspellを有効にした、org-modeでのちょっとしたタイプアップです。特別なことは何もありません。

langtool-correct-buffer提案どおりに実行すると、langtoolで見つかった文法エラーが1つずつ強調表示され、下部のバッファーにいくつかの提案が表示されます。これらの候補のいずれかを対応する数字キーで選択するか、[スペースバー]でそれらをスキップできます。

さらに、flyspellでは、スペルミスのある単語を[ミドルクリック]して、スペルの候補を表示できます。

org-mode持っトンエクスポート形式のを、ドキュメントをPDF、ODT、またはHTMLとしてエクスポートできます。(を使用C-c C-eしてエクスポートできますorg-mode

LaTeXを使用して傑作をPDFとして公開したので、これをPDFビューアーで開くと表示されます...

これはおそらく、Emacsの比較的良いライティング環境内で派手なドキュメントを作成する最も簡単な方法です...

幸いなことにorg-modeflyspell-modeほとんどのバージョンのEmacsにはデフォルトで含まれています。悪いニュースは、langtoolはそうではなく、多少大きく、Javaを必要とするということです。

Langtoolは、一般にOpenofficeまたはLibreofficeとペアになっている文法チェッカーです。ツール自体は単純なコマンドラインユーティリティであるため、他のプログラムとのインターフェイスは比較的簡単です。誰かがそれをEmacsとインターフェースしました。

Emacsに追加するには、M-x package-install langtool...でインストールできます。または、正しいリポジトリが設定されていない場合(ここで提案するリポジトリを使用します)、.elファイルを取得して、ここから手動でインクルードできます

現在、このように組織モードフックを設定しています。(無関係なビットを抜粋します。)

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

明らかに、/path/to/LanguageTool.jarシステム上の実際のパスに置き換えてください。これは移植可能な.jarファイルであるため、場所は重要ではありません。

また、flyspell-modelangtoolとは異なり、M-x langtool-checkバッファを文法チェックしたいときにlangtoolを実行する必要があります...ですから、現在入力しているような高度な文法チェックはありません。

org-modeたくさんのことができ、シンプルな小さなノートファイルを書いたり、派手なグラフィック、記事、本でエッセイを完成させたりすることができます。私はそれが始まることで学ぶことが最も簡単だったエクスポートできる方法org-modeファイルをあなたがした後、基礎を学びます...Org-modeのサイトは非常に有用で有益であり、情報ページにも多くのヘルプがあります(C-h im Org Mode)。

幸運を..!これが役立つことを願っています。


これはすごいlangtool本当に有望に見えます。
エレマキル

1
構文をlangtool認識するように構成する方法はあり(La)TeXますか?エラーの約半分は、(La)TeXの構文に起因する誤検知であり、少し面倒です。
エレマキル14年

1
残念ながら、私の知る限りではありません。私は通常、内部組織LaTeXディレクティブを除いて、ごくわずかなLaTeXを使用して単純な組織でコンテンツを作成します。(Like #+LaTeX_CLASS_OPTIONS: [hidelinks,11pt])そのように私がlangtool拾うものは何もありません。もちろん、langtoolが存在しない場所を変更する方法を言うのではなく、単にこのテーマに関する特定の知識を超えているということです。ごめんなさい..!
アルケノス14年

15

EmacsWikiのカテゴリWritingは、開始する場所です。

Emacsを使用したテキストの書き込みをサポートする多数のライブラリを、1行の説明と詳細ページへのリンクとともにリストします。

ここにそのような情報を再度リストする意味はありません-そこに相談してください。

(しかし、おそらくここの他の人が特定の推奨事項を持っているでしょう。)

サブカテゴリページThesauriとSynonymsのみに言及します。同ページには、同義語検索をサポートするライブラリに関する情報へのリンクがあります。


これらの推奨事項とさまざまなオプションの個人的な経験は、私が主に興味を持っているものです:
elemakil

いいよ また、このトピックのWikiページにも多くの情報があります。
ドリュー

@Drew:langtoolがemacswikiページにありません。
トビアス

@tobias:はい、wikiのリストにlangtoolを追加してください(誰でもwikiを編集できます-これはwikiです;-))。
ドリュー

できた ところで:いくつかの(私見興味深い)dired +の質問を見ていただけます。前もって感謝します。
トビアス

15

私はEmacsを使用して小説を書いており、Emacsの特定の固有の利点に基づいて時間をかけてワークフローを開発してきました。(例:私の最新の本は、Emacsで考案、構成、編集されました。)とはいえ、それは困難のない道ではありません。

  • 組織モード

    組織モードは、私がEmacsを使い始めた理由です。〜50Kワードの原稿のセクションを折りたたんだり展開したりできることは非常に貴重です。以前はScrivenerプログラムを使用していましたが、その肥大化した.scrivファイルと平文テキストファイルに幻滅しました。組織モードには、チャプター(treesおよびsubtrees)を(でM-arrow_key)簡単に移動する機能もあります。

  • テキスト操作

    テキスト発見、スライシング、および(貼り付けユーティリティのEmacsの過多に加えてC-sM-yなどなど)私が使っ神モードAvyではモードバッファの周りに自分の道を見つけるために。前者によって可能になったモーダル編集は、私の関節炎に役立ちます。後者は、わずかなキーストローク(通常はホーム行)で画面上を移動する非常に高速な方法です。

  • フライスペル

    これは、毎日私に役立つ完全に適切なスペルチェッカーです。

  • マギット

    最近、Bitbucket経由でGitを使用して、バージョン管理で作業を管理し始めました。私は初心者ですが、大きな利点があり、Magitはそのシステムへの優れたインターフェイスです。 小説の執筆に最適化されているわけではありませんが、十分に機能します。Git

  • TODOとコメント

    組織モードには、実行するジョブを定義する機能があります。大規模なMSの場合、小規模から大規模まで、覚えておく必要があることが40以上あります。これらは、TODOキーワードで識別およびランク付けすることもできます。また、さまざまなメモやアイデアの見出しの前にを付けることができますが COMMENT、ファイルをに送信してもエクスポートされません.odt

  • 分割ウィンドウ

    私はよく、ストーリー内の2つの場所を示す、分割ウィンドウを持つファイルで作業します。私は頻繁にある場所を別の場所と比較します。長い間split-window-rightC-x 3)でこれを行いましたが、最近clone-indirect-buffer-other-windowC-x 4 c)に切り替えました。ここでの利点は、ウィンドウAの折りたたみ状態を変更しても、ウィンドウBの折りたたみ状態は変更されないことです。

  • 1つの欠点

    文学出版はMSWordで実行されます。可能性から取得する .org.docはなく、私のために、簡単ではありません。現在、Emacs ' org-exportを使用して ファイルを移植します。.odtこれはLibreofficeで編集し ます。手動で、またはマクロを使用して、私が知っているように大規模な出版の世界に必要なフォーマットを実現し、ファイルを保存します.doc。フォーマットは複雑ではありませんが、必須です。

    編集プロセスにはかなりのやり取りが伴います。つまり、Libreofficeに順次エクスポートし、Emacsに再インポートします。Emacs側では、マクロは私の見出しのアスタリスクを取得し、Wordのスマートクォートを修正できます。私は現在、斜体の良い解決策がありません。時々エラーが発生します。Emacsがそんなに素晴らしいテキスト編集環境でなかったら、私はこれで苦しむことはなかったでしょう。

    ミッキー・ピーターセンは、記述した優れたブログ記事がある彼自身のワークフローを彼の本のためにマスタリングEmacsに、使用可能diff(現時点では私の県を越えて)変更やコメントをソートするバッファを、また、プレーンテキストファイルを見て彼の文学エディタ/出版社が必要です(試してみたところ、私はこれを押し返しました)。

  • 結論

    Emacsは、小説を書いたり編集したりするのに私が見つけた最も効果的なツールです。他の種類の散文の作成者に役立つ可能性のある多くのモードもあります( Wordpressブログの作成と投稿用のorg2blogや、LaTeXファイル作成用のAUCTeXなど )。

    私が書いている種類のリンク.txtとリンク.docがよりスムーズになった未来を楽しみにしています。これには以下が含まれます。

    • 要求されたときにEmacsがダブルスペースまたはシングルスペースを使用するように設定する
    • 手動改ページの挿入(たとえば、タイトルページの後)
    • いくつかの句読点の周りで失敗しないイタリック体
    • タイトルを除くすべてのページにシンプルで右揃えのヘッダーを作成する

    回避策(存在するここではゼロ幅スペースの使用を奨励Emacsは一貫句読点を含め斜体を表示するために得ることについてショーン・ミラーのブログ記事は、ある)、そして確かに物事が、私はまだから来た誰かとして行う方法がわかりませんテキスト編集の世界のプログラミングというよりも文学的な側面。

しばらく前に、私はrmsによる「ワープロとしてのEmacs」というニュースグループの投稿に出会いました。

25年前、私はEmacsを拡張してWYSIWGワードプロセッシングを行うことを望んでいました。そのため、テキストプロパティと可変幅フォントを追加しました。ただし、これを実現するにはさらに多くの機能が必要です。

人々は必要な機能の作業を始めていただけますか?

私は、別のエディターを起動することなく、Emacsですべての文学作品を作成できる未来を楽しみにしています。私は今そこにいませんが、それでもこのエディタの驚くべきユーティリティはエクスポート側で余分な作業をする価値がある以上、全体的に満足しています。


1
undocが役に立つかもしれませんか?emacsのドキュメントインポーターemacswiki.org/emacs/UnDoc
ジェイソン

ちょっと見てみます。以前にアンチワードを使用したことがありますが、抽出中にフォーマットの変更が行われるため、それは価値がある以上の作業でした。アドバイスをありがとう!
スティーブンアーントソン

11

リンクした質問に対する元の回答をスピンオフします。

  • 文法チェック:emacs専用の文法パーサーはまだ知りません。バッファ内のイタチの言葉と受動態writegood-modeを強調するMELPAで利用できることに言及します。それはあなたをそこに半分道に連れて行きます。

    別の有用なライブラリはdupwords.el、特定の単語(通常は名詞と代名詞)が同じ文で複数回使用されている場合に強調表示することができます。これは、flyspellで処理できる隣接する単語の繰り返しを見つけるよりも一般的です。

  • その他:言語の修正は一般に難しい問題です。そうは言っても、この領域に外部プログラム/スクリプトが存在する場合は、通常、emacsとのインターフェイスを作成するのは簡単です。

書き込みにLaTeXを使用している場合、スタイルと一貫性をチェックするのに次のルビースクリプトが非常に役立つことが個人的にわかりました。ミニバッファー自体からシェルコマンドを呼び出すだけです。順方向検索および逆検索が可能なビューアは、校正時にも価値があります。MS Windowsでは、sumatra-forwardSumatraPDFビューアーでの前方検索にELPAのパッケージを使用します。

  1. ニール・スプリングによるスタイルチェック
  2. ニール・コンウェイによるハイフンの一貫性

0

このヒントは、あなたができるようになります言葉/地域フォーマット(太字、斜体の裏抜け、だけでなく、括弧、引用符など)を1回のキーストロークで、代わりに追加「の/」、「*最初と最後の時など、」あなたのテキスト。書いたテキストを読み直して微調整するときのように、書くときにこれが便利だと思います:

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

このコードは、太字の単語/地域を取得するためのものです。あなたがしなければならないのは、あなたが望むフォーマットのタイプに従って、最初と2番目の「*」を置き換える(insert-pair 1 ?* ?*)ことです。括弧については、 (insert-pair 1 ?\( ?\))

キーをバインドするだけで完了です。

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

注:ここで盗んだコードに小さな変更を加えてもかまいません。(forward-word) (right-char)あなたが書いているときに単語をフォーマットしたいときは、フォーマット文字のpointに行きたいので、後で書き続けることができるので、関数の最後に追加しました。しかし、括弧または引用符を削除して、括弧または引用符の中にとどまり、記述を続けることできます。(right-char)

私はプログラマーではなく、ただのマニアであり、時には既存のコードで遊んでいます。そして、emacsが私のワープロになりたいです!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.