每次打开 spacemacs 相关帖子的时候,看着一堆快捷键云里雾里,我也许大概能猜到是在讲什么,但毕竟不知道每个快捷键确切绑定的函数。
你今天写下的快捷键,很可能明天就变了,这在 spacemacs 是经常发生的,也是必然的,因为 spacemacs 的功能增/减频繁,势必需要调整快捷键。
所以,为了让帖子对后来的人具有参考意义,请尽量使用函数名描述问题/操作。当然,那些几十年都没改变过的经典快捷键是可以放心使用的。
任何时候,知道了函数名,也就知道了快捷键,反过来不一定成立。
每次打开 spacemacs 相关帖子的时候,看着一堆快捷键云里雾里,我也许大概能猜到是在讲什么,但毕竟不知道每个快捷键确切绑定的函数。
你今天写下的快捷键,很可能明天就变了,这在 spacemacs 是经常发生的,也是必然的,因为 spacemacs 的功能增/减频繁,势必需要调整快捷键。
所以,为了让帖子对后来的人具有参考意义,请尽量使用函数名描述问题/操作。当然,那些几十年都没改变过的经典快捷键是可以放心使用的。
任何时候,知道了函数名,也就知道了快捷键,反过来不一定成立。
我不用 Spacemacs,所以碰见只写按键的情况就一点头绪都没有。除了手写,也可以根据自己需求,写个命令专门做这件事情,比如:
(defun chunyang-format-key-as-markdown (key)
(interactive "kkey: ")
(when-let* ((command (key-binding key))
(markdown (format "<kbd>%s</kbd> (`%s`)"
(key-description key) command)))
(kill-new markdown)
(message "Saved to kill-ring: %s" markdown)
markdown))
然后运行这个命令,输入 M-!
的话就会得到:M-! (shell-command
)。
我觉得常常甚至可以忽略按键,只写命令名称。如 M-x shell-command
。我甚至都不是很待见快捷键这回事,我的态度是:
我之所以用 Emacs 一点儿都不是因为快捷键。
确实如此。 写函数名字更好交流
非 spacemacs 用户,不过道理非常赞成,主要靠 smex 和 alias 过日子 —— 有些命令太长了还是有点懒得敲
我的快捷键也很少,很多键都还空闲着。那种除了 prefix 之外还要敲 3、4 个键的快捷键,不仅不快捷,也是记忆负担。
借你的函数我封装一个直接替选中内容的:
(defalias 'format-key-as-markdown 'chunyang-format-key-as-markdown)
(defun replace-key-with-markdown (beg end)
(interactive "r")
(when-let* ((key (kbd (string-trim (buffer-substring-no-properties beg end) "`" "`")))
(mkd (format-key-as-markdown key)))
(delete-region beg end)
(insert mkd)))