【发布时间】:2010-08-25 20:26:04
【问题描述】:
正如我问here,我可以选择lisp 来运行带有前缀参数(C-u) 的SLIME,我写在here 中,我看到C-u 是一种将输出插入当前缓冲区的方法。
我使用“C-u 10 SOMETHING”来运行 SOMETHING 10 次。
使用前缀参数 (C-u) 的用途/目的是什么? C-u 是唯一的前缀参数吗?
【问题讨论】:
标签: emacs
正如我问here,我可以选择lisp 来运行带有前缀参数(C-u) 的SLIME,我写在here 中,我看到C-u 是一种将输出插入当前缓冲区的方法。
我使用“C-u 10 SOMETHING”来运行 SOMETHING 10 次。
使用前缀参数 (C-u) 的用途/目的是什么? C-u 是唯一的前缀参数吗?
【问题讨论】:
标签: emacs
还请记住,作为前缀的 C-u 默认将 '(4) 作为参数传递,并且您在命令之前插入的每个 C-u 都会将其乘以 4。
因此,您可以编写一种快速的方法,通过使用 ctrl-u 前缀在其中选择几个简单的选项,例如:
(defun insert-date (prefix)
"Insert the current date. With prefix-argument, use ISO format. With
two prefix arguments, write out the day and month name."
(interactive "P")
(let ((format (cond
((not prefix) "%A, %d %B %Y %H:%M %Z" )
((equal prefix '(4)) "%d/%m/%Y %H:%M")
((equal prefix '(16)) "%d/%m/%Y")
((equal prefix '(64)) "%H:%M:%S")
))
(system-time-locale "en_GB"))
(insert (format-time-string format))))
(global-set-key (kbd "C-c d") 'insert-date)
(上面的 elisp 生成一个函数,在键上插入长格式日期(在本例中为 C-c d),在 C-u C-c d 上插入短格式日期 + 时间,在 C-u C-u C-c d 上插入短格式日期,以及C-u C-u C-u C-c d) 上的短格式化时间
你可以使用这个技巧来替换默认使用 clojure 的“start-slime”,但如果你在键绑定之前按 C-u,则为 sbcl。
【讨论】:
prefix 值。例如,C-u- 不带数字使prefix 等于符号-。
查看documentation for prefix command arguments。
但是,简而言之,这是一种以交互方式向命令提供更多信息的方式。
'self-insert,它告诉他们要插入多少个字符'isearch-forward-regexp 而不是常规的 'isearch-forward。所以,这完全取决于命令如何使用前缀参数。
至于其他“前缀参数”,有 C--、M--、M-3(或任何其他digit) 等。
【讨论】:
另一种看待它的方式是,前缀 arg 可让您将两个或多个不同但相似/相关的命令合并为一个,并将它们放在相似但相关的键上。
KEY。或者将它们中的许多放在不同的数字前缀上:...、C-u -2 KEY、C-u -1 KEY、C-u 0 KEY, C-u 1 键, C-u 2 键,...
【讨论】: