Emacs Lisp中的缓冲区列?

时间:2011-07-10 02:56:40

标签: emacs lisp elisp

在Emacs Lisp中,如果缓冲区位置存储在变量中,您如何找到它所在的列?

3 个答案:

答案 0 :(得分:16)

查看columnssave-excursion的文档。

(save-excursion (goto-char pos) (current-column))

答案 1 :(得分:1)

Trey已经钉了它(虽然我没有亲自尝试过),但这是我写的东西。

(defun calculate-column (point)
  (save-excursion
    (goto-char point)
    (beginning-of-line)
    (- point (point))))

答案 2 :(得分:0)

问题不明确:“其中位于哪一列”可能表示1)“它似乎位于哪一字符列中”或2)“从开始时要前进多少个字符”到达当前位置的线”。这些通常是相同的,但是在具有文本属性的字符(例如,显示具有该文本属性的字符时,好像它们的宽度为7个空格)之类的'(display(space:width 7))可能会有所不同。

elisp函数current-column返回的含义为1,但对(点)的值进行计算则返回的含义为2。因此,在某些情况下,Trey Jackson的答案将返回不同于compman的值。

含义2的另一种可能性是(-(point)(line-beginning-position))