Questions tagged «defvar»

1
setq-local是做什么的,什么时候应该使用它?
即使在阅读了SX上的所有文档和大量帖子之后,我也不太清楚缓冲区局部变量的所有变体。 以下是我的理解摘要: (defvar foo ..)为文件声明一个动态变量。但是该变量是(1)其他文件不知道的变量,除非它们也包含一条defvar 语句,并且(2)该变量的作用域是全局的,而不是局部于缓冲区的。 (make-variable-buffer-local foo)之后,defvar上述告诉编译器和其他人,变量foo是被当作缓冲区局部处处设置了,当它是集。因此,此模式是声明缓冲区局部变量,将两个语句背靠背放置在文件中的好样式。 (defvar xxx ...) ;declare xxx with global scope (make-variable-buffer-local 'xxx) ;but now make it buffer-local everywhere 为了方便起见,该(defvar-local xxx ...)表格可以用作一行,代替上面的两行: (defvar-local xxx ...) ;make xxx buffer local everywhere 一旦如上所述声明,变量xxx就可以像setq语句中的任何其他变量一样使用。 如果我只想拥有一个已经是全局动态变量的局部缓冲区变量的实例,则可以使用以下声明。第一个声明全局变量动态变量,第二个语句仅在当前缓冲区中创建该变量的本地缓冲区版本的一个实例: (defvar xxx ...) ;declare xxx with global scope (make-local-variable 'xxx) ;make xxx local …

1
setq和defvar有什么区别
setq和defvarEmacs lisp 和有什么不一样? 我在/programming/3855862看到了相同问题的常见Lisp版本。他们在伊利斯(Elisp)是否一样?
14 defvar  setq 

4
我可以重新加载库并让defvar重新分配值吗?
我正在开发一个库,并且想在编辑后重新加载它而不退出Emacs(假设它在load-path): (load-library "myname") 当我这样做时,Emacs不会对defvar-bound变量进行更改。 我不想在每个顶级表单上手动调用eval-defun(C-M-x)。是否M-x eval-buffer尊重defvar/ defcustom?
10 variables  defvar 

3
为什么在没有initvalue的情况下defvar作用域的工作方式有所不同?
假设我有一个名为elisp-defvar-test.el包含的文件: ;;; elisp-defvar-test.el --- -*- lexical-binding: t -*- (defvar my-dynamic-var) (defun f1 (x) "Should return X." (let ((my-dynamic-var x)) (f2))) (defun f2 () "Returns the current value of `my-dynamic-var'." my-dynamic-var) (provide 'elisp-dynamic-test) ;;; elisp-defvar-test.el ends here 我加载此文件,然后进入暂存缓冲区并运行: (setq lexical-binding t) (f1 5) (let ((my-dynamic-var 5)) (f2)) (f1 5)按预期返回5,表示的主体按预期f1被my-dynamic-var视为动态范围变量。但是,最后一种形式给出的变量变量为void my-dynamic-var,表明该变量使用词法作用域。似乎与的文档不一致,该文档defvar说: 该defvar表格还声明变量为“特殊”,所以它始终是动态即使势必lexical-binding为t。 …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.