2013-04-28 8 views
9

Tôi đang gặp rắc rối ngược kỹ thuật Aquamacs để trích xuất việc sử dụng/chức năng của NSSpellChecker. Tôi muốn kết hợp việc sử dụng/chức năng đó vào xây dựng xương non của Emacs từ nguồn. Tôi đã tìm các tệp có liên quan dường như - ns-win.el; flyspell.el; và ispell.el - tuy nhiên, chỉ cần thay thế các tệp đó từ Aquamac sang Emacs không bật trình đơn bật lên để chạy trình kiểm tra chính tả có nguồn gốc OSX. Tôi thiếu một hoặc nhiều phần trong trò chơi - Tôi đã mở tất cả các tệp Aquamac * .gz và tìm kiếm một vài từ khóa trong tất cả các tệp đó, nhưng tôi chưa tìm thấy bất kỳ tệp nào khác giống như chúng có một cái gì đó để làm với chức năng này. Chức năng được kích hoạt bởi Aquamacs before site-start.el của nó được khởi tạo.OSX - Emacs cấu hình để sử dụng NSSpellChecker

Tôi đã học được làm thế nào để xây dựng Emacs từ nguồn sử dụng tarball, và cũng có thể bằng cách sử dụng bzr. Nếu có ai biết cách cấu hình NSSpellChecker trong quá trình xây dựng, điều đó sẽ rất tuyệt.

Không có gì tôi đã tìm thấy trên internet từ xa mô tả làm thế nào để làm điều này là.

Chức năng kiểm tra chính tả của Aspell nhắc nhở tôi về những gì cuộc sống như thế trở lại vào những năm cuối 80. Tôi đã trưởng thành thích menu pop-up với các nút để chọn các tùy chọn kiểm tra chính tả.

Dưới đây là liên kết để giải thích cho việc xây dựng Aquamacs, và nhìn vào xây dựng kịch bản là tiếp theo trong danh sách công việc phải làm của tôi:

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

Sửa 1: Việc xây dựng các kịch bản có nhiều hơn một chút để nói về NSSpellChecker, vì vậy các tệp bổ sung cần được xem xét bao gồm: nsterm.mnsfns.m. Tôi không nghĩ rằng aquamacs-menu.el hoặc osxkeys.el là cần thiết, vì những tải đó sau khi bắt đầu trang web.el. Nó trông ngày càng giống NSSpellChecker được mã hóa cứng vào ứng dụng thực thi trong quá trình xây dựng, kết hợp với các tệp được đề cập ở trên.

Chỉnh sửa 2: Đúng, đó là các mảnh còn thiếu của câu đố. Việc thực thi các Aquamac trong gói ứng dụng (ví dụ: ... Aquamacs.app/Contents/MacOS/Aquamacs) chứa ma thuật mã hóa cứng cho NSSpellChecker cùng với các phiên bản sửa đổi của Aquamacs là ns-win.el; flyspell.el; và ispell.el.

Sửa 3: Tại thời điểm này, một trong những lựa chọn sẽ được chỉnh sửa kịch bản xây dựng cho Aquamacs và các tập tin liên quan được sử dụng trong quá trình xây dựng để xây dựng một ứng dụng tùy chỉnh. Ngoài ra, việc tạo ra một lai cũng có thể, nhưng đi kèm với các vấn đề riêng của nó vì thực thi Aquamacs được mã hóa cứng với các đặc sản như one-frame-one-buffer-mode khi mở một tệp từ Finder.app; switch-to-buffer-in-tab khi mở tệp từ Finder.app; ns-application-activated cần được đặt để bỏ qua; bao gồm cả id phiên bản bên trong tệp init.el để im lặng đúng thông báo lỗi; các tùy chọn menu đơn giản được hướng tới các Aquamac để lưu các tùy chọn; và một số vấn đề khác dễ thấy. Trong ngắn hạn, lai là có thể làm được, nhưng một cơn đau ở cổ. Tôi có một lai làm việc, nhưng tôi chắc chắn tôi sẽ phải làm nhiều tinh chỉnh như tôi tìm thấy nhiều tùy chỉnh Aquamacs (tạo ra bởi thực thi) mà cần phải được xử lý. Còn quá sớm để tôi đăng bất kỳ loại câu trả lời nào. Việc xây dựng kịch bản sửa đổi dường như là giải pháp tốt nhất, nhưng sẽ đòi hỏi rất nhiều thời gian để sửa đổi nó đúng cách để tạo ra một xây dựng tùy chỉnh mà cô lập các tính năng NSSpellChecker.

Chỉnh sửa 4: Tôi có phiên bản làm việc với NSSpellChecker là bản cài đặt của Aquamacs24 tùy chỉnh (bỏ hầu hết mọi thứ Aquamac ngoại trừ trình kiểm tra chính tả) và xây dựng Emacs24 gần đây nhất (xây dựng hàng đêm).Tôi đang chờ nhận được một số hỗ trợ kỹ thuật để sử dụng thiết bị đầu cuối để tải xuống nhánh mới nhất của Aquamacs24 với git vì tôi đang gặp một số vấn đề sao chép phiên bản ZIP với thiết bị đầu cuối. Điều này khá chi tiết và tôi muốn đơn giản hóa quy trình trước khi đăng câu trả lời và tôi muốn kiểm tra kỹ lưỡng trước.

NSSpellChecker http://lawlist.com/images/spellchecker.png

Trả lời

6

Các bản vá lỗi (nhắc đến bên dưới) được tạo ra bởi @lawlist từ phần chọn của Aquamacs:

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

Để kích hoạt kiểm tra chính tả tự nhiên trên OSX trong vani/generic phiên bản của Emacs, nó là cần thiết để vá mã nguồn C-trước khi xây dựng, và một vài tập tin lisp cũng cần phải được sửa đổi. Bản vá quá lớn để đăng câu trả lời trên stackexchange.com.

Các thủ tục sau đây giả định các công cụ cần thiết đã được cài đặt trên OSX để xây dựng và vá, vv - ví dụ, git, các phiên bản gần đây của automakeautoconf, xcode vv


Emacs -25 Chi nhánh - 01 tháng 11 2016:

các miếng vá sau và tối thiểu thử nghiệm đã được thực hiện trên emacs-25 chi nhánh xây dựng.210 như các cam kết ngày 01 tháng 11 năm 2016: 5043e0a7e06dbf6507a59736e55bdde69d9a2a4e

Từ một thiết bị đầu cuối, gõ: git clone -b emacs-25 git://git.sv.gnu.org/emacs.git

Lượt truy cập: https://gist.github.com/lawlist/dfc75240cc06c66f19f48eaa3e570d7c

Nhấp vào "Tải xuống ZIP" nút, và lưu các tập tin vá nén ở đâu đó trên máy tính của bạn.

Trích xuất ZIP lưu trữ bạn vừa tải xuống và lưu nsspellchecker_emacs25.diff vào thư mục mã nguồn gốc .../emacs được nhân bản trong bước đầu tiên ở trên.

Từ thiết bị đầu cuối, cd qua thư mục gốc .../emacs mã nguồn.

;; Bản vá có thể trở nên lỗi thời, vì vậy ví dụ này bao gồm khôi phục cài đặt gốc để quay lại ngày 1 tháng 11 năm 2016. [Một số sửa lỗi vẫn đang được nhóm phát triển Emacs 25 thực hiện, có thể khiến bản vá lỗi trở nên lỗi thời.]

Từ thiết bị đầu cuối, nhập: git reset --hard 5043e0a7e06dbf6507a59736e55bdde69d9a2a4e

;; Sau khi thực hiện một hard reset thành công, thông điệp trong thiết bị đầu cuối sẽ nói: "ĐẦU hiện tại là tài liệu hướng dẫn Fix 5043e0a cho 'EUDC-tùy chọn-file'"

Từ một thiết bị đầu cuối, gõ: git apply nsspellchecker_emacs25.diff

Từ một thiết bị đầu cuối, gõ: ./autogen.sh

Từ một thiết bị đầu cuối, gõ: ./configure --with-ns

Từ một thiết bị đầu cuối, gõ: make

Từ một thiết bị đầu cuối, nhập: make install

;; Với Finder.app, điều hướng đến .../emacs/nextstep và thử Emacs.app mới

;; Mở Emacs.app mới của bạn và nhập M-x eval-expression RET (require 'flyspell) RET

;; Trong bộ đệm *scratch*, hãy nhập nội dung nào đó đúng chính tả và đã viết sai chính tả.

;; Loại: M-x ns-start-spellchecker hoặc M-x ispell-buffer

;; Chơi một chút với trình kiểm tra chính tả bật lên và vui chơi.

;; Nói cách tùy chỉnh được lưu vào: ~/Library/Spelling/LocalDictionary


câu trả lời trước đó áp dụng cho các chi nhánh master như của 29 tháng 5 năm 2016:

Các miếng vá sau và tối thiểu thử nghiệm được thực hiện trên nhánh chủ được xây dựng --with-ns kể từ ngày cam kết ngày 29 tháng 5 năm 2016: 76fb19b359dec8556dc66dbac3ad3d333feea3c3

Từ một thiết bị đầu cuối, nhập: git clone -b master git://git.sv.gnu.org/emacs.git

Lượt truy cập: https://gist.github.com/lawlist/6a9b281870fcc114ad3c6c1dca121f95

Nhấp vào "Tải xuống ZIP" nút, và lưu các tập tin vá nén nơi nào đó trên máy tính của bạn.

Trích xuất ZIP lưu trữ bạn vừa tải xuống và lưu nsspellchecker.diff vào thư mục mã nguồn gốc .../emacs được nhân bản trong bước đầu tiên ở trên.

Từ thiết bị đầu cuối, cd qua thư mục gốc .../emacs mã nguồn.

;; Bản vá sẽ sớm trở nên lỗi thời, vì vậy ví dụ này bao gồm khôi phục cài đặt gốc để quay lại ngày 29 tháng 5 năm 2016. [Tôi sẽ không cập nhật/duy trì bản vá như Emacs chi nhánh chính thay đổi nhiều lần mỗi ngày.]

Từ thiết bị đầu cuối, nhập: git reset --hard 76fb19b359dec8556dc66dbac3ad3d333feea3c3

;; Sau khi thực hiện khôi phục cài đặt gốc thành công, thông báo trong thiết bị đầu cuối sẽ hiển thị: "HEAD hiện tại là 76fb19b * lisp/wid-edit.el (liên kết): Xóa: thuộc tính liên kết (lỗi # 22434)"

Từ một thiết bị đầu cuối, nhập: git apply nsspellchecker.diff

+0

Có bất kỳ nỗ lực nào để làm cho tùy chọn này có sẵn dưới dạng tùy chọn cấu hình cho dòng Emacs chính không? – tripleee

+0

@tripleee - Tôi không chắc liệu Richard M. Stallman, John Wiegley hay Eli Zaretskii có quan tâm đến việc có một tính năng đặc trưng cho OSX hay không. Tôi đoán là họ sẽ không, tuy nhiên, John sử dụng OSX - vì vậy anh * có thể * quan tâm. RMS chắc chắn sẽ khăng khăng đòi David Swelt (đối với các sửa đổi mã nguồn C) và Nathaniel Cunningham (ispell.el/flyspell.el), và những người khác, đăng xuất trên giấy tờ để đóng góp của họ trở thành một phần chính thức của Emacs, mà họ có thể không sẵn sàng làm ngay cả khi giấy phép là GNU. Ngoài ra, "Aquamacs" chấp nhận quyên góp. . . – lawlist