9

NSSpellChecker の使用法/機能を抽出するために Aquamacs をリバース エンジニアリングするのに問題があります。その使用/機能を、ソースからの Emacs のベアボーン ビルドに組み込みたいと考えています。関連すると思われるファイルを見つけました -- ns-win.el; flyspell.el; そしてispell.el-- ただし、単にこれらのファイルを Aquamacs から Emacs に置き換えるだけでは、OSX ネイティブのスペルチェッカーを実行するためのポップアップ メニューが有効になりません。パズルの 1 つまたは複数のピースが欠けています -- すべての Aquamacs *.gz ファイルを開き、それらすべてのファイル内でいくつかのキーワードを検索しましたが、他にあるように見えるファイルは見つかりませんでした。この機能と関係があります。この機能は Aquamacs によって有効になり、beforeその site-start.el が開始されます。

tarball を使用してソースから Emacs をビルドする方法と、bzr を使用する方法を学びました。ビルド プロセス中に NSSpellChecker を構成する方法を誰かが知っていれば、それは素晴らしいことです。

これを行う方法をリモートで説明しているインターネット上で見つけたものは何もありません。

Aspell のスペル チェック機能は、80 年代後半の生活を思い起こさせます。スペル チェックのオプションを選択するためのボタンを備えたポップアップ メニューが気に入りました。

Aquamacs のビルドに関する説明へのリンクは次のとおりです。ビルド スクリプトを調べることは、私のやることリストの次です。

http://www.emacswiki.org/cgi-bin/wiki/BuildingAquamacs

編集 1: ビルド スクリプトには、NSSpellChecker についてもう少し説明があるため、確認する必要がある追加のファイルには、 nsterm.mおよびnsfns.m. これらは site-start.el の後にロードされるため、必要ではないと思いますaquamacs-menu.elosxkeys.el上記のファイルとともに、ビルド プロセス中に NSSpellChecker がアプリケーションの実行可能ファイルにハードコードされているように見えます。

