我正在尝试将当前行号设置为Elisp中的变量,但仍然会出现无效变量错误!
代码是:
(setq x what-line)
我也想将缓冲区中的行总数设置为变量,但是得到相同的错误?!
答案 0 :(得分:14)
(setq x (line-number-at-pos)
y (line-number-at-pos (point-max)))
如何了解这类事情?尝试 M-x find-function
RET what-line
RET 以查看what-line
的源代码。读取simple.el
(定义{{1}}的文件)是熟悉基本Elisp编程的好方法。
答案 1 :(得分:3)
(setq x (what-line))
答案 2 :(得分:2)
前一个答案中提到的line-number-at-pos函数仅考虑缓冲区的可访问部分。如果缓冲区“缩小”,它将不计算隐藏线,因此这可能相当混乱。
如果您阅读了什么行功能的代码,您可以看到它如何处理缩小的缓冲区(实际上,通过调用line-number-at-pos可以实现什么样的行)。