2008-11-24 15 views
12

當編輯PHP代碼(我不確定它是否特定於該語言),並且在跨越多行的逗號分隔列表中間創建一個新行時,縮進規則始終無意中我要離開的路線。 Here's a video of it.這發生在數組,函數參數列表等討厭的vim(聯合國)縮進規則

有什麼我可以做,以阻止這種情況發生,或任何更快的方法來修復錯誤,而不是向上移動,重新縮進它,向下移動,縮進(因爲當你離開線時它會被清除),並繼續?

.vimrc

+1

繪圖變粗。如果我在列表中的第一個或第二個項目之後按Enter,似乎只能做到這一點。 – 2008-11-24 03:51:29

+0

哦,嘿!我一直在尋找你的投資組合。我記得有一段時間看到它,但最近失去了鏈接。小世界:D – Karan 2008-11-24 04:12:18

+0

如果您向我們展示您的〜/ .vimrc文件,並告訴我們您已安裝​​了哪些vim插件,可能會有所幫助。 – gpojd 2008-11-25 15:29:45

回答

3

嘗試:set indentexpr="",看看有沒有什麼幫助。有關處理文件類型插件的部分,請參閱:help filetype-indent-off(這可能是indentexpr的來源)。

0

在正常模式下使用「o」似乎避免了這個問題。從插入模式打到<esc>o並不是最佳選擇,但它比硬性方式更好(如上所述)。

0

試試這個:

:let g:PHP_default_indenting=1 

:h php-indent

3

您的縮進由PHP縮進腳本(您的.vimrc中的「filetype indent on」)控制。我使用這些選項對我的PHP縮進,這你把~/.vim/after/ftplugin

setlocal autoindent 
setlocal cindent 
setlocal cinwords=if,else,elseif,do,while,foreach,for,case,default,function,class,interface,abstract,private,public,protected,final 
setlocal cinkeys=0{,0},0),!^F,o,O,e 

setlocal nosmartindent " don't use smart indent option 

有更多的vim wiki page for source indenting這個話題。

0

你也可以做

set cindkeys=-0# 

對於字符#。如果你有同樣的問題,因爲我曾與CSS聲明像

width: 100% 

越來越左移,以及,你可以添加

set cindkeys-=: 
0

我覺得cindent螺絲的一切行動和smartindent通常是你想要的。

嘗試把這個在~/.vim/filetype.vim

au BufNewFile,BufRead *.html,*.css setlocal nocindent smartindent 
0

你可能想看看indentkeys

例如默認的是這些天:

indentkeys = {0,0}:0 #,!^ F,o,O,e,*,< >> ,, end,:

0

找到您的php.vim縮進文件。例如在/ usr/share/vim目錄/ vim73 /縮進/ PHP。VIM

然後尋找這些行:

elseif lastline =~ '^\s*?>.*<?\%(php\)\=\s*$' 
    let lnum = lnum - 1 

而且在前面加上引號,這樣他們註釋掉:

"elseif lastline =~ '^\s*?>.*<?\%(php\)\=\s*$' 
" let lnum = lnum - 1 

這將修復它!打開PHP標籤時沒有更多的縮進<?