編集 2: うん、それはパズルの欠けていたピースだった. アプリケーション パッケージ内の Aquamacs の実行可能ファイル (... Aquamacs.app/Contents/MacOS/Aquamacsつまりns-win.elflyspell.el; とispell.el

編集 3: この時点で、カスタム アプリケーションを構築するために、ビルド プロセスで使用される Aquamacs および関連ファイルのビルド スクリプトを変更することが 1 つのオプションになります。one-frame-one-buffer-mode別の方法として、ハイブリッドを作成することも可能ですが、Aquamacs 実行可能ファイルは、Finder.appからファイルを開くときなどの特別な機能でハードコードされているため、独自の問題があります。switch-to-buffer-in-tabFinder.app からファイルを開くとき。ns-application-activated無視するように設定する必要があります。エラーメッセージを適切に静かにするために、init.elファイル内にバージョンIDを含めます。オプションを保存するためのAquamacs向けの簡単なメニューオプション。すぐに明らかになる他のいくつかの問題。要するに、ハイブリッドは実行可能ですが、首が痛いです。私はハイブリッド作業を行っていますが、対処する必要がある Aquamacs のカスタマイズ (実行可能ファイルによって作成される) が増えるにつれて、さらに微調整を行う必要があると確信しています。どんな種類の回答でも投稿するには時期尚早です。ビルド スクリプトの変更が最善の解決策のように見えますが、NSSpellChecker 機能を分離するカスタム ビルドを作成するために適切に変更するには多くの時間が必要です。

編集 4: Aquamacs24 のカスタム ビルド (スペルチェッカーを除くほとんどすべての Aquamacs を省略) の実行可能ファイルである NSSpellChecker と、Emacs24 の emacs-trunk 最新ビルド (ナイトリー ビルド) を備えた作業バージョンがあります。ターミナルで ZIP バージョンを複製する際に問題が発生しているため、Aquamacs24 の最新ブランチを git でダウンロードするためにターミナルを使用するためのテクニカル サポートを待っています。これはかなり詳細であり、回答を投稿する前にプロセスを簡素化し、事前に徹底的にテストしたいと考えています.

NSSスペルチェッカー
(出典: lawlist.com )

4

1 に答える 1

6

パッチ (以下を参照) は、Aquamacs の選択された部分から @lawlist によって作成されました。

https://github.com/davidswelt/aquamacs-emacs

Emacs のバニラ/ジェネリック バージョンで OSX のネイティブ スペルチェックを有効にするには、ビルド前に C ソース コードにパッチを適用する必要があり、いくつかの Lisp ファイルも変更する必要があります。パッチが大きすぎて、stackexchange.com に回答を投稿できません。

次の手順では、ビルドやパッチ適用などに必要なツールが OSX に既にインストールされていることを前提としています。たとえば、git、最近のバージョンのautomakeおよびautoconf、xcode などです。


EMACS-25 ブランチ - 2016 年 11 月 1 日:

次のパッチと最小限のテストは、2016 年 11 月 1 日のコミット時点で ビルドされたemacs-25 ブランチで実行されました。--with-ns5043e0a7e06dbf6507a59736e55bdde69d9a2a4e

ターミナルから、次のように入力します。 git clone -b emacs-25 git://git.sv.gnu.org/emacs.git

訪問: https://gist.github.com/lawlist/dfc75240cc06c66f19f48eaa3e570d7c

[ Download ZIP ] ボタンをクリックし、圧縮されたパッチ ファイルをコンピュータの任意の場所に保存します。

先ほどダウンロードしたZIPアーカイブを解凍し、上記の最初の手順で複製したソース コードのルート ディレクトリに保存nsspellchecker_emacs25.diffします。.../emacs

ターミナルから、ソース コードcdのルートディレクトリに移動します。.../emacs

;; パッチは古くなる可能性があるため、この例には 2016 年 11 月 1 日までさかのぼるハード リセットが含まれています。

ターミナルから、次のように入力します。 git reset --hard 5043e0a7e06dbf6507a59736e55bdde69d9a2a4e

;; ハード リセットを正常に実行すると、ターミナルに次のようなメッセージが表示されます

ターミナルから、次のように入力します。 git apply nsspellchecker_emacs25.diff

ターミナルから、次のように入力します。 ./autogen.sh

ターミナルから、次のように入力します。 ./configure --with-ns

ターミナルから、次のように入力します。 make

ターミナルから、次のように入力します。 make install

;; Finder.app を使用して、新しいEmacs.app に移動して.../emacs/nextstep試してください。

;; 新しい Emacs.app を開き、次のように入力しますM-x eval-expression RET (require 'flyspell) RET

;; バッファーに、*scratch*スペルが正しいものとスペルが間違っているものを入力します。

;; タイプ: M-x ns-start-spellcheckerまたはM-x ispell-buffer

;; ポップアップ スペルチェッカーで少し遊んで楽しんでください。

;; カスタム単語は次の場所に保存されます: ~/Library/Spelling/LocalDictionary


master2016 年 5 月 29日時点のブランチに適用される以前の回答:

次のパッチと最小限のテストは、2016 年 5 月 29 日のコミット時点で ビルドされたマスター ブランチで実行されました。--with-ns76fb19b359dec8556dc66dbac3ad3d333feea3c3

ターミナルから、次のように入力します。 git clone -b master git://git.sv.gnu.org/emacs.git

訪問: https://gist.github.com/lawlist/6a9b281870fcc114ad3c6c1dca121f95

[ Download ZIP ] ボタンをクリックし、圧縮されたパッチ ファイルをコンピュータの任意の場所に保存します。

先ほどダウンロードしたZIPアーカイブを解凍し、上記の最初の手順で複製したソース コードのルート ディレクトリに保存nsspellchecker.diffします。.../emacs

ターミナルから、ソース コードcdのルートディレクトリに移動します。.../emacs

;; パッチはすぐに古くなるため、この例には 2016 年 5 月 29 日までさかのぼるハード リセットが含まれています

ターミナルから、次のように入力します。 git reset --hard 76fb19b359dec8556dc66dbac3ad3d333feea3c3

;; ハード リセットを正常に実行すると、ターミナルに次のようなメッセージが表示されます

ターミナルから、次のように入力します。 git apply nsspellchecker.diff

于 2013-05-08T15:41:58.677 に答える