Sıkıcı vim (un) girinti kuralları

8 Cevap php

PHP kodu düzenleme (ben o dile özgü olup olmadığından emin değilim) ve ben birden fazla satıra virgülle ayrılmış listeleri ortasında yeni bir çizgi oluştururken, girinti kuralları her zaman ben gidiyorum hattını Unindent. Here's a video of it. Bu gibi diziler, fonksiyon argüman listeleri, olur

Ben bunun olmasını durdurmak için yapabileceği bir şey, ya da yukarı hareket daha hatayı tespit herhangi bir hızlı yöntemleri, yeniden girinti aşağı hareket, (sen çizgiyi terk zaman kaybolmasıdır beri) yeniden girinti ve devam eden var mı?

.vimrc

8 Cevap

Sizin girinti PHP girinti komut (sizin. Vimrc "konulu filetype girinti") tarafından kontrol edilir. Sana ~/.vim/after/ftplugin koymak olan, benim PHP girinti için bu seçenekleri kullanın:

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 Bu konu hakkında daha fazla var.

:set indentexpr="" denemek ve görmek eğer yardımcı olur. :help filetype-indent-off (bu indentexpr nereden geldiğini hangi muhtemelen) filetype eklentileri ile uğraşan bölümüne bakın.

Normal modda "o" kullanarak sorunu önlemek gibi görünüyor. <esc>o insert modundan vurmak uygun değil ama (yukarıda anlatıldığı gibi) sert bir şekilde daha iyi.

Bu deneyin:

:let g:PHP_default_indenting=1

Bkz :h php-indent.

Siz de yapabilirsiniz

set cindkeys=-0#

# Char. Ben gibi css beyanları vardı gibi aynı sorunu yaşıyorsanız

width: 100%

hem de sola kaydırılır almak, ekleyebilirsiniz

set cindkeys-=:

I cindent vidalar her şey kadar düşünmek ve smartindent ne istediğiniz genellikle.

Bu koyarak deneyin ~/.vim/filetype.vim:

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

muhtemelen indentkeys bakmak istiyorum

örneğin, varsayılan bu gün:

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

Lütfen php.vim girinti dosyasını bulun. örneğin / Usr/share/vim/vim73/indent/php.vim

Daha sonra bu hatlar arayın:

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

Ve bunun gibi, tırnak işaretleri prepending onları dışarı yorumum:

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

İşte bunu düzeltmek olacak! Artık PHP etiketlerini açarak de-girinti <?