我怎样才能让这个命令不包装类似的东西\item?
例如:
\begin{enumerate}
\item this might be a long paragraph that spans multiple lines
\item blah
\end{enumerate}
Run Code Online (Sandbox Code Playgroud)
如果我将光标放在第一项(的第一个字母this)上运行“gq}” ,它会产生以下输出:
\begin{enumerate}
\item this might be a long
paragraph that spans multiple
lines \item blah \end{enumerate}
Run Code Online (Sandbox Code Playgroud)
这就是我要的:
\begin{enumerate}
\item this might be a long
paragraph that spans multiple
lines
\item blah
\end{enumerate}
Run Code Online (Sandbox Code Playgroud)
如果我能以某种方式让 vim 识别出标记\item表示段落的结尾,我认为它会正常工作。不过,我该怎么做呢?
我认为您可以通过将 'formatlistpat' 选项设置为包含段落分隔标签来做到这一点。您需要在 'formatoptions' 中包含 'n' 才能工作。看
:help 'formatlistpat'
:help 'formatoptions'
Run Code Online (Sandbox Code Playgroud)
例如,与
:set formatlistpat=^\\s*\\\\\\(end\\\\|item\\)\\>
:set formatoptions+=n
:set textwidth=40
Run Code Online (Sandbox Code Playgroud)
格式化你的例子会产生这个:
\begin{枚举}
\item 这可能是一个很长的段落
跨越多行
\项目等等
\end{枚举}
请注意,第一项的第二行按\item标签的长度缩进,因此它不完全是您想要的,但它可能足够接近。您也可以\ze按照帮助中的说明进行试验,看看是否可以让 Vim 识别标签而不缩进后续行。我没有试过。
更新
如果使用:let代替:set.
:let &l:flp = '^\s*\\\(end\|item\)\>'
该l:部分指定它是缓冲区本地设置。
更新
要将缩进减少到 1 个字符,请执行以下操作:
:let &l:flp = '^\s*\\\ze\(end\|item\)\>'
请注意,如果 之前有任何空格\item,则缩进将变为该数字 + 1。我不知道是否可以使用\ze.
| 归档时间: |
|
| 查看次数: |
2391 次 |
| 最近记录: |