当我使用vim编辑markdown文件时,我有很好的语法着色(通过vim-markdown和vim-markdown-preview插件)。
当我使用less(pager)查看文件时,我希望使用相同的语法着色。有没有办法减少这种语法着色?或者是否有另一个具有此功能的寻呼机?
答案 0 :(得分:1)
您可以使用e2ansi,这是一个在批处理模式下使用Emacs来执行语法突出显示的程序包。您可以通过定义LESSOPEN环境变量来配置less
以使用它。
要让Emacs语法突出显示MarkDown,您还需要安装markdown-mode。
(最后,为了在编辑器中获得与less
中相同的语法突出显示,我猜你必须切换到Emacs;)当然,考虑到Emacs带有一个名为Evil的Vim兼容包模式,它可能没有看起来那么糟糕。)
答案 1 :(得分: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
答案 2 :(得分: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
。
答案 3 :(得分:0)
这是一种使用less
在控制台中查看GitHub markdown文件的方法。
安装pandoc
和lynx
。
a。对于Ubuntu(和WSL):sudo apt install pandoc lynx
b。对于MacOS:brew install pandoc lynx
将以下脚本文件命名为less
并将其保存在PATH
上的某个位置,例如/usr/local/bin
chmod a+x /usr/local/bin/less
hash -r
或/usr/bin/less
而不是此脚本#!/bin/bash
if [ "${1##*.}" == md ]; then
pandoc "$1" | lynx -stdin
else
/usr/bin/less "$1"
fi