Emacs:评估(缓冲区文件名)与读取变量缓冲区文件名?
要获取当前缓冲区的文件名,以下是否等效 (1)Emacs:评估(缓冲区文件名)与读取变量缓冲区文件名?,emacs,elisp,Emacs,Elisp,要获取当前缓冲区的文件名,以下是否等效 (1) (缓冲区文件名)和 (2) 缓冲区文件名 有没有理由选择其中一个而不是另一个 谢谢。通常,当函数和变量具有相同名称时,如果要确保获得最新的值,请使用函数而不是变量。在某些情况下,变量值是计算值的缓存,因此您想要的缓存取决于您想要花费的时间和您对最新值的需求程度 但不管怎么说,这只是一个退路始终查阅每个文件,包括Elisp手册中的文件。如果您有权访问源代码,也可以参考它。在本例中,doc不支持其中一个,源代码是C(我没有) 在这种情况下,文档没有说明
(缓冲区文件名)
和
(2) 缓冲区文件名
有没有理由选择其中一个而不是另一个
谢谢。通常,当函数和变量具有相同名称时,如果要确保获得最新的值,请使用函数而不是变量。在某些情况下,变量值是计算值的缓存,因此您想要的缓存取决于您想要花费的时间和您对最新值的需求程度 但不管怎么说,这只是一个退路始终查阅每个文件,包括Elisp手册中的文件。如果您有权访问源代码,也可以参考它。在本例中,doc不支持其中一个,源代码是C(我没有)
在这种情况下,文档没有说明使用其中一个或另一个的任何原因。根据我对来源的理解,它们应该是相同的: 以下是变量:
DEFVAR_PER_BUFFER ("buffer-file-name", &BVAR (current_buffer, filename)
下面是函数的相关部分:
return BVAR (current_buffer, filename);
它们都返回完全相同的位置,只有变量通过
取消对指针和函数的引用对于
当前缓冲区以外的缓冲区。我猜这个函数
与变量相比,它的开销很小,尽管我不确定
因为我还没有看到去引用本地缓冲区的代码
变数