lstlisting:vimscript 的高亮显示

lstlisting:vimscript 的高亮显示

我想记录一些用 vimscript 编写的脚本。如何使用 listing 包来实现这一点?我还没有找到 listings 支持的 vimscript 语言。

使用 lstlisting 设置的示例:

" Use Vim settings, rather than Vi settings (much better!).
" This must be first, because it changes other options as a side effect.
set nocompatible

" allow backspacing over everything in insert mode
set backspace=indent,eol,start

非常感谢!

答案1

listings软件包不支持开箱即用的 vimscript。您必须编写自己的突出显示规则。这里我介绍一种替代方案,即软件包minted。它使用外部程序pygmentize来格式化源代码,因此需要 shell 转义(pygmentize当然需要安装)。还建议使用替代字体,例如lmodern带有粗体电传字体的字体。在我看来,结果比 好得多listings

\documentclass{article}
\usepackage{lmodern,minted}
\begin{document}

\begin{minted}{vim}
" Use Vim settings, rather than Vi settings (much better!).
" This must be first, because it changes other options as a side effect.
set nocompatible

" allow backspacing over everything in insert mode
set backspace=indent,eol,start  
\end{minted}

\end{document}

在此处输入图片描述

答案2

我开始为 vim 编写自己的定义。下面是我的第一个方法:

    \lstdefinelanguage{vim}
{
  % list of keywords
  morekeywords={
  set, let
  map, nmap,
  filetype,
  on, off,
  autocmd,
  Plugin,
  call,
   },
morecomment=[l]{"}, % l is for line comment
morestring=[b]' % defines that strings are enclosed in double quotes
}

相关内容