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
要根据模式行重新格式化整个文件,请使用:gggqG
(gg
表示转到第一行,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下画一条线?