代码之家  ›  专栏  ›  技术社区  ›  marktucks

在Emacs中将行号设置为变量

  •  8
  • marktucks  · 技术社区  · 17 年前

    我正在尝试将当前行号设置为elisp中的变量,但不断出现一个空变量错误!

    代码是:

    (setq x什么行)

    我还想将缓冲区中的总行数设置为一个变量,但得到相同的错误?你说什么?

    3 回复  |  直到 12 年前
        1
  •  13
  •   itsjeyd    12 年前
    (setq x (line-number-at-pos)
          y (line-number-at-pos (point-max)))
    

    如何发现这类事情?尝试 M—X find-function 雷特 what-line 雷特 查看的源代码 什么线 . 阅读 simple.el (文件中 什么线 是熟悉基本elisp编程的好方法。

        2
  •  3
  •   Mike Douglas    17 年前
    (setq x (what-line))
    
        3
  •  2
  •   user98761    13 年前

    前面答案中提到的pos函数的行号只考虑缓冲区的可访问部分。如果缓冲区被“缩小”,它将不会计算隐藏的行,因此这可能会非常混乱。

    如果您阅读了什么行函数的代码,您可以看到它如何处理缩小的缓冲区(实际上,通过在pos调用行号,什么行起作用)。