【问题标题】:Markdown syntax coloring for less (pager)更少的 Markdown 语法着色(寻呼机)
【发布时间】:2015-01-10 01:35:00
【问题描述】:

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

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

【问题讨论】:

  • 我还查看了highlight,它的工作原理类似并且输出颜色更好(恕我直言)。 LESSOPEN="| /usr/local/bin/highlight --out-format=xterm256 %s"
  • 另外,发现 vimpager 给了我与 vim 相同的语法着色 :)) 如果您使用 .vimrc 的精简版本作为 .vimpagerrc ,它会很好用 请参阅 here 获取一些建议.
  • 我最终设置了我的 bash 配置,以便我的 PAGER 使用高亮显示它更喜欢 vimpager 或更少,然后使用 src-hilite-lesspipe.sh。

标签: markdown pager


【解决方案1】:

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

要让 Emacs 语法高亮 MarkDown,您还需要安装 markdown-mode

(最后,要在less 中获得与编辑器中相同的语法突出显示,我想您必须切换到 Emacs ;)当然,鉴于 Emacs 带有一个名为 Evil Mode 的 Vim 兼容包,它可能没有看起来那么糟糕。)

【讨论】:

    【解决方案2】:

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

    1. 安装pandoclynx

      一个。对于 Ubuntu(和 WSL):sudo apt install pandoc lynx

      b.对于 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
    

    【讨论】:

      【解决方案3】:

      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
      

      【讨论】:

      • 真的有人用这种方法得到结果吗?在 ubuntu 14.04 上,这确实为 less 添加了语法高亮,但它不支持 Markdown ;这是有道理的,因为 gnu.org/software/src-highlite 上没有列出 Markdown
      • 这里有一个针对 Markdown 支持的开放错误:savannah.gnu.org/bugs/?46542
      • 应该是:apt-get install source-highlight
      • @muenalan 确实,不知道我是怎么错过的。编辑和修复。感谢您的关注!
      • 截至今天,source-highlight 仍然不支持 markdown(这实际上使得这个答案回答了原来的问题)。
      【解决方案4】:

      Vim Markdown highlighting (and folding) 启动并运行后,最直接的解决方案是在只读模式下使用vim -R 调用vim,或者(至少在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
      
      " 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

      【讨论】:

        猜你喜欢
        • 2011-07-16
        • 1970-01-01
        • 2015-03-17
        • 2011-03-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-29
        • 2014-10-13
        相关资源
        最近更新 更多