VIM在平铺的顶部(或底部)放一条线来设置属性?不适合我

VIM在平铺的顶部(或底部)放一条线来设置属性?不适合我,vim,text-formatting,Vim,Text Formatting,我在“Vim book OPL.pdf”中读到,您可以在文件的顶部放一行,例如一个.txt文件,它将改变Vim处理单个文件的方式。例如 vim:tw=78 但是,它对我没有任何作用,我想知道vim7.0是否仍然是这样?它被称为“modeline”,您可以通过键入来获得更多信息: :help modeline 根据帮助中的描述,我认为正确的格式应该是vim:tw=78 您的示例似乎缺少空格 elwoode评论的新增内容: 添加模型线不会自动重新格式化现有文本。如果要重新格式化,必须选择一个区域并使

我在“Vim book OPL.pdf”中读到,您可以在文件的顶部放一行,例如一个.txt文件,它将改变Vim处理单个文件的方式。例如 vim:tw=78

但是,它对我没有任何作用,我想知道vim7.0是否仍然是这样?

它被称为“modeline”,您可以通过键入来获得更多信息:
:help modeline

根据帮助中的描述,我认为正确的格式应该是
vim:tw=78

您的示例似乎缺少空格

elwoode评论的新增内容:
添加模型线不会自动重新格式化现有文本。如果要重新格式化,必须选择一个区域并使用
gq
。请参见
:帮助gq

要根据modeline重新格式化整个文件,请使用:
gggqG
gg
表示转到第一行,
gq
对运动应用格式化,
G
转到最后一行)

确保在.vimrc中,您有
formatoptions+=t
来考虑根据textwidth设置的格式。在我的安装中,
t
似乎是默认的
formatoptions
的一部分

您正在尝试设置一个

语法将是:

vim:set textwidth=78:

由于安全原因,modeline通常默认被禁用(据我所知,最后一个在Vim 7.3中被取消);例如,在Debian中。它将在您的案例中(请参见
:set modeline?


如果您希望启用modeline支持,请将
设置modeline
添加到vimrc中。

仅作为一个选项,如果您需要,可以使用.vimrc:

autocmd FileType .txt set textwidth=78

我试过vim:tw=60 vim:tw=60:set tw=60:set textwidth=60您在vim之前留了空格吗?我刚刚尝试了一个现有的文本文件,它与vim 7.3一起工作。不过,它不会格式化现有文本,它只会自动转到textwidth字符后的下一行。就是这样!!!我想如果你在一个文件上放一个格式化命令,它会在你下次打开它时将文本更改为该格式。多亏了你,我知道只要把你输入的新内容改成那个文件。所以它一直在工作。因此,基本上你必须记住在输入内容之前先这样做。但是,你可以通过选择一个区域并使用
gq
来重新格式化现有文本。请参见
:帮助gq
。您可能需要设置正确的
formatoptions'以使
gq`工作。此外,您还需要打开modeline选项;:设置modeline,并指示要尝试读取的modeline数;:set modelines=1I已设置:set modeline,但现在已尝试:set modelines=1仍不工作。我注意到,如果我打开一个文件(比如一个帮助txt文件,它的命令与我一直在尝试的vim:tw=72相同),它会工作,但如果我在我创建的文件中尝试这样做,则不会工作