在Emacs Lisp中,如果缓冲区位置存储在变量中,您如何找到它所在的列?
答案 0 :(得分:16)
查看columns和save-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))