Vim - 根据命令将.tex行调整为80列

时间:2016-06-02 16:59:22

标签: vim latex

我已在tex.vim中将命令定义为

setlocal tw=80
:map <F4> {gq}

将当前段落调整为80或更少的列。然而,虽然这可以识别注释并使它们保持原样,但它并不能识别命令。虽然编译没有什么区别,但我喜欢保持我的表格和方程式缩进和组织,这意味着在使用{gq}时我必须小心。有没有办法定义一个知道这种内容的命令并按原样保留命令?

修改

实施例! 请考虑以下代码

Some generic text to introduce an Eq.: 
\begin{equation}
y =  ax + b,
\end{equation}
after which there is this long text that should not be more than some $x$ columns but it is, so it should be cut.

使用命令将此段调整为最多80列后,我预计会发生这种情况(emacs会这样做)

Some generic text to introduce an Eq.: 
\begin{equation}
y =  ax + b,
\end{equation}
after which there is this long text that should not be more than some 
$x$ columns but it is, so it should be cut.

但是,使用我预先定义的命令,我得到了这个:

Some generic text to introduce an Eq.: \begin{equation} y =  ax + b,
\end{equation} after which there is this long text that should not be more than
some $x$ columns but it is, so it should be cut.

这不是我想要的。

干杯

1 个答案:

答案 0 :(得分:0)

您可以替换文字

 :%s/.\{80\}/&\r/g

这将在所有行中的第80个字符后面添加一个新行,从而将它们分开。

如果您希望在保存时自动完成此操作,则可以使用autocommand

 :au BufWritePre *.* :%s/.\{80\}/&\r/g

将此行放在~/.vimrc文件中。

现在,无论何时保存文件,第80列后的文本都将移至下一行。

(还有其他几种方法可以做到!)