簡體   English   中英

Emacs Lisp 中的緩沖區 position 的列?

[英]Column of buffer position in Emacs Lisp?

在 Emacs Lisp 中,如果你有一個緩沖區 position 存儲在一個變量中,你如何找到它在哪一列?

查看save-excursion的文檔。

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

Trey 已經搞定了(雖然我沒有親自嘗試過),但這是我寫的東西。

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

這個問題有一個模棱兩可的地方:“它在哪一列”可能意味着 1)“它出現在哪個字符列中”或 2)“一個人必須從行首前進多少個字符到到達當前位置”。 這些通常是相同的,但在存在具有諸如 '(display (space:width 7)) 之類的文本屬性的字符時可能會有所不同[它表示將具有該文本屬性的字符顯示為 7 個空格寬]。

elisp function 當前列返回含義 1,但計算 (point) 的值返回含義 2。因此在某些情況下,Trey Jackson 的答案將返回與 compman 不同的值。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM