1. save-restiction
英文不太好,去查了半天,脑子还是懵逼的
这玩样是干什么用的?
narrow-to-region
又是个什么啊
2. search-forward
像这样
(search-forward "myStr1" nil t)
(search-forward STRING &optional BOUND NOERROR COUNT)
参数BOUND
是什么鬼,为什么设置为nil
3. re-search-forward
(re-search-forward REGEXP &optional BOUND NOERROR COUNT)
(re-search-backward "\n[ \t]*\n" nil "move")
嗯??? NOERROR
是move又是怎么回事??
4. set-mark-command 的调用
标记文本的时候我用的默认键位C-space
,绑定的命令是set-mark-command
,
查文档的时候发现不能直接调用(set-mark-command)
而应该调用(set-mark-command ARG)
但是这个参数文档没告诉我,我应该怎么调用啊?
2 个赞
describe-function
然后看看elisp learn x in y的教程吧…
1 个赞
wsug
3
我也是一般文档都是看不明白是怎么回事,这时就去github 或.emacs.d/elpa/ 目录下搜看下别人是怎么用某个函数的,才能大知明白怎么用
推荐李杀的Lisp教程。浅显易懂,常用的函数都有覆盖。 不常用的也不用钻研了。比如save-restriction
是什么我也是一窍不通,虽然我写Lisp也很久了。
2 个赞
narrow-to-region 就是把你buffer里显示的东西缩小到这个region的范围内,可以用widen来扩回去。
restriction就是指上面说的缩小扩大这回事,按这个理解,save-restriction就是把这个设置在body执行完后给恢复回来把(这个函数我不常用)。
BOUND就是指搜索范围呗
NOERROR是“move”,“move” != nil, 那就是跟t一个效果,只是方便看代码的人理解。
ARG 一般在文档里叫做 prefix argument, 所以这个set-mark-command 的文档是详细说了ARG的用途的。 对interactive cmd来说,一般按键的时候带C-u ,这个arg就是 '(4), C-u C-u 就是 '(16), 以此类推,具体的你写个interactive cmd 直接print一下就看到了