【问题标题】:Emacs 24.3 on OS X ansi-term no colorsEmacs 24.3 on OS X ansi-term 没有颜色
【发布时间】:2014-02-13 12:03:30
【问题描述】:

我使用自制软件安装了 Emacs 24.3(使用 --cocoa--srgb 安装)。每当我启动 emacs.app,然后启动 ansi-term 时,它就没有颜色。但是,当我执行emacs -q 并启动应用程序时,ansi-term 有颜色。

所以我想我的init.el 文件中可能有什么问题。我注释掉了所有内容,仍然 ansi-term 不适用于颜色。

这一切中最奇怪的部分是,当我启用init.el 中的所有内容时,我执行emacs -nw,然后在那里执行 ansi-term(我知道,令人费解,但我正在尝试测试这个东西)它适用于所有主题和所有运行的附加组件。这太奇怪了,我什至不知道从哪里开始。

似乎在应用程序运行时,它没有使用我的bash_profile 中的设置。我为什么这么说?因为当 ansi-term 运行良好(使用emacs -nw)时,它说:bash: _powerline_prompt: command not found 这意味着它正在尝试加载我为终端安装的电力线,但不知道如何处理它。我只是禁用了电力线,看看它是否是罪魁祸首,即使这样也不能解决问题。

但是,当 ansi-term 没有颜色时,它不会喷出那条线。

那么有人知道到底发生了什么吗? (自制 emacs.app 是否使用另一个 .bash_profile 可能?)

这是我的init.el 禁用了外部包,所以其中的所有内容都是由 emacs 和包自动设置的:

;; emacs customizations (automatic)
(custom-set-variables
 ;; custom-set-variables was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.
 '(TeX-command-list (quote (("TeX" "%(PDF)%(tex) %`%S%(PDFout)%(mode)%' %t" TeX-run-TeX nil (plain-tex-mode texinfo-mode ams-tex-mode) :help "Run plain TeX") ("LaTeX" "%`%l%(mode)%' %t" TeX-run-TeX nil (latex-mode doctex-mode) :help "Run LaTeX") ("Makeinfo" "makeinfo %t" TeX-run-compile nil (texinfo-mode) :help "Run Makeinfo with Info output") ("Makeinfo HTML" "makeinfo --html %t" TeX-run-compile nil (texinfo-mode) :help "Run Makeinfo with HTML output") ("AmSTeX" "%(PDF)amstex %`%S%(PDFout)%(mode)%' %t" TeX-run-TeX nil (ams-tex-mode) :help "Run AMSTeX") ("ConTeXt" "texexec --once --texutil %(execopts)%t" TeX-run-TeX nil (context-mode) :help "Run ConTeXt once") ("ConTeXt Full" "texexec %(execopts)%t" TeX-run-TeX nil (context-mode) :help "Run ConTeXt until completion") ("BibTeX" "bibtex %s" TeX-run-BibTeX nil t :help "Run BibTeX") ("Biber" "biber %s" TeX-run-Biber nil t :help "Run Biber") ("View" "open -a Preview.app %s.pdf" TeX-run-discard-or-function t t :help "Run Viewer") ("Print" "%p" TeX-run-command t t :help "Print the file") ("Queue" "%q" TeX-run-background nil t :help "View the printer queue" :visible TeX-queue-command) ("File" "%(o?)dvips %d -o %f " TeX-run-command t t :help "Generate PostScript file") ("Index" "makeindex %s" TeX-run-command nil t :help "Create index file") ("Check" "lacheck %s" TeX-run-compile nil (latex-mode) :help "Check LaTeX file for correctness") ("Spell" "(TeX-ispell-document \"\")" TeX-run-function nil t :help "Spell-check the document") ("Clean" "TeX-clean" TeX-run-function nil t :help "Delete generated intermediate files") ("Clean All" "(TeX-clean t)" TeX-run-function nil t :help "Delete generated intermediate and output files") ("Other" "" TeX-run-command t t :help "Run an arbitrary command"))))
 '(ansi-color-faces-vector [default bold shadow italic underline bold bold-italic bold])
 '(ansi-color-names-vector ["#fdf6e3" "#dc322f" "#859900" "#b58900" "#268bd2" "#d33682" "#2aa198" "#657b83"])
 '(ansi-term-color-vector [unspecified "#1F1611" "#660000" "#144212" "#EFC232" "#5798AE" "#BE73FD" "#93C1BC" "#E6E1DC"])
 '(compilation-message-face (quote default))
 '(custom-safe-themes (quote ("e16a771a13a202ee6e276d06098bc77f008b73bbac4d526f160faa2d76c1dd0e" "bbd99b10462e3d0f4ac6da09e23e5de1fed4f7fe87d679a6468a14b0b6c8e634" "77bd459212c0176bdf63c1904c4ba20fce015f730f0343776a1a14432de80990" "ccba14aeee25adc49effe868f1820dfbf28b557353e4f69ca55de50642caf63f" "a30d5f217d1a697f6d355817ac344d906bb0aae3e888d7abaa7595d5a4b7e2e3" "290987f8b1cbe93977fc21403c1e9bdc95013cb0cf29d0f6120768463ee61442" "0d19ff470ad7029d2e1528b3472ca2d58d0182e279b9ab8acd65e2508845d2b6" "9a217ee1dcefd5e83f78381c61e25e9c4d25c7b80bf032f44d7d62ca68c6a384" "96efbabfb6516f7375cdf85e7781fe7b7249b6e8114676d65337a1ffe78b78d9" "c1fb68aa00235766461c7e31ecfc759aa2dd905899ae6d95097061faeb72f9ee" "7feeed063855b06836e0262f77f5c6d3f415159a98a9676d549bfeb6c49637c4" "c739f435660ca9d9e77312cbb878d5d7fd31e386a7758c982fa54a49ffd47f6e" "fc2782b33667eb932e4ffe9dac475f898bf7c656f8ba60e2276704fabb7fa63b" "ca229a0a89717c8a6fe5cd580ee2a85536fbafce6acb107d33cf38d52e2f492c" "5bd5af0deb1ab0e2c1b9c54d94a3f030529b6c7034fdf0d3cc4b0e7e0338cb91" "c27b3d858a9c033b93f9447337659d3ba34a72251b794e8bfe792ed722cc1f67" "2affb26fb9a1b9325f05f4233d08ccbba7ec6e0c99c64681895219f964aac7af" "65ae93029a583d69a3781b26044601e85e2d32be8f525988e196ba2cb644ce6a" "c4e6fe8f5728a5d5fd0e92538f68c3b4e8b218bcfb5e07d8afff8731cc5f3df0" "758da0cfc4ecb8447acb866fb3988f4a41cf2b8f9ca28de9b21d9a68ae61b181" "5bee853b49605401494a6574d1c5a991a0d75e86fedf5ad9a1577de6cbba7691" "f0ea6118d1414b24c2e4babdc8e252707727e7b4ff2e791129f240a2b3093e32" "9370aeac615012366188359cb05011aea721c73e1cb194798bc18576025cabeb" "0e121ff9bef6937edad8dfcff7d88ac9219b5b4f1570fd1702e546a80dba0832" "968d1ad07c38d02d2e5debffc5638332696ac41af7974ade6f95841359ed73e3" "d070fa185078bf753dcfd873ec63be19fa36a55a0c97dc66848a6d20c5fffdad" "d677ef584c6dfc0697901a44b885cc18e206f05114c8a3b7fde674fce6180879" "8aebf25556399b58091e533e455dd50a6a9cba958cc4ebb0aab175863c25b9a4" "92653253cdebc448ad0b8b2ba08c6bd87c8af5d8d1c346f86fb4029a1f46a716" default)))
 '(fci-rule-character-color "#452E2E")
 '(fci-rule-color "#eee8d5")
 '(fringe-mode 6 nil (fringe))
 '(highlight-changes-colors (quote ("#d33682" "#6c71c4")))
 '(highlight-tail-colors (quote (("#eee8d5" . 0) ("#B4C342" . 20) ("#69CABF" . 30) ("#69B7F0" . 50) ("#DEB542" . 60) ("#F2804F" . 70) ("#F771AC" . 85) ("#eee8d5" . 100))))
 '(linum-format " %7d ")
 '(magit-diff-use-overlays nil)
 '(main-line-color1 "#191919")
 '(main-line-color2 "#111111")
 '(package-archives (quote (("gnu" . "http://elpa.gnu.org/packages/") ("melpa" . "http://melpa.milkbox.net/packages/"))))
 '(syslog-debug-face (quote ((t :background unspecified :foreground "#2aa198" :weight bold))))
 '(syslog-error-face (quote ((t :background unspecified :foreground "#dc322f" :weight bold))))
 '(syslog-hour-face (quote ((t :background unspecified :foreground "#859900"))))
 '(syslog-info-face (quote ((t :background unspecified :foreground "#268bd2" :weight bold))))
 '(syslog-ip-face (quote ((t :background unspecified :foreground "#b58900"))))
 '(syslog-su-face (quote ((t :background unspecified :foreground "#d33682"))))
 '(syslog-warn-face (quote ((t :background unspecified :foreground "#cb4b16" :weight bold))))
 '(vc-annotate-background nil)
 '(vc-annotate-color-map (quote ((20 . "#dc322f") (40 . "#CF4F1F") (60 . "#C26C0F") (80 . "#b58900") (100 . "#AB8C00") (120 . "#A18F00") (140 . "#989200") (160 . "#8E9500") (180 . "#859900") (200 . "#729A1E") (220 . "#609C3C") (240 . "#4E9D5B") (260 . "#3C9F79") (280 . "#2aa198") (300 . "#299BA6") (320 . "#2896B5") (340 . "#2790C3") (360 . "#268bd2"))))
 '(vc-annotate-very-old-color nil)
 '(weechat-color-list (quote (unspecified "#fdf6e3" "#eee8d5" "#990A1B" "#dc322f" "#546E00" "#859900" "#7B6000" "#b58900" "#00629D" "#268bd2" "#93115C" "#d33682" "#00736F" "#2aa198" "#657b83" "#839496"))))
(custom-set-faces
 ;; custom-set-faces was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.
 )

【问题讨论】:

  • 也许尝试将光标放在 ansi-term 窗口中您知道应该有颜色但没有颜色的字符上,然后键入:C-u C-x = 并查看在该特定位置使用了哪些面孔(如果有的话)。不要使用 Homebrew,而是考虑使用:emacsformacosx.com——这样,与 Emacs 相关的所有内容都打包在一个应用程序中,而不是分散在你的硬盘驱动器中——唯一需要担心的其他位置是你的 .emacs.d
  • @lawlist 谢谢。 C-u C-x = 一直跳回提示并且没有显示有关面部的信息。使用 emacsformacosx.com 是对的,我只是认为使用 Homebrew 更新会很容易。试图为自己节省一些痛苦,但似乎我正在添加更多。 :-)

标签: bash emacs emacs24 dot-emacs ansi-term


【解决方案1】:

似乎在应用程序运行时,它没有使用中的设置 我的 bash_profile

我相信这是问题所在,似乎 emacs 在作为应用程序启动时(即不是从 shell 启动)并没有选择正确的 PATH。这解释了为什么在从 shell 启动 emacs 时ansi-term 有颜色(我合理假设您从 shell 运行 emacs -qemacs -nw :))。

请参阅this 了解可能的解决方案。您可能会发现this 也很有帮助。

【讨论】:

  • 试过了。它不能解决问题。我现在正在切换到从终端启动 emacs,直到有人可以提出解决方案。同时,我尝试了这里的代码:paste.lisp.org/display/132476 将其保存在一个文件中并将其加载到我的 init.el 中。像这样调用函数(setenv-from-shell-environment)你知道如何实际使用它吗?正如您可能看到的,我既是 emacs 又是 lisp 的菜鸟。而且我现在真的有 emacs 小指...
  • 您正在正确使用函数(setenv-from-shell-environment)。它只是从你的 shell 中获取环境变量并将它们设置在 emacs 中。
【解决方案2】:

这可能是一个 hack,但我通过将我的 .bash_profile 复制到 .bashrc 解决了这个问题(所以我同时拥有 .bash_profile.bashrc)。

如果我从 Terminal.app 启动 Emacs.app,它会读取我的 .bash_profile。当我通过单击 Applications 文件夹中的 Emacs 图标启动它时,它会读取我的.bashrc。我不知道这是否是正常行为,但出于我的目的,它运行完美,因为我已从 .bashrc 中删除了电力线,因此 ansi-term 不会一直抛出错误。

总而言之,这是一个非常简单的解决方案,我希望其他人可以从中受益。

【讨论】:

  • 我很高兴你设法修复它,恭喜!为什么不接受这个作为答案?
  • @IqbalAnsari 我可以在发布 24 小时后接受我自己的答案。在我能做到这一点之前还有一些时间:-)
猜你喜欢
  • 2011-03-18
  • 1970-01-01
  • 2012-08-01
  • 2017-02-01
  • 2013-09-23
  • 2012-09-14
  • 1970-01-01
  • 2015-01-27
  • 1970-01-01
相关资源
最近更新 更多