autocmd FileType срещу ftplugin

Каква е разликата между поставянето:

autocmd FileType ruby setlocal ts=2

в моя ~/.vimrc и поставяне:

setlocal ts=2

in ~/.vim/ftplugin/ruby.vim?

Ако няма разлика, къде трябва да поставя команди, които са специфични за един тип файл?


person Zameer Manji    schedule 23.10.2011    source източник
comment
Не е добър пример, защото g:rubycomplete_buffer_loading е глобална променлива, която трябва да бъде поставена във vimrc, без да предхожда autocmd Filetype ruby.   -  person ZyX    schedule 23.10.2011


Отговори (1)


Доколкото знам, всъщност няма разлика между двете.

Предпочитам да поставя команди като тези в ftplugin и да запазя моя основен .vimrc език-агностик… Но няма твърди и бързи правила. Предимство да го запазите във вашия vimrc би било, че вашите vim настройки биха били по-лесни за преместване (напр. можете да получите всичките си vim настройки на нова машина, като просто копирате вашия .vimrc, вместо .vimrc + .vim). Очевидно поставянето им във вашия .vimrc също ще има незначително увреждане на производителността (т.е. те ще бъдат заредени + изпълнени за всеки файл, не само за ruby ​​файлове)… Но аз не бих се тревожил за това.

person David Wolever    schedule 23.10.2011
comment
Благодаря за отговора. Поставям код в ftplugin и мисля, че ще продължа да го правя, за да опростя .vimrc. - person Zameer Manji; 23.10.2011
comment
Откъде знаеш, че има наказание за изпълнение? Бихте ли обяснили как работят и двата подхода (подробности за внедряването)? - person ma11hew28; 14.09.2018