I try to find a way to configure highlight column. Do you have any suggestions?
问题是什么?
我的问题是 如何通过配置 实现当前光标所在列的高亮?
首先吐槽你的标题,根本没说清楚,应该改为
How to highlight current column?
第一行代码是高亮,第2行改背景颜色,你自个配置
(global-hl-line-mode 1)
(set-face-background 'hl-line "#3e4446")
1 个赞
非常感谢,谢谢!!! 我的意思是高亮当前字符所在的整个屏幕上的这一列,不仅仅是当前的这字符。 我加了你的配置,好像不行。
hl-line
设置的是高亮某一行。想要高亮一列的话需要用 col-highlight
。
这是我的设置(用了spacemacs):
(defun liu233w/init-col-highlight ()
"高亮当前列"
(use-package col-highlight
:defer t
:init
(spacemacs/set-leader-keys
"otc" #'column-highlight-mode)
:config
;; 与默认的行高亮的颜色相同
(set-face-background col-highlight-face "#073642")))
貌似在windows底下移动光标非常卡顿啊_(:зゝ∠)_
EDIT:我刚刚发现 vline
更好用一些,起码不怎么卡了:
(defun liu233w/init-vline ()
"高亮当前列"
(use-package vline
:defer t
:init
(spacemacs/set-leader-keys
"otc" #'vline-mode
"otC" #'vline-global-mode)
:config
;; 与默认的行高亮的颜色相同
(set-face-background vline-face "#073642")))
It works very well, thank you very much!
与默认的行高亮的颜色相同
这个好像无效,颜色 太亮了
那个字符串是我的主题里面的颜色编号,你可以随便改的
那可能是因为设置颜色的代码没有运行,有可能那段代码放的位置不对,你可以试试把光标放在 (set-face-background vline-face "#073642")
的后面按 C-x C-e
行不行(可能需要重启一下 vline)
如果你的行高亮用的是 hl-line-mode 的话可以用下面的代码来获取高亮的颜色:
(face-attribute hl-line-face :background)
剛剛試了一下,這樣的話換了主題,hl-line的顏色也會跟著變了
(defun shdennlin/init-vline ()
(use-package vline
:init
(spacemacs/set-leader-keys
"otc" #'vline-mode
"otC" #'vline-global-mode)
:config
;; 設置背景顏色
(set-face-background vline-face (face-attribute 'hl-line :background))
))
但後來我發現,這樣會導致卡卡的,可能是因為每次都要調用一次 face-attribute 去讀顏色,所以後來我還是改成
(defun Shawn/init-vline ()
(use-package vline
:init
(spacemacs/set-leader-keys
"otc" #'vline-mode
"otC" #'vline-global-mode)
:config
;; (set-face-background vline-face (face-attribute hl-line-face :background))
(set-face-background vline-face "#44475a")
))
可以用(face-attribute hl-line-face :background)
得到 hl-line-face :background 的顏色