2009-02-11 52 views
13

這已經給我很長時間的問題,並嘗試我可能找不到方法。如何防止Vim在圓括號中縮進包裹的文本

當我編輯文本(特別是乳膠,但沒關係)的文件時,我希望它自動換行爲80列。它是這樣做的,除非我恰好在括號內的中間,它縮進的文本很難被煩人。例如,這工作正常

Here is some text... over 
two lines. 

但這並不

Here is some text... (over 
         two 
         lines 

如果有人能告訴我如何關閉這個功能(只是文字/乳膠文件),我會非常感激。據推測,這與C中所希望的行爲有關,但我仍然無法弄清楚什麼是錯的。

回答

12
:set nocindent 

其他選項不做任何事情,在文件類型檢測,不會改變它。

1

:set noai

設置沒有自動縮進tt雖然可能是smartindent。退房的文檔,看看是否能找到更

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

+0

沒有。沒有不同。 – Draemon 2009-02-11 11:22:22

+0

有趣的是,這是唯一一個爲我工作的人,`:set nocindent`在我的情況下什麼也沒做。 – FvD 2016-01-26 23:18:16

3

你可以看看自動縮進選項:

自動縮進 - 愛

從當前行後複製縮進開始新行(在插入模式下或在使用「o」或「O」命令時鍵入 )。如果您不在 之前在新行上鍵入任何內容,然後鍵入或 ,則會再次刪除縮進。當自動縮進打開時,格式化爲 (使用「gq」命令或當您在 插入模式下達到'textwidth'時)使用第一行的縮進。當 'smartindent'或'cindent'在縮進時更改爲特定 個案。當「粘貼」選項設置爲 時,'autoindent'選項會重置。 {與Vi的差別很小:當 輸入時刪除了縮進後,上移或下移的光標位置在刪除縮進後爲 ; Vi將光標放在已刪除的 indent}的某處。

+2

啊。 cindent似乎是罪魁禍首。我試過autoindent和smartindent,但他們沒有任何區別。 什麼是最好的方式來設置這個文本/乳膠文件? – Draemon 2009-02-11 11:23:48

+1

看看我的其他答案,我想你會有filetype indent的解決方案。 – claf 2009-02-11 11:26:44

5

您可能需要關閉三個選項:set noai,set nosi和setnocin(autoindent,smartindent和cindent)。

2

從官方Vim documentation

類型插件縮進上

它打開三個非常聰明 機制:

  1. 文件類型檢測。無論何時你開始編輯文件,Vim都會嘗試 找出這個 是什麼類型的文件。當您編輯「main.c」時,Vim將 看到「.c」擴展名,並且
    將其識別爲「c」文件類型。 當您編輯以 開頭的文件「#!/ bin/sh的」,Vim會識別爲 一個‘噓’的文件類型的文件類型 檢測是用於語法 高亮和低於其他兩個
    項目見|。文件類型|。

  2. 使用文件類型插件文件許多不同的文件類型進行編輯與 不同的選擇。例如,
    當你編輯一個「c」的文件,這是非常 有用的設定「cindent」選項 自動縮進線。這些 很常用的選項設置
    包含在Vim中的文件類型插件中 您也可以自行添加,請參閱
    | write-filetype-plugin |。

  3. 使用縮進文件編輯程序時,通常會自動計算縮進的線條 。 Vim爲 提供了許多文件類型的縮進規則。見 |:filetype-in​​dent-on |和 'indentexpr'。

3

這可能與從GUI到終端窗口粘貼時,VIM不能區分糊模式,所以從發生的歷史停止任何雜事:

set paste 

然後粘貼文本

set nopaste 

我有試圖粘貼XML文本類似的問題,它只會保持縮進。 :)

gvim,vim的gui版本,可以檢測粘貼模式。

相關問題