Questions tagged «defvar-local»

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 …
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.