Juancho의 답변 에서 영감을 받아 헤더 필드를 사용하여 현재 필드의 값을 표시하기로 결정했습니다. 내가 그것에있는 동안, 나는 헤더의 필드 위치를 보여주는 것이 좋겠다고 결정했다.
이것은 내가 그것을 달성하는 데 사용한 코드입니다.
(defun my-trim-string (arg)
"Simple function for trimming the whitespace from the ends of
a string. Also removes any string properties such as font faces."
(let ((str (substring-no-properties arg)))
(when (string-match "^[ \t]+" str)
(setq str (replace-match "" nil nil str)))
(when (string-match "[ \t]+$" str)
(setq str (replace-match "" nil nil str)))
str))
(defun my-org-table-location (&optional arg)
"Get the location of the current field in the table"
(interactive "P")
(when (eq 'org-mode major-mode)
(org-table-get-specials)
(let* ((row (org-table-current-dline))
(col (org-table-current-column))
(loc (if arg
(format "%c%02d" (+ 64 col) row)
(format "@%d$%d" row col))))
(when (called-interactively-p 'any)
(message "Field Location: %s" loc))
loc)))
(defun my-org-table-field (&optional arg)
"Get the value of the current field in the table"
(interactive "P")
(when (eq 'org-mode major-mode)
(org-table-get-specials)
(let* ((formula (org-table-current-field-formula))
(value (my-trim-string (org-table-get-field)))
(field (or (and arg formula) value)))
(when (called-interactively-p 'any)
(message "Field Value: %s" loc))
field)))
;; Define the format for the header line in Org mode
(setq my-org-table-header
(list '(:eval (let ((loc (my-org-table-location))
(field (my-org-table-field)))
(format " %s: %s" loc field)))))
(defun my-org-mode-setup ()
"Apply custom setup to org-mode buffers"
(setq-local header-line-format my-org-table-header))
(add-hook 'org-mode-hook 'my-org-mode-setup)
며칠간의 (최소한) 테스트를 견뎌냈으므로 계속 진행하기로 결정했습니다. 다른 사람이 이것을 사용하게되면 문제가 발생하면 알려주십시오.
tooltip-mode
켜져 내용이 툴팁에 표시됩니다; 그렇지 않으면 에코 영역에 표시됩니다.