我是在EMACS中创建lisp函数的新手。 我想使函数以大写形式生成后向单词。 M-u确实为前进单词做了大写,但我想向后做。 此外,我想在执行该功能后将光标放在单词的末尾。 我想M-u做这个功能,而不是原来的功能。 我应该如何在Emacs lisp中编写函数?
感谢。
答案 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赋一个负数将向后转换那个单词数,留下它所在的位置(如我的函数)。因为在我意识到之前我意外地重新发明了轮子,所以我并没有搞乱它。