[英]Emacs, How to change some colors in M-x shell?
我使用 Emacs 24 並希望在處於 shell 模式( ls
命令)時更改目錄和文件的顏色。 理想情況下 - 取決於文件的權限。
我怎樣才能做到這一點?
我試着玩
(setq ansi-color-names-vector
["black" "red" "green" "yellow" "PaleBlue" "magenta" "cyan" "white"])
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)
但我認為這對我不起作用。
我現在有曝光配色方案。 但我不想改變它的顏色,只針對 shell 模式。
編輯:
當我為我的系統終端更改顏色時(使用我的主目錄中的 .dircolrs 文件)- emacs 讀取它,但它(emacs)稍微改變了顏色 - 它使顏色在 shell 模式下更暗或更亮。
而且我不知道為什么 Emacs 會這樣做。
不同的 dirs 顏色(游戲,公共...:
這是系統終端:
這是 Emacs:
這些是更改后的顏色,默認顏色和曝光主題 Emacs 在藍色背景上制作藍色目錄。
我明白找到hack問題不大,只是想知道為什么Emacs會稍微改變顏色。
Mx customize-variable RET ansi-color-names-vector RET
現有文本不會受到影響,但新打印的文本(即使在同一個 shell 緩沖區中)將顯示新顏色。
我在某個地方找到了這個,它對我有幫助(我是一個完全的新手,但我認為setq ansi-color-names-vector
就足夠了):
(setq ansi-color-names-vector
["black" "tomato" "PaleGreen2" "gold1"
"DeepSkyBlue1" "MediumOrchid1" "cyan" "white"])
(setq ansi-color-map (ansi-color-make-color-map)) ;; helped line
現在ansi-color-names-vector
在 shell 中工作。
這是我用來為 emacs 設置曝光顏色的方法。 我繼續並發布了我的整個 ansi-term 配置,以防任何其他設置可能有用。
(use-package ansi-term
:defer t
:init
(progn
;; ;; Use variable width font faces in current buffer
(defun my-buffer-face-mode-variable ()
;; "Set font to a variable width (proportional) fonts in current buffer"
(interactive)
(setq buffer-face-mode-face '(:family "Menlo For Powerline" :height 100))
(text-scale-adjust 1)
(buffer-face-mode))
(setq system-uses-terminfo nil)
(add-hook 'term-mode-hook
'(lambda ()
(linum-mode 0)
(term-set-escape-char ?\C-z)
(term-set-escape-char ?\C-x)
(define-key term-raw-map "\C-c" 'term-interrupt-subjob)
(define-key term-raw-map (kbd "M-x") 'execute-extended-command)
(setq autopair-dont-activate t)
(setq ac-auto-start nil)
(visual-line-mode -1)
;; (my-buffer-face-mode-variable)
))
(defun my-term-paste (&optional string)
(interactive)
(process-send-string
(get-buffer-process (current-buffer))
(if string string (current-kill 0))))
(defun my-term-pasteboard-paste ()
(interactive)
(process-send-string
(get-buffer-process (current-buffer))
(ns-get-pasteboard)))
(add-hook 'term-exec-hook '(lambda ()
(set-buffer-process-coding-system 'utf-8-unix 'utf-8-unix)
(goto-address-mode)
(define-key term-raw-map (kbd "C-y") 'my-term-paste)
(define-key term-raw-map (kbd "s-v") 'my-term-pasteboard-paste)
(let ((base03 "#002b36")
(base02 "#073642")
(base01 "#586e75")
(base00 "#657b83")
(base0 "#839496")
(base1 "#93a1a1")
(base2 "#eee8d5")
(base3 "#fdf6e3")
(yellow "#b58900")
(orange "#cb4b16")
(red "#dc322f")
(magenta "#d33682")
(violet "#6c71c4")
(blue "#268bd2")
(cyan "#2aa198")
(green "#859900"))
(setq ansi-term-color-vector
(vconcat `(unspecified ,base02 ,red ,green ,yellow ,blue
,magenta ,cyan ,base2))))))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.