Ser*_*gey 7 emacs color-scheme
我使用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)
Run Code Online (Sandbox Code Playgroud)
但我认为这对我不起作用.
我现在有着日晒色彩的配色方案.但我不想改变它的颜色,只适用于shell模式.
编辑:
当我更改系统终端的颜色(使用我的主目录中的.dircolrs文件)时 - emacs会读取它,但它(emacs)会略微改变颜色 - 它会在shell模式下使颜色更暗或更亮.
我不知道为什么Emacs会这样做.
不同的颜色(游戏,公共......:
这是系统终端:

这是Emacs:
这些是改变的颜色,默认颜色和曝光主题Emacs在蓝色背景上制作蓝色dirs.
我知道找到一个hack并不是一个大问题,只是想知道为什么Emacs会改变颜色.
我找到了这个地方,它帮助了我(我是一个完整的新手,但我认为这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)) # this helped
Run Code Online (Sandbox Code Playgroud)
现在ansi-color-names-vector在shell中工作.
小智 6
这是我用来为emacs设置Solarized颜色的方法.我继续发布我的整个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))))))
Run Code Online (Sandbox Code Playgroud)
M-x customize-variable RET ansi-color-names-vector RET
现有文本不会受到影响,但新打印的文本(即使在相同的shell缓冲区中)也会显示新颜色.
| 归档时间: |
|
| 查看次数: |
5871 次 |
| 最近记录: |