2014-12-18 5 views
0

Я хотел бы выполнить проверку орфографии нескольких файлов в большом проекте/репозитории и использовать другой частный словарь, чем мой собственный. Таким образом, я вместо этого использую словарь проекта и могу позже загрузить его для использования другими пользователями.Как изменить частный словарь ispell

ответ

2

С Emacs, переменная ispell-personal-dictionary может использоваться, чтобы выбрать свой личный файл словаря:

имя файла вашего личного орфографического словаря, или ноль. Если nil, используется личный словарь по умолчанию («~/.ispell_DICTNAME» для ispell или «~/.aspell.LANG.pws» для aspell), где DICTNAME - это имя словаря по умолчанию и LANG, то два буквенный код.

В современных системах ispell- функции Emacs' обычно используют GNU aspell, орфографический

бесплатно и с открытым исходным кодом в конечном итоге будет заменить Ispell

Это не ясно из вашего вопрос, будут ли все проверять орфографию через Emacs. К счастью, aspell поддерживает параметр командной строки, которая работает аналогично:

--personal=<file>, -p <file> 
    Personal word list file name. 
+1

После изменения 'ispell-personal-dictionary' для буфера, который уже открыт с' flyspell' active, я использую 'ispell-kill-ispell', чтобы начать новый сеанс ispell. При установке 'ispell-personal-dictionary' перед загрузкой буфера нет необходимости называть' ispell-kill-ispell'. – lawlist

3

Ответ Крис является правильным. Вот лишь пример того, что я использую для переключения между личными словарями aspell, а также aspell языков. Я использую как flyspell, так и ispell. Пути к личным словарям должны быть скорректированы в соответствии с пользовательскими спецификациями.

(defface ispell-alpha-num-choice-face 
    '((t (:background "black" :foreground "red"))) 
    "Face for `ispell-alpha-num-choice-face`." 
    :group 'ispell) 

(defface ispell-text-choice-face 
    '((t (:background "black" :foreground "forestgreen"))) 
    "Face for `ispell-text-choice-face`." 
    :group 'ispell) 

(defun my-ispell-change-dictionaries() 
"Switch between language dictionaries." 
(interactive) 
    (let ((choice (read-char-exclusive (concat 
      "[" 
      (propertize "E" 'face 'ispell-alpha-num-choice-face) 
      "]" 
      (propertize "nglish" 'face 'ispell-text-choice-face) 
      " | [" 
      (propertize "S" 'face 'ispell-alpha-num-choice-face) 
      "]" 
      (propertize "panish" 'face 'ispell-text-choice-face))))) 
    (cond 
     ((eq choice ?E) 
     (setq flyspell-default-dictionary "english") 
     (setq ispell-dictionary "english") 
     (setq ispell-personal-dictionary "/Users/HOME/.0.data/.0.emacs/.aspell.en.pws") 
     (ispell-kill-ispell) 
     (message "English")) 
     ((eq choice ?S) 
     (setq flyspell-default-dictionary "spanish") 
     (setq ispell-dictionary "spanish") 
     (setq ispell-personal-dictionary "/Users/HOME/.0.data/.0.emacs/.aspell.es.pws") 
     (ispell-kill-ispell) 
     (message "Español")) 
     (t (message "No changes have been made."))))) 
0

У меня есть это в моем init.el файле, который работает отлично подходит для меня (найденный в http://www.emacswiki.org/emacs/FlySpell)

(setq ispell-program-name "aspell") 
(setq ispell-list-command "list") 


(let ((langs '("spanish" "british" "french"))) 
    (setq lang-ring (make-ring (length langs))) 
    (dolist (elem langs) (ring-insert lang-ring elem))) 
(defun cycle-ispell-languages() 
    (interactive) 
    (let ((lang (ring-ref lang-ring -1))) 
    (ring-insert lang-ring lang) 
    (ispell-change-dictionary lang))) 

Я установил комбинацию клавиш для переключения от одного словаря к другому

(global-set-key [M-f6] 'cycle-ispell-languages) 

 Смежные вопросы

  • Нет связанных вопросов^_^