도움이 되었습니까?

해결책

적절한 열을 선택하는 regexp를 정의합니다. 예를 들어 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 일에서 11 일까지 텍스트에 색칠을 적용합니다.

(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