2017-09-01 82 views
0

我得到set autoindent,因爲我想讓我的縮進被保留下來,但是這個選項做了一些我覺得非常討厭的東西,它縮進了文本,如果我在打開括號後創建一個新行。像這樣:如何阻止vim縮進左括號

(define (function) 
    then it idents where this line starts, with 2 spaces 

如何保留自動縮進實際縮進而不是它正在做的這個「聰明」事情? (smartindent已關閉)

我想將空格縮進複製到新行中,我不想要其他任何內容(例如插入縮進時,如果我沒有插入任何內容)。

+0

你爲什麼認爲這是'autoindent'做的呢? – melpomene

+0

':set noai'它不會做任何事情。但是你需要縮小自己,這會更煩人。什麼是你想要的實際縮進? – dlmeetei

+0

我想要將空格縮進複製到新行中,我不想要其他任何東西(例如插入縮進時,我沒有插入任何)。我認爲它是'autoindent',因爲關閉它可以消除這種行爲(但它也會消除我想要的自動縮進) – Jose

回答

3

autoindent一般來說非常不智能。它只是複製上一行的縮進而不考慮語法。

如果您有filetype plugin indent on,這在vim configs中很常見,那麼您將在打開lisp文件時加載lisp語法。對於口齒不清文件類型插件包含:

setl lisp 

正如評論指出的那樣,lisp設置會影響壓痕。其他插件可能會影響縮進,尤其是在涉及括號的情況下。

這個最小的.vimrc文件可以完成你所要做的。這可能不適合你,因爲你的.vimrc或者插件中的其他東西也會影響行爲,但是這在我的測試中有效。

set nocompatible 
filetype plugin indent on 
set autoindent 
set nosmartindent 
autocmd FileType lisp setlocal nolisp