在emacs中为后向单词的make upcase创建函数

时间:2016-09-30 14:48:34

标签: emacs

我是在EMACS中创建lisp函数的新手。 我想使函数以大写形式生成后向单词。 M-u确实为前进单词做了大写,但我想向后做。 此外,我想在执行该功能后将光标放在单词的末尾。 我想M-u做这个功能,而不是原来的功能。 我应该如何在Emacs lisp中编写函数?

感谢。

2 个答案:

答案 0 :(得分:2)

升级前一个单词的功能是

(defun upcase-previous-word ()
  (interactive)
  (upcase-word -1))

如果您想了解有关功能upcase-word的更多信息,请尝试M-x describe-function,然后upcase-word。这会将M-u分配给它

(global-set-key (kbd "M-u") 'upcase-previous-word)

答案 1 :(得分:0)

我有一些我写的功能来提供这个功能,因为我无法找到任何内置的多个单词操作。它们可能证明是有用的:

itoa

请注意,这不会让您完成任务,但添加该功能不应该太难。

编辑:实际上,现在我记得实际上还有一种内置的方法:

(defun my-get-words-left (number-of-words)
  (save-excursion
    (backward-word number-of-words)
    (point)))

(defun my-reformat-left-uppercase (number-of-words)
  (interactive "p")
  (let ((region-end (point))
        (region-start (my-get-words-left number-of-words)))
    (upcase-region region-start region-end)))

给upcase-word赋一个负数将向后转换那个单词数,留下它所在的位置(如我的函数)。因为在我意识到之前我意外地重新发明了轮子,所以我并没有搞乱它。