web-dev-qa-db-ja.com

mac os xのemacs、スペルチェックを機能させる方法

私はWindowsからMacに移行しており、emacsを機能させるために一晩中過ごしてきました。

GNU emacs をインストールし、Windows .emacsファイルにコピーしました。これは、スペルチェックを除いて問題なく動作しているようです。 cocoAspell をインストールし、これに従って セットアップ手順 パスを追加してispellをaspellに変更しましたが、スペルチェックを実行すると

Error: The file "/use/local/lib/aspell-0.60/english" can not be opened for reading.

flySpellも機能しません。

間違ったディレクトリを見ているようですが、私はすでに持っています

(setq ispell-program-name "aspell"
      ispell-dictionary "english"
      ispell-dictionary-alist
      (let ((default '("[A-Za-z]" "[^A-Za-z]" "[']" nil
                       ("-B" "-d" "english" "--dict-dir"
                        "/Library/Application Support/cocoAspell/aspell6-en-6.0-0")
                       nil iso-8859-1)))
        `((nil ,@default)
          ("english" ,@default))))

これは、正しい辞書ディレクトリ「/Library/ApplicationSupport/cocoAspell/aspell6-en-6.0-0」を指します。エラーが発生した理由とその修正方法がわかりません。


更新:

これで、GNU emacsとcocoAspellを削除し、@ katspaughが提案したように、homebrewを使用してemacs/aspellを再インストール(およびリンク)しました。上記のコードを削除しました。そのままにしておきます。

(setq ispell-program-name "aspell")

スペルチェックを実行すると、

Searching for program: No such file or directory, aspell

Aspellをbrew link aspellにリンクしましたが、それでも見つからないのはなぜですか?

18
LWZ

実用的な解決策は次のとおりです。

  • インストール 自作
  • brew install emacs --with-cocoa --with-gnutls
  • brew install aspell
  • open -a Emacs
  • M-x ispell

楽しい!

26
katspaugh

Homebrew のaspellを使用しています。単に:

brew install aspell --with-lang-en

次に、brewbinディレクトリがEmacsexec-path変数にあることを確認します。醸造プレフィックスとして/usr/localを使用する場合、そのパスはデフォルトでexec-pathに含まれているため、正常に機能します。それ以外の場合は、.emacsのどこかにこれが必要になります。

  (setq exec-path (append "/path/to/brew/bin" exec-path)))

M-x customize-variable RET exec-path RET」を指定したcustomizeインターフェースを使用して同じことを実行し、GUIを使用してパスを追加することもできます。

これは、 Emacs for Mac OS X からのもの、brewからのもの、またはシステムEmacsを含むすべてのEmacsで機能します。

11
David Caldwell

これがこの問題に対するMacPortsの解決策です。 (これへのクレジット リンク

$ Sudo port install aspell

次に、それぞれの言語サポート用にaspellの辞書の1つをインストールします

$ Sudo port install aspell-dict-en

次に、次の行をinit.elまたは.emacsファイルに追加します。

(setq ispell-program-name "/opt/local/bin/aspell")

それは私のために働いた。

注:「Sudoports install ispell」も同様に機能しますが、aspellほど効率的で柔軟性がありません。

2
Ébe Isaac

OS X 10.12(Sierra)の/ usr/binにシンボリックリンクを作成することは許可されていないか、必要ありません(または良い考えです)。

[iMac ~]$ Sudo ln -s /usr/local/bin/ispell /usr/bin/ispell
ln: /usr/bin/ispell: Operation not permitted

私はそのハックを何年も使用しましたが、最後のアップグレードでそれが削除されたときに、最終的に正しい解決策を見つけることを余儀なくされました。 homebrew を使用してispellとapsellをインストールし、〜/ .emacsで設定したものを取得しました

[iMac ~]$ cat ~/.emacs
(setq ispell-program-name "/usr/local/bin/aspell")

これについても同様の議論があります ここ

-lrm

Katspaugh、David Caldwell、ÉbeIsaacの回答に基づいて、最新バージョンで動作するようにしました。

たとえば、brewを使用してaspellをインストールします。

brew install aspell

brew/usr/local/binにシンボリックリンクし、インストールを確認できます。

$ which aspell
/usr/local/bin/aspell

次に、この場所についてEmacsに伝えます。この行を~/.emacsに追加します:

(setq ispell-program-name "/opt/local/bin/aspell")

バッファでM-x ispellを起動すると、機能します。

portsでインストールするには、他の回答を参照してください。

1
miguelmorin

Aspellをインストールし、(setq ispell-program-name "/usr/local/bin/aspell")init.elを追加してもうまくいきません。シンボリックリンクをSudo ln -s /usr/local/bin/aspell /usr/bin/ispellにする必要がありました。そうすれば、emacsflyspell-modeは問題なく動作します。

0
prosseek

自家醸造の代わりにフィンクを使用する場合にも機能します。 ispellは/ sw/binにあり、.emacsファイルに追加する文字列は次のようになります。

(setq ispell-program-name "/ sw/bin/ispell")

0
Emanuela Pompei