Vim은 파일을 다시 들여쓰기하고 일부 들여쓰기를 하드코딩합니다.

Vim은 파일을 다시 들여쓰기하고 일부 들여쓰기를 하드코딩합니다.

vim ( vim 사용)을 사용하여 파일을 다시 들여쓰는 데 약간의 어려움이 있습니다 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에서 대략적인 들여쓰기를 얻고 외부 터미널 유틸리티를 사용하여 들여쓰기를 실제로 정확하게 만드는 것으로 충분합니까?

답변1

해당 들여쓰기를 위해 스캔되는 행 수는 \begin{...}제한되어 있지만 이는 (불행히도 문서화되지 않은) 전역 변수로 제어할 수 있으며 g:tex_max_scan_line기본값은 60입니다.

보다변수 정의indent/tex.vimVim 런타임 과 함께 제공됩니다.

자신의 LaTeX 문서에 더 적합한 값으로 이 값을 늘릴 수 있습니다. 예를 들어 vimrc 파일에 다음을 추가하세요.

let g:tex_max_scan_line = 400

이렇게 하면 제한이 400행으로 늘어나는데, 게시물에 따르면 이 정도면 충분합니다. 이 변경 사항은 귀하의 실적에 약간의 영향을 주지만 수용할 수 있을 것으로 기대합니다.

관련 정보