2009-04-27 11 views
8

Pobrałem plik php.vim, który zawiera informacje o składni oparte na PHP. Powinien być w stanie zapewnić składanie oparte na składaniu, ale nie mogę tego zrobić z jakiegoś powodu.Składanie oparte na składni Vima z php

Ustawiłem :let g:php_folding 2 i :set foldmethod=syntax, ale na próżno. Jestem całkiem pewny, że plik jest we właściwym miejscu i jest czytany przez vima, ponieważ mogę wykonać :let g:php_sql_query=1, który działa.

Plik php.vim znajduje się w ~/.vim/syntax/php.vim

+0

Nie widać żadnych składanych lub niewidocznych składek? Czy próbowałeś ": set foldlevel = 0"? – user55400

Odpowiedz

0

Widocznie mój VIM nie uruchomić: składnia włączyć.

robi: składnia pozwalają rozwiązaniu problemu, ale też dodał: składnię do .vimrc

13

: składnia włączyć (lub: składnię) działać, ponieważ obie te opcje również włączyć wykrywanie typu pliku. Rodzaj pliku musi zostać wykryty przed złożeniem lub wyróżnieniem pracy.

Jeśli rozwija się w PHP prawdopodobnie chcesz dodać te trzy linie do .vimrc

set nocompatible   " Because filetype detection doesn't work well in compatible mode 
filetype plugin indent on " Turns on filetype detection, filetype plugins, and filetype indenting all of which add nice extra features to whatever language you're using 
syntax enable    " Turns on filetype detection if not already on, and then applies filetype-specific highlighting. 

Następnie można umieścić let g:php_folding=2 i set foldmethod=syntax w pliku ~/.vim/after/ftplugin/php.vim.

To sprawi, że twój plik .vimrc będzie czysty, pomoże uporządkować wszystkie ustawienia, a składnia = składnia wpłynie tylko na pliki php (jeśli chcesz ustawić składnię jako domyślną metodę składania dla wszystkich typów plików, zostaw tę linię w swoim .vimrc plik)

celu uzyskania bardziej szczegółowych informacji przeczytaj te pliki pomocy:

: help filetype
: help usr_05.txt
: help usr_43.txt

4

Znajduję phpfolding.vim i jest bardzo łatwy w użyciu.

  1. umieścić phpfolding.vim do $ HOME/.vim/plugin/

  2. add od mapy

    map <F5> <Esc>:EnableFastPHPFolds<Cr>

    map <F6> <Esc>:EnablePHPFolds<Cr>

    map <F7> <Esc>:DisablePHPFolds<Cr>

Ciesz się!

+0

Domyślne składanie php składa tylko metody klas. Czy spasuje również regularne funkcje? – Masse

+0

Tak. Kasa mój zrzut ekranu http://stackoverflow.com/a/24325487/623519 – artfulrobot

+1

Spróbuj również https://github.com/swekaj/php-foldexpr.vim - Uważam, że jest lepszy niż ten w odpowiedzi – artfulrobot