我正在尝试在Elisp中将当前行号设置为变量,但一直收到void-variable错误!
代码如下:
(setq x what-line)
我还想将缓冲区中的总行数设置为一个变量,但是也收到了相同的错误?!
我正在尝试在Elisp中将当前行号设置为变量,但一直收到void-variable错误!
代码如下:
(setq x what-line)
我还想将缓冲区中的总行数设置为一个变量,但是也收到了相同的错误?!
(setq x (line-number-at-pos)
y (line-number-at-pos (point-max)))
如何找到这种东西的信息?尝试使用 M-x find-function
RET what-line
RET 查看 what-line
的源代码。阅读定义 what-line
的文件 simple.el
是熟悉基本Elisp编程的好方法。
(1+ (count-lines 1 (point)))
- tyree731(setq x (what-line))
前面的回答中提到的line-number-at-pos函数只考虑缓冲区的可访问部分。如果缓冲区被"narrowed",它将不会计算隐藏的行数,因此可能会令人困惑。
如果你阅读what-line函数的代码,你就可以看到它如何处理被缩小的缓冲区(实际上,what-line通过调用line-number-at-pos函数来工作)。
what-line
用括号括起来,因为它是一个函数而不是变量。 - viam0Zah(what-line)
返回的是Line 96
而不仅仅是96
,因此非常适合在 minibuffer 中显示。 - Peter.O