Vim
Vim 重新縮進文件,硬編碼一些縮進
我在使用 vim reindent 文件(帶有
gg=G
)時遇到了一些困難。當我有一個更大的文件(不是那麼大,可能少於 400 行程式碼)時,我認為 Vim 無法正確縮進某些行,因為該行之後的縮進所依賴的行是上面的很多行(我假設所以,因為我用更小的塊嘗試過,然後縮進是正確的)。
例子:
\begin{itemize} \begin{minipage} %indent +2 (after \begin{itemize}) \item %indent +1 (after \begin{minipage}) but -1 because it's \item %some lines %indent +1 \end{minipage} %indent -1 \end{itemize} %indent -2 <--- here is the Problem, because here has to be -double indent
現在,如果在這種情況下,行
%some lines
有很多行,那麼\end{itemize}
不會向左移動兩個縮進(這是正確的),而是僅移動一個縮進:/這樣做的問題是這會弄亂下面所有行的整個縮進。
我最喜歡的解決方案是,是否會有類似
%stopzone
LaTeX 的註釋來表示語法突出顯示以停止目前(數學)區域。也許類似於
%indent -1
將行向左縮進一個。有誰知道你將如何實現這樣的東西,或者更好的是,這樣的東西已經存在?
還是有其他工具可以比 Vim 做得更好?對我來說,從 Vim 獲得近似縮進並使用外部終端實用程序使縮進真正正確就足夠了?
掃描以找到相應縮進的行數
\begin{...}
是有限的,但它可以由(不幸的是未記錄的)全域變數控制g:tex_max_scan_line
,預設為 60。請參閱 Vim 執行時附帶的變數定義。
indent/tex.vim
對於您自己的 LaTeX 文件,您可以將其增加到更合理的值。例如,將其添加到您的 vimrc 文件中:
let g:tex_max_scan_line = 400
這會將限制增加到 400 行,根據您的文章,這應該足夠了。此更改會對您的性能造成很小的影響,但我希望它應該是可以接受的。