有所谓的严格格式,如 pdb -其中符号的含义由符号的colomn编号定义。例如 这里 是上述pdb格式的规范。

有没有一种方法可以根据列范围应用脸部颜色?

通常可以通过以下方式添加要突出显示的正则表达式,例如当前会话:

(font-lock-add-keywords nil '(("\\[\\(.+?\\)\\]" . font-lock-keyword-face)))

那么有没有一种方法可以指定列上的脸,比如7-11-应该是,比如-红色?

编辑:

所以答案是:

(font-lock-add-keywords nil '(("^.\\{2\\}\\(.\\{2\\}\\)" 1 font-lock-warning-face)))
有帮助吗?

解决方案

定义一个将选择适当列的正则表达式。例如,要选择第3列(假设列只包含字母,以便示例清晰),您可以执行类似的操作 "\(?:[a-z]+ \)\{2\}\([a-z]+\)" 然后在第一组比赛。

当然,您可以使用以下方法创建这样的字符串 format 并传递一些参数以获得更大的灵活性。

(font-lock-add-keywords nil '(("\\(?:[a-z]+ \\)\\{2\\}\\([a-z]+\\)" 1 font-lock-warning-face)))

作为另一个方向,在空白模式下发现了以下代码,它突出显示了某个数字上的字符:

;; Show "long" lines
(list
(let ((line-column (or whitespace-line-column fill-column)))
   (format
    "^\\([^\t\n]\\{%s\\}\\|[^\t\n]\\{0,%s\\}\t\\)\\{%d\\}%s\\(.+\\)$"
    whitespace-tab-width
    (1- whitespace-tab-width)
    (/ line-column whitespace-tab-width)
    (let ((rem (% line-column whitespace-tab-width)))
      (if (zerop rem)
      ""
    (format ".\\{%d\\}" rem)))))
 (if (memq 'lines whitespace-active-style)
     0              ; whole line
   2)               ; line tail
 whitespace-line t)

其他提示

下面将着色归档从第7到第7列到第7列的文本:

(defun bk-pdb-color-ATOM-initially()
  (interactive)
  (save-excursion
    (goto-char (point-min))
    (while (search-forward-regexp "^ATOM  \\(.\\{5\\}\\).\\(.\\{4\\}\\).\\(.\\{3\\}\\).\\(.\\{5\\}\\).\\{4\\}\\(.\\{24\\}\\)" nil t)
      (progn
        (overlay-put
         (make-overlay (match-beginning 1) (match-end 1))
         'face '(:foreground "blue"))
        (overlay-put
         (make-overlay (match-beginning 2) (match-end 2))
         'face '(:foreground "red"))
        (overlay-put
         (make-overlay (match-beginning 3) (match-end 3))
         'face '(:foreground "purple1"))
        (overlay-put
         (make-overlay (match-beginning 4) (match-end 4))
         'face '(:foreground "orange"))
        (overlay-put
         (make-overlay (match-beginning 5) (match-end 5))
         'face '(:foreground "green"))
        t nil)
)))
.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top