Emacs 如何在修改后的模式行中显示编译状态?

Emacs 如何在修改后的模式行中显示编译状态?,emacs,elisp,modeline,Emacs,Elisp,Modeline,我修改了我的模式行,使其看起来更干净。遗憾的是,这会阻止编译缓冲区显示其退出状态 通常,失败的编译会显示如下内容: 编译:退出[1] 通过修改,编译状态出口[1]丢失 我将主要模式和次要模式定义如下: (setq my-modeline-major-mode ;; major modes (list '(:eval (propertize "%m" 'face 'font-lock-string-face 'help-echo bu

我修改了我的模式行,使其看起来更干净。遗憾的是,这会阻止编译缓冲区显示其退出状态

通常,失败的编译会显示如下内容: 编译:退出[1]

通过修改,编译状态出口[1]丢失

我将主要模式和次要模式定义如下:

(setq my-modeline-major-mode
  ;; major modes
  (list
    '(:eval (propertize "%m" 'face 'font-lock-string-face
                       'help-echo buffer-file-coding-system))))

(setq my-modeline-minor-modes
  ;; list of minor modes
  (list
    minor-mode-alist))
modeline本身的结构如下所示:

(setq-default mode-line-format
          (list
           "  ["
           my-modeline-major-mode
           "]["
           my-modeline-minor-modes
           "]"
           " %-" ;; fill with '-'
           ))

M-x自定义组编译没有提供任何帮助。

您需要在自定义模式行中包含模式行进程的值。这似乎有效:

(setq my-modeline-major-mode 
  ;; major modes
  (list
    '(:eval (propertize "%m" 'face 'font-lock-string-face
                       'help-echo buffer-file-coding-system))
    '("" mode-line-process)))

您需要在自定义模式行中包含模式行进程的值。这似乎有效:

(setq my-modeline-major-mode 
  ;; major modes
  (list
    '(:eval (propertize "%m" 'face 'font-lock-string-face
                       'help-echo buffer-file-coding-system))
    '("" mode-line-process)))

除了模式行过程之外,还应该添加全局模式字符串,一些模式使用它来显示通知。我将借此机会建议您尝试智能模式线路。它有一个更清晰的外观,让您使用变量自定义模式行,而不是手动编辑它,这将防止您破坏有用的信息。:-除了模式行过程之外,还应该添加全局模式字符串,一些模式使用它来显示通知。我将借此机会建议您尝试智能模式线路。它具有更清晰的外观,让您可以使用变量自定义模式行,而不是手动编辑模式行,这将防止您破坏有用的信息:-