2010-11-21 31 views
6

Yakın zamanda Eclipse'den Vim'e geçtim. Onu seviyorum. Üzerinde çalıştığım birkaç tane asistan var, ama bir sürü sorunla karşılaştığımdan biri PHP doc yorumudur. Yani olurduVim: Girintili bir komut dosyasından metin değiştirme

/** [enter] 

ve sonraki satırda otomatik

* 

ile dolduracak: Tutulma ben yazabilirsiniz

/** 
* [comment goes here] 

şey böyle olmadığını merak ediyorum vim için. Bir komut çalıştırarak doc yorumlarını otomatikleştirmek için bazı eklentiler var gibi görünüyor, ama yazarken bunları yapmak isterim.

PHP indent komut dosyası (http://www.vim.org/scripts/script.php?script_id=1120) ile uğraşıyordum ve bir doc yorum bloğu içinde olduğunu fark ettim, ancak aslında metni değiştirmek ve eklemek için bunu nasıl elde edeceğimi anlayamıyorum "*" isabetinden sonra bloğun içine gir.

Ben diğer eklentileri yapmak gördüklerimi denedim:

let @z = ' * ' 
put! z 

de bu çalıştı:

exe 'normal!' '"zgp' 

ama hiçbir şans. Bu bir girinti komut dosyasından mümkün değil mi, eğer değilse, Vim'i bir doktor yorum bloğunu tanıması ve yazarken buna göre davranmasını nasıl sağlayabilirim?

Herhangi bir yardım çok takdir edilecektir!

cevap

2

Girinti dosyaları ile uğraşmanıza gerek yoktur. Vim formatoptions bunu sizin için ve çeşitli dillerde (sadece PHP için değil) gerçekleştirecektir.

Eğer senin formatoptions içinde r dahil ettik emin olun:

:setlocal fo+=r "to set 
:set fo? "to query 

Sen bu dahil edebilirsiniz .vimrc veya .vim/ftplugin/php.vim içinde (sadece PHP bu etkinleştirmek istiyorsanız).

formatoptions ve dosya tipi eklentileri hakkında daha fazla bilgi için bkz:

+1

Bu, gitmek için doğru yol. Çok kapsamlı bir cevabın kısa bir özeti olarak, 'set fo + = r' değerini .vimrc'ye ekleyebilirim. –

+1

Bunun için teşekkürler ... harika çalışıyor gibi görünüyor – andrew

+0

Garip, bu tüm eklentileri devre dışı bırakıldığında çalışır ve ben fo + = r set, ancak hisse senedi kullanırken PHP indent komut dosyası (hiçbir değişiklik) ve ben fo + = r set Çalışıyorum fo ayarlamak == "qrowcb" ... herhangi bir fikir? Bunu devre dışı bırakabilecek başka bir ayar var mı? – andrew

1

Aşağıdaki kodu vimrc'inize eklemek istediğiniz şeye benzer bir şey mi ekleyeceksiniz?

autocmd BufNewFile,BufRead *.php setlocal formatoptions+=r formatoptions+=o 
autocmd BufNewFile,BufRead *.php setlocal comments=s1:/*,mb:*,ex:*/,://,:# 

Şu anda oldukça bu işlevi gören yorumlama <!-- ---> geçersiz kılma olmadan çalışmasını sağlamak için nasıl anlamaya olamaz. Yani Bu, <!-- --> yorumlarıyla otomatik girintilendirmeyi kıracaktır.

Düzeltme. Johnsyweb'in dağıtım yaptığı gibi ://,:# ila comments eklendi. senin vimrc bu ekleme

+0

'görüşler' verilen' php tarafından otomatik ayarlanması gerekir. vim 'indentation script. '' yorumlar HTML sözdiziminin bir parçasıdır. – Johnsyweb

+0

@Johnsyweb Evet, ancak yukarıdaki snippet, 'comment = ... 'yaparak bunu üzerine yazar. Bunun yerine yorum yaptıysam + = ...,/* */style yorumlar düzgün çalışmıyor --- Emin değilim neden. – dennycrane

+0

Kutudan çıktığında işlerim: 'comments = s1:/*, mb: *, ex: * /,: //,: #' – Johnsyweb

0

Dene:

let g:PHP_autoformatcomment=1 

Ben Mac'te olduğum ve varsayılan olarak etkin gibi görünüyor. Tam olarak nasıl belirttiğiniz işlevleri.

İlgili konular