要是能给 man page 加上颜色就好了

适当的颜色能增加可读性,不然全黑白配上下划线太单调。可以给 Man Mode 加上颜色(甚至从头写个 man page 的 Major Mode)。似乎 neovim 的 ft=man 效果不错(比 most(1) 好),可作为参照。

$ man strcpy | nvim -u NORC -c 'set ft=man' -

3 个赞

默认也是有颜色的呀,设置 PAGER=less

怎么你们都有颜色?

我的配置

# Colored manual pages
# Gentoo has some issue, @see http://unix.stackexchangm.com/questions/6010/colored-man-pages-not-working-on-gentoo
export LESS_TERMCAP_mb=$'\E[01;31m' # begin blinking
export LESS_TERMCAP_md=$'\E[01;38;5;74m'  # begin bold
export LESS_TERMCAP_me=$'\E[0m' # end mode
export LESS_TERMCAP_se=$'\E[0m' # end standout-mode
export LESS_TERMCAP_so=$'\E[01;44;33m' # begin standout-mode - info box (search result highlight)
export LESS_TERMCAP_ue=$'\E[0m' # end underline
export LESS_TERMCAP_us=$'\E[04;38;5;146m' # begin underline

1 个赞

我的标题不清楚,我想要的 Emacs 的 Man Page,比如 M-x man 或 M-x woman,不是终端中的。


另外一个相关问题我不知道有没有办法让 Emacs 作为 man 的 pager,像 Neovim 这样:

~ $ export MANPAGER="nvim -u NORC -c 'set ft=man' -"
~ $ man strcpy

我试了下发现 Man-mode 没法直接用。

有没有彩色的? :joy:

Neovim ft=man 的配色比 less + LESS_TERMCAP 和 most(1) 细,比如截图中,strcpy 函数声明中,函数名、类型和参数名分别使用了 3 个不同颜色,而 less/most 只用到了 2 个。

Neovim 在 0,2,3 三個 sections 裏用了 C 的高亮:https://github.com/neovim/neovim/blob/f3d0a1741ef69222ab7893ce4f801d26b6b3fb00/runtime/syntax/man.vim#L34

不過感覺 cc-mode 用來做這個有點重…

1 个赞

虽然细节没那么丰富,但是有颜色的啊

原来如此,而且总共只用了 60 行代码。看样子从头写个 Man Page 的 Major Mode 应该可行。

把类似 man 渲染出来的结果(如下)直接喂给 Emacs 的 C Mode 加颜色可行,高亮的速度应该可以接受,Markdown、Org 等都是这么做的

 char *
 strcpy(char * dst, const char * src);

我的没,我之前没注意到有 Face (如 Man-overstrike) 可以改,你的应该就是改了 Face 的。

woman-mode和其他major-mode一样,会给关键字加上font face,比如woman-bold。但某个font face颜色是由theme决定的。随便搜了一下,zenburn是支持woman的。

你可以用wucuo-current-font-face from GitHub - redguardtoo/wucuo: Fastest solution to spell check camel case code or plain text 查看当前文本的font face

我觉得还是让neovim显示man比较好,用emacs控制他显示哪个文档就行了吧

可以看看下面这个帖子

有lisp魔咒加持,好害怕😨