14

这困扰了我很长时间,并且尽我所能尝试我找不到解决方法。

当我编辑文本(特别是乳胶,但这没关系)文件时,我希望它在 80 列时自动换行。它会这样做,除非我碰巧在一个括号子句的中间,它会缩进非常烦人的文本。例如,这工作正常

Here is some text... over
two lines.

但这不是

Here is some text... (over
                      two
                      lines

如果有人能告诉我如何关闭它(仅适用于文本/乳胶文件),我将不胜感激。大概这与这是 C 中的期望行为这一事实有关,但我仍然无法弄清楚出了什么问题。

4

6 回答 6

14
:set nocindent

其他选项什么都不做,文件类型检测不会改变它。

于 2010-01-24T23:09:03.120 回答
5

您可能需要关闭三个选项:set noai、set nosi 和 setnocin(autoindent、smartindent 和 cindent)。

于 2009-02-11T11:22:03.047 回答
4

这可能是相关的,当从 gui 粘贴到终端窗口时,vim 无法区分粘贴模式,所以要阻止任何奇怪的事情发生:

set paste

然后粘贴文本

set nopaste

我在尝试粘贴 xml 文本时遇到了类似的问题,它只会继续缩进。:)

gvim是 vim 的 gui 版本,可以检测粘贴模式。

于 2010-08-07T19:47:34.063 回答
3

你可以看看 autoindent 选项:

自动缩进-ai

开始新行时从当前行复制缩进(在插入模式下键入或使用“o”或“O”命令时)。如果您没有在新行中键入任何内容,除了然后键入 or ,缩进将再次被删除。当自动缩进打开时,格式化(使用“gq”命令或在插入模式下达到“textwidth”时)使用第一行的缩进。当 'smartindent' 或 'cindent' 在特定情况下,缩进会改变。当设置 'paste' 选项时,'autoindent' 选项会被重置。{与Vi的小区别:输入or时删除缩进后,上下移动时光标位置在删除缩进后;Vi 将光标放在已删除缩进中的某处}。

于 2009-02-11T11:14:45.997 回答
2

来自官方Vim 文档

文件类型插件缩进

这开启了三个非常聪明的机制:

  1. 文件类型检测。每当您开始编辑文件时,Vim 都会尝试找出这是什么类型的文件。当你编辑 "main.c" 时,Vim 会看到 ".c" 扩展名并将其
    识别为 "c" 文件类型。当你编辑一个以 "#!/bin/sh" 开头的文件时,Vim 会将它识别为 "sh" 文件类型。文件类型检测用于语法高亮和
    下面的其他两项。见 |文件类型|。

  2. 使用文件类型插件文件 许多不同的文件类型使用不同的选项进行编辑。例如,
    当你编辑一个 "c" 文件时,设置 'cindent' 选项来自动缩进行是非常有用的。这些常用的选项设置
    包含在 Vim 的文件类型插件中。你也可以添加你自己的,见
    |write-filetype-plugin|。

  3. 使用缩进文件 编辑程序时,通常可以自动计算行的缩进。Vim 为许多文件类型提供了这些缩进规则。见 |:filetype-in​​dent-on| 和'indentexpr'。

于 2009-02-11T11:25:26.660 回答
1

:set noai

设置不自动缩进 tt 可能是 smartindent。查看文档,看看是否可以找到更多内容

http://www.vim.org/htmldoc/indent.html

于 2009-02-11T11:12:15.083 回答