为什么列表没有在 bash 脚本中间正确地为注释着色?

为什么列表没有在 bash 脚本中间正确地为注释着色?

我创建了一个最小示例来说明该行为。我有一个bash使用的代码sed。我想使用 进行多次替换sed,将每个替换放在不同的行中,以便我可以为每个替换添加注释。不幸的是,listings它遇到了一些问题,它无法识别注释,因此无法正确着色。

\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{xcolor}
\usepackage{listings}
\author{authorname}
\begin{document}
\begin{lstlisting}[language=bash,commentstyle=\color{gray},showstringspaces=false]
cat a  # comment 1
sed "
  s/[^[:alnum:]'-]/ /g # comment 2
  s/\(.*\)/\L\1/ # comment 3
  s/\s\+/\n/g # comment 4
  " \
< text.txt
\end{lstlisting}
\end{document}

输出如下图所示:

在此处输入图片描述

为了获得正确的评论颜色,应该如何修复它?

相关内容