Emacs должен установить второй символ слова в нижнем регистре - PullRequest
2 голосов
/ 08 августа 2010

В большинстве случаев я пишу немецкие тексты. Большинство слов начинаются с заглавной буквы, за которой следуют строчные буквы. Иногда я печатаю слишком быстро, а вторая буква слова печатается в верхнем регистре. Чтобы обойти эту проблему, я спросил себя, возможно ли написать функцию, которая автоматически изменяет регистр второй буквы. Необязательно, это должно происходить только в том случае, если третье и последующее написаны строчными буквами. Знаете ли вы, если это возможно, и есть ли у вас какие-либо предложения?

Ответы [ 3 ]

3 голосов
/ 08 августа 2010

Вот версия «всегда включен», которая исправляется при вводе.Он позволит вам вводить все заглавные слова, но как только он обнаружит смешанный регистр, он станет прописным.

3 голосов
/ 08 августа 2010

Вот команда, которая преобразует в нижний регистр вторую букву каждого слова, если первая буква прописная, а все остальные буквы в слове строчные:

(defun fix-double-uppercase-at-start-of-words ()
  (interactive)
  (let ((case-fold-search nil))
    (save-match-data
      (while (re-search-forward "\\b\\([[:upper:]]\\)\\([[:upper:]]\\)\\([[:lower:]]*\\)\\b" nil t)
        (replace-match (concat (match-string 1)
                               (downcase (match-string 2))
                               (match-string 3))
                       t)))))

Команда будет работать со всеми словами от текущей позиции курсора до (видимого) конца буфера.

2 голосов
/ 10 августа 2010

Вы можете установить второстепенный режим, отображающий все символы в верхнем регистре в специальную функцию ввода.

См .:

http://gist.github.com/516242

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...