2015-01-10 72 views
2

當我使用vim編輯降價文件時,我有很好的語法着色(通過vim-markdown和vim-markdown-preview插件)。Markdown syntax less(pager)

我想在使用less(pager)查看文件時使用相同的語法着色。有沒有辦法少做這種語法着色?或者是否有另一個具有此功能的傳呼機?

+2

我也看了[高亮](http://www.andre-simon.de/doku/highlight/en/highlight.php),它的工作原理類似,輸出顏色更好(imho)。 'LESSOPEN =「|/usr/local/bin/highlight --out-format = xterm256%s」' – MERM

+0

另外,找到[vimpager](https://github.com/rkitover/vimpager),它給了我相同的語法着色爲vim :))如果您使用.vimrc的精簡版作爲.vimpagerrc,請參閱[這裏](http://vim.wikia.com/wiki/Using_vim_as_a_syntax-highlighting_pager)以獲得一些建議。 – MERM

+0

我最終設置了我的bash配置,所以我的PAGER使它更喜歡vimpager或更少使用高亮,然後src-hilite-lesspipe.sh。 – MERM

回答

1

less本身不支持語法高亮顯示,但是您可以使用GNU-source-highlight這樣做。

首先,您需要安裝它。例如,在RHEL/Centos的/ Fedora的(根):

$ 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

正如任何人實際上有這種方法的結果?在Ubuntu 14上。04這不會增加語法突出顯示,但它不支持Markdown;這是有道理的,因爲Markdown沒有列在https://www.gnu.org/software/src-highlite/ – gou1

+0

這裏有一個針對Markdown支持的開放bug:http://savannah.gnu.org/bugs/?46542 –

+0

它應該是:apt-get install source-highlight – muenalan

1

您可以使用e2ansi,這是一個使用Emacs批處理模式執行語法高亮顯示的軟件包。您可以通過定義LESSOPEN環境變量來配置less以使用它。

要使Emacs語法突出顯示MarkDown,您還需要安裝markdown-mode。 (最後,爲了在編輯器中得到與less相同的語法突出顯示,我想你將不得不切換到Emacs;)當然,考慮到Emacs帶有一個名爲Evil Mode的Vim兼容包,它。因爲它似乎可能不是那麼糟糕)

0

隨着Vim Markdown highlighting (and folding)運行起來,最直接的解決辦法是喚起在只讀模式vim有兩種vim -R,或(至少在Ubuntu)更優雅:

$ 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 

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

還存在一個更嚴格的less.sh腳本。在我的系統上,它包含vim/usr/share/vim/vim74/macros/less.sh下。但是,摺疊不適用於該腳本。