2016-01-26 5 views
0

Я пробовал использовать это в целом, но все, что я могу найти, это плагины, которые форматируют код по своему усмотрению. То, что я хотел бы сделать, это изменить параметры автоматического формата, чтобы я мог настроить VIM на использование того же формата, что и другие редакторы моей команды.Как изменить параметры автоматического форматирования VIM PHP

Например, я хотел бы:

public function test($param) 
    { 
    // code here 
    } 

вместо:

public function test($param){ 
    // code here 
    } 

или

public function test($param) 
{ 
// code here 
} 

Возможно ли это без плагина? Есть ли там шаблоны форматирования, которые я могу редактировать? Спасибо :)

ответ

1

Возможно ли это без плагина?

Да.

Есть ли там шаблоны форматирования, которые я могу редактировать?

Несомненно. Vim - это самый настраиваемый текстовый редактор во вселенной. :)

Итак, давайте начнем понимать фрагменты.

Фрагменты представляют собой блоки текста, которые могут быть вставлены в текст с использованием определенных заранее определенных клавиш. Идея фрагментов заключается в том, чтобы легко добавить в ваш файл несколько фрагментов текста, который вы часто используете. Фрагменты - это эти «шаблоны», которые вы упомянули.

Чтобы использовать фрагменты с Vim, вам необходимо установить плагин garbas/vim-snipmate. Вероятно, вы его установили, так как кажется, что вы можете их использовать. Этот плагин ищет в папке .vim файлы .snippets и открывайте их каждый раз, когда вы открываете файл с заданным расширением. Например, когда вы создаете файл foo.html, плагин vim-snipmate выполняет поиск файла html.snippets и загружает его. После этого каждый раз, когда вы печатаете, например, html и нажмите tab, Vim напишет тег <html>, потому что в вашем файле html.snippets есть фрагмент, рассказывающий об этом Vim. Каждому языку программирования нужен собственный файл .snippets и загружает его с самого начала. Обычно есть файл _.snippets, который загружается со всем расширением файла. Это глобальный файл фрагмента.

Чтобы отредактировать свои фрагменты, вы должны найти, где находятся ваши файлы .snippets. В Linux, откройте терминал и введите:

cd ~/.vim 
find -name *.snippets 

И тогда вы увидите, где ваши файлы сниппет. Предполагая, что они ~/.vim/фрагменты, например, вы открываете Java фрагменты с:

vim ~/.vim/snippets/java.snippets 

A.сниппеты файл обычно выглядит следующим образом: java.snippets file

Эти + - линии сжимаются линии вы можете расширяться и сжиматься печатающий za в обычном режиме. В синей строке вы всегда видите snippet something. что-то - это ярлык, который вам нужно ввести и нажать вкладку, когда вы редактируете файл, чтобы использовать фрагмент. Например, в этом файле java.snippets есть фрагмент, который называется snippet po. Итак, когда вы редактируете файл java, введите po и нажмите tab, Vim вставит protected {}.

Фрагменты имеют простой язык, вы можете многое понять, просто увидев их в файле .snippets и напечатав их в другом. Если вы хотите больше узнать о создании фрагментов, Google об отпечатках vim, и вы найдете много информации об этом.

Если вы обнаружите, что вы не имеете фрагменты в вашей папке .vim, или недостаточно одни, то вы можете установить много EXCELENT сценариев с HONZA/ВИМ-сниппетов расширения на Github.

+0

Спасибо, это здорово! У меня есть еще один вопрос: в настоящее время, когда я печатаю скобки и т. Д., Они автоматически перемещаются и отступают ... Не из-за автоматического форматирования, а не для фрагментов, так как я ничего не расширяю с помощью клавиши табуляции? Как изменить эти параметры? :) – user3640967

+0

Да, это не фрагмент. Вероятно, скрипт создает такое поведение. Возможно, если вы разместите здесь свой файл vimrc, я увижу, что делает этот скрипт. –

+0

Ahhh Я предположил, что это стандартная функция! Теперь я опустошил свой vimrc, которого больше не бывает - я удалю их по одному, пока не найду преступника. Спасибо за вашу помощь. Я тоже приму свой ответ, потому что он достигнет того, что я спросил (хотя то, что я попросил, оказалось не таким, каким я имел в виду). – user3640967

Смежные вопросы