Questions tagged «buffer-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 …


1
使缓冲区局部变量再次成为全局变量
我正在尝试使用局部变量并进行设置: (defvar-local foo nil "Buffer local foo") 后来我重新设计了程序以使用全局变量,而不是使用: (defvar foo nil "Not buffer local foo") 但是该变量仍然是局部缓冲区,甚至(kill-local-variable 'foo)没有杀死它。 基本上,我该如何“撤消” make-local-variable?

2
如何坚持邪恶的标记?
我希望能够在emacs会话/实例之间保存我的缓冲区局部邪恶标记(用m标记位置,然后使用'或`跳转到该位置)。我不太确定该怎么做。我尝试安装/使用会话并像这样添加它们: (add-to-list 'session-locals-include 'evil-markers-alist) 但是,这不起作用,我不确定还有什么尝试。谢谢。
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.