【问题标题】:How to prevent Vim indenting wrapped text in parentheses如何防止 Vim 在括号中缩进包装的文本
【发布时间】:2009-02-11 11:06:18
【问题描述】:

这件事困扰了我很长时间,尽管我想尽办法却找不到解决办法。

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

Here is some text... over
two lines.

但这不是

Here is some text... (over
                      two
                      lines

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

【问题讨论】:

    标签: vim latex indentation word-wrap


    【解决方案1】:
    :set nocindent
    

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

    【讨论】:

    • 在这样做之后,大多数人可能会想用:set smartindent 跟进,以仍然缩进到您指定的shiftwidth(例如,上一行开头右侧的一个制表符) -- 通过在~/.vim/indent/c.vim 中放置let b:did_indent = 1(以防止设置cindent)后跟setlocal smartindent,可以将其永久化为C 类型文件。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      set paste
      

      然后粘贴文本

      set nopaste
      

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

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

      【讨论】:

      • 对于布尔值使用 !切换。这样你就可以使用命令 history: :set paste! :
      • 这是我遇到的问题。谢谢!
      【解决方案4】:

      你可以看看 autoindent 选项:

      自动缩进 - ai

      开始新行时从当前行复制缩进(键入 在插入模式或使用“o”或“O”命令时)。如果你不 在新行上键入任何内容,除了然后键入或 ,缩进被再次删除。当自动缩进开启时, 格式化(使用“gq”命令或当您在 插入模式)使用第一行的缩进。什么时候 'smartindent' 或 'cindent' 在特定的缩进上 案例。当 'paste' 选项被设置时,'autoindent' 选项被重置 放。 {与vi的小区别:当缩进被删除后 键入 or , 上下移动时的光标位置为 在删除的缩进之后; vi 将光标放在已删除的某处 缩进}。

      【讨论】:

      • 啊。 cindent 似乎是罪魁祸首。我尝试过 autoindent 和 smartindent 但它们没有任何区别。为文本/乳胶文件设置此项的最佳方法是什么?
      • 看看我的另一个答案,我想你会有文件类型缩进的解决方案。
      【解决方案5】:

      来自官方Vim documentation

      文件类型插件缩进

      这三个开关很巧妙 机制:

      1. 文件类型检测。每当你开始编辑文件时,Vim 都会尝试 弄清楚这是什么文件 是。当你编辑 "main.c" 时,Vim 会 请参阅“.c”扩展名和
        将其识别为“c”文件类型。 当您编辑以 "#!/bin/sh",Vim 会将其识别为 “sh”文件类型。文件类型 检测用于语法 突出显示和其他两个
        下面的项目。见 |filetypes|。

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

      3. 使用缩进文件编辑程序时,行的缩进可以 经常自动计算。 Vim 带有这些缩进规则 多种文件类型。看 |:filetype-in​​dent-on|和 'indentexpr'。

      【讨论】:

      • 我认为你应该尝试寻找一个有相同问题的人为乳胶文件编写的文件类型插件,或者你可以尝试编写一个。
      • 啊,好的。我看一下latex的,看看是否容易修改
      【解决方案6】:

      :设置noai

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

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

      【讨论】:

      • 有趣的是,这是唯一对我有用的,:set nocindent 在我的情况下什么也没做。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-09
      相关资源
      最近更新 更多