Markdown语法着色较少(寻呼机)

问题描述 投票:3回答:4

当我使用vim编辑markdown文件时,我有很好的语法着色(通过vim-markdown和vim-markdown-preview插件)。

当我使用less(pager)来查看文件时,我想要使用相同的语法着色。有没有办法减少这种语法着色?或者是否有另一个具有此功能的寻呼机?

markdown pager
4个回答
0
投票

less本身不支持语法高亮,但你可以使用GNU-source-highlight

首先,您需要安装它。例如,在RHEL / Centos / Fedora上(以root身份):

$ yum install source-highlight

在Debian / Ubuntu上

$ apt-get install source-highlight

然后配置您的寻呼机使用它:

$ export LESSOPEN="| /usr/bin/src-hilite-lesspipe.sh %s"
$ export LESS=" -R"

现在,它应该只是取代less

$ less README.md # pager with syntax highlighting

1
投票

您可以使用e2ansi,这是一个在批处理模式下使用Emacs来执行语法突出显示的包。您可以通过定义LESSOPEN环境变量来配置less以使用它。

要让Emacs语法突出显示MarkDown,您还需要安装markdown-mode

(最后,为了在编辑器中获得与less相同的语法突出显示,我猜你必须切换到Emacs;)当然,鉴于Emacs附带了一个名为Evil Mode的Vim兼容包,它可能不是看起来很糟糕。)


0
投票

随着Vim Markdown highlighting (and folding)启动并运行,最直接的解决方案是使用vim或(至少在Ubuntu上)更优雅地在只读模式下唤起vim -R

$ view filename.md

.vimrc文件的最底部添加以下内容,view的行为就像less一样,还有你最喜欢的语法高亮显示(不仅仅用于降价!)和折叠:

" less behaviour for view
" https://stackoverflow.com/a/39836959/2192488

" http://vim.wikia.com/wiki/Using_vim_as_a_syntax-highlighting_pager
function! LessBehaviour()
    if (!&modifiable || &ro)
        set nonumber
        set nospell
        set laststatus=0    " Status line
        set cmdheight=1
        set guioptions=aiMr    " No menu bar, nor tool bar
        noremap u <C-u>
        noremap d <C-d>
        noremap q :q<CR>
    endif
endfunction

" https://vi.stackexchange.com/a/9101/3168
augroup ReadOnly
    au!
    au VimEnter * :call LessBehaviour() 
augroup END

还有一个更严格的less.sh脚本。在我的系统上,它与vim打包在一起。要找到它,请使用:

$ find /usr/share/vim -name less.sh

但是,与上面列出的脚本相反,折叠不适用于此less.sh


0
投票

这是一种使用less在控制台中查看GitHub markdown文件的方法。

  1. 安装pandoclynx。 一个。对于Ubuntu(和WSL):sudo apt install pandoc lynx 湾对于MacOS:brew install pandoc lynx
  2. 将以下脚本文件命名为less并将其保存在PATH上的某个位置,例如/usr/local/bin
  3. 使脚本可执行,例如chmod a+x /usr/local/bin/less
  4. 键入hash -r/usr/bin/less将运行而不是此脚本
#!/bin/bash

if [ "${1##*.}" == md ]; then
  pandoc "$1" | lynx -stdin
else
  /usr/bin/less "$1"
fi
© www.soinside.com 2019 - 2024. All rights reserved.