当前位置:  技术问答>linux和unix

问一下关于Elisp的问题(各位可任答一个或几个)

    来源: 互联网  发布时间:2017-01-04

    本文导语:  1.已知multiply-by-seven函数的代码如下: (defun multiply-by-seven (number) (interactive "p") (message "The result is %d" (* 7 number))) 书里面说:“在上面的例子中,multiply-by-seven函数使用"p"作为交互命令interactive的参量。这个参量...

1.已知multiply-by-seven函数的代码如下:

(defun multiply-by-seven (number)
(interactive "p")
(message "The result is %d" (* 7 number)))

书里面说:“在上面的例子中,multiply-by-seven函数使用"p"作为交互命令interactive的参量。这个参量告诉Emacs将你正在键入的C-u加上一个数字或META加上一个数字解释为一个命令,用来将这个数字作为参量传送给函数。”

==>如按文字所说,在定义了multiply-by-seven函数后,键入"C-u+数字"或"META+数字"后,什么都没反应,回显区也没有任何显示。是书里面解释错了呢,还是自己操作错了呢?

2.书里面说:“字符"r"是Emacs将位点所在区域的开始值和结束值作为函数的两个参量。用法如下:
(interactive "r")

==>所谓位点所在区域的开始值和结束值,是不是指编辑区的第一个字符的值(1),光标所在位置的值为结束值?

3.假如定义函数如下:

(defun append-to-buffer (buffer start end)
(interactive "BAppend to buffer:nr")
(let ((oldbuf (current-buffer)))
  (save-excursion
    (set-buffer (get-buffer-create buffer))
    (insert-buffer-substring oldbuf start end))))

此append-to-buffer函数有3个参量:buffer、start、end==>(interactive "r")如何知道要将开始与结束值绑定于3个参量中的其中哪两个?

|
再看看吧  - =

“键入"C-u+数字"或"META+数字"后,什么都没反应”
 键入数字前缀后面可以跟一个动作,你只"C-u+数字"或"META+数字"当然什么都没有了
 只是考诉做事情做几遍,但你还没有考诉它要做什么事
 比如 "C-u 8" + "C-b" 是向后移动8个字符,如果你没有"C-b"当没有操作了
 命令等价的操作 "C-u 8" "M-x backward-char"
 
"M-x set-mark-command" 可以认为是区域的起始位置,当前点为结束位置
 我是这么认为的

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3