如何在不真正换行的情况下包装较长的终端命令?

如何在不真正换行的情况下包装较长的终端命令?

这可能看起来像重复的问题这个等等,但我确实很难找到所需的解决方案。

该方法 breaklines=true不起作用,因为它会破坏长命令。因此 simple 也copy and paste不起作用,因为当代码粘贴到终端时,它会被前面的尖括号 > 分成多行。

答案1

使用accsupp包。这样,无论是否有可见的换行符,您都可以进行复制。

\documentclass{article}
\usepackage{accsupp}
\usepackage{listings}
\begin{document}
\BeginAccSupp{method=plain,ActualText=long long long command long long long command long long long command long long long command}
\begin{lstlisting}[breaklines=true]
long long long command long long long command long long long command long long long command
\end{lstlisting}
\EndAccSupp{}
\end{document}

如果代码中包含特殊字符,则需要一些更花哨的东西(method=pdfstringdefhyperref):

\documentclass{article}
\usepackage[pdfencoding=auto]{hyperref}
\usepackage{accsupp}
\usepackage{listings}
\begin{document}
\BeginAccSupp{method=pdfstringdef,ActualText=
grep -rw --include \unichar{"005C}*.h --include \unichar{"005C}*e.c* "Write()" . |sed -e 's/Write/Read/g'}
\begin{lstlisting}[breaklines=true]
grep -rw --include \*.h --include \*e.c* "Write()" . |sed -e 's/Write/Read/g'
\end{lstlisting}
\EndAccSupp{}
\end{document}

相关内容