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

Posted

技术标签:

【中文标题】VIM 在磁贴的顶部(或底部)放置一条线来设置属性?不适合我【英文标题】:VIM putting a line at the top (or bottom) of a tile to set attributes? doesnt work for me 【发布时间】:2010-12-06 09:22:36 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

它被称为“模式线”,您可以通过键入以下内容获取更多信息::help modeline

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

您的示例似乎缺少空格。

来自 elwoode 评论的补充: 添加模式行不会自动重新格式化现有文本。如果您想重新格式化,您必须选择一个区域并使用gq。见:help gq

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

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

【讨论】:

我试过 vim:tw=60 vim: tw=60 :set tw=60 :set textwidth=60 您在vim 之前是否留有空格?我刚刚尝试了一个现有的文本文件,它适用于 vim 7.3。但是,它不会格式化现有文本,它只会在 textwidth 字符之后自动转到下一行。 就是这样!我想如果你在文件上放置一个格式化命令,它会在你下次打开它时将文本更改为该格式。多亏了你,我知道是否只会更改您在该文件中键入的新内容。所以它一直在工作。所以基本上你必须记住在输入内容之前先这样做。 但是您可以通过选择一个区域并使用gq 来重新格式化现有文本。见:help gq。可能你必须设置正确的formatoptions' to get gq`working。【参考方案2】:

由于安全原因,默认情况下通常禁用模式行(据我了解,最后一个在 Vim 7.3 中被废除);例如,它在 Debian 中。它会在你的情况下(见:set modeline?)。

如果您希望启用模式行支持,请将 set modeline 添加到您的 vimrc。

【讨论】:

【参考方案3】:

您正在尝试设置modeline。

语法是:

vim:set textwidth=78:

【讨论】:

另外,您需要打开模式行选项; :set modeline,并指明尝试读取多少个modeline; :set modelines=1 我已经设置了 :set modeline 但现在尝试了 :set modelines=1 仍然无法正常工作。我注意到如果我打开一个文件(比如一个与我一直在尝试 vim:tw=72 具有相同命令的帮助 txt 文件,它正在工作,但如果我尝试在我制作的文件中这样做【参考方案4】:

只是一个选项,如果需要,您可以使用 .vimrc:

autocmd FileType .txt set textwidth=78

【讨论】:

以上是关于VIM 在磁贴的顶部(或底部)放置一条线来设置属性?不适合我的主要内容,如果未能解决你的问题,请参考以下文章

如何在uiTableViewCell内的uiTextField下画一条线?

从 Firestore 数据创建扩展磁贴的动态列表

如何指定固定站点磁贴的文本颜色?

Flash Builder 长按列表 - 移动

UWP 应用程序在 Windows 10 中的查找结果的图标/磁贴的来源是啥?

Vim:如何将视觉块移动到寄存器?