2010-08-25 64 views
4

当我问here,我可以选择一个前缀参数(C-U)运行泥口齿不清,我是写在here,我看到了C-u是插入当前缓冲区的输出方式。emacs的前缀参数的用途/用法是什么?

我用 'C-U 10 SOMETHING',以运行SOMETHING 10倍。

使用前缀参数(C-u)的用法/目的是什么? C-u是唯一的前缀参数吗?

回答

6

查看documentation for prefix command arguments

但是,简而言之,它是交互式地向命令提供更多信息的一种方式。

  • 用于α-数字键,通常结合于'self-insert,它告诉他们有多少该字符的插入
  • 对某些命令(的Mx评论区域)这意味着反转命令,即Cu Mx评论区un评论区域。
  • 对于一些它只是调整行为,C-u C-s做一个'isearch-forward-regexp而不是一般的'isearch-forward

所以,这一切都取决于命令是如何使用的前缀参数。

至于其他 “前缀参数”,有C--M--M-3(或任何其他数字),以及一些其它。

5

的同时也要记住的是铜作为自己的默认前缀过客“(4)如您通过4

命令乘以此之前插入参数,每个CU因此,你可以写一个具有由使用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产生插入一个长格式日期上的键的功能(在此情况下抄送d),在Cu Cc d上的短格式的日期+时间,在Cu Cu Cc d上的短格式日期以及在Cu Cu Cu Cc上的短格式化时间d)

您可以使用这一招,使在默认情况下使用Clojure的一个“创业泥”替代品,但如果按C-u前运用键绑定SBCL。

+0

+1现在我终于明白“两个前缀参数”的含义了(如例如magit命令magit-pull所示)。顺便说一句,Xah Lee在http://ergoemacs.org/emacs/elisp_universal_argument.html上写了关于这个和其他可能的“前缀”值。例如,不带数字的'C-u'''使'prefix'等于符号'-'。 – echristopherson 2014-09-30 20:14:45

0

另一种方式来看待它是一个前缀ARG让你滚两个或两个以上不同但相似/相关的命令为一体,并把它们放在类似,但是相关的密钥。

  • 把最常用的一个上KEY,对于一些KEY
  • 把另一个放在C-u KEY
  • 把另一个放在C--键
  • 把另一个放在C- + KEY

或者把许多人在不同的数字前缀:...,铜-2 KEY铜-1 KEY铜0键铜1键铜2 KEY,...