Например Eclipse или KDevelop.А есть самая лучшая IDE - VIM .
Программирую я на ruby и большей частью проекты связаны с rails.
Расскажу какими плагинами к vim я пользуюсь
Расскажу какими плагинами к vim я пользуюсь
Любимая функция gf - по русски go_to_file.
Например наводите курсор на
При редактировании контроллера хочется перейти во вьюшку - на имени контроллера размещаем курсор и вводим :Rview .Редактируем код вьюшки и хочется часть кода вынести в отдельный файл - например со строки 10 до 25 - :10,25Rextract extracted_file. Автоматом строки уносятся в необходимый нам файл , а на их месте создается
Перемещение в определенную модель :Rmodel modelname
Подобным образом :Rmigration , :Rcontroller, :Rview
И еще отличная возможность автодописывания слов при нажатии на клавиши ctrl+p
Это маленькая частичка функционала - но используемого повседневно.Почитать подробней можно в :help - документации идущей вместе с плагином. Экономятся годы Вашего времени.
Например наводите курсор на
"render :file => 'app/views/test.test.html.erb'"
- переходите в коммандный режим и жмете на gf. И вы переместились в файл 'app/views/test.test.html.erb'
. Что б переместиться в исходный файл не закрывая текущий - жмем в коммандном режиме :bn. Переместитья закрыв :bd. Важно перед перемещением записать изменения.При редактировании контроллера хочется перейти во вьюшку - на имени контроллера размещаем курсор и вводим :Rview .Редактируем код вьюшки и хочется часть кода вынести в отдельный файл - например со строки 10 до 25 - :10,25Rextract extracted_file. Автоматом строки уносятся в необходимый нам файл , а на их месте создается
<%= render :partial => 'extracted_file'%>
Перемещение в определенную модель :Rmodel modelname
Подобным образом :Rmigration , :Rcontroller, :Rview
И еще отличная возможность автодописывания слов при нажатии на клавиши ctrl+p
Это маленькая частичка функционала - но используемого повседневно.Почитать подробней можно в :help - документации идущей вместе с плагином. Экономятся годы Вашего времени.
Следующий плагин настоящего лентяя Surround.vim .
Surround позволяет легко и удобно работать с тегами. Чем ужасен любой тег ? Тем что с двух сторон практически одно и тоже и набирать болго и cкучно.
Например хочу написать
<%= @book.name %>
пишем @book.name затем переходим в коммандный режим и жмем yss= .Все получили
<%= @book.name %>
Так же создается <% -%> yss-
Или
<% -%>\n<% end -%>
yssЭто теги для рельсов , но есть и для HTML, например yss<b> создаст вокруг строки <b></b>
Что же делать если тег необходим не вокруг строки, а вокруг слова ?
Меняем на ysw<b>
Как можно догадаться s - string, w - word
И последняя из простых операций - замена тега
есть у нас <b>test</b> хотим получить <a>test</a>
Набираем cst<a> и все готово.
За подробностями отправляйтесь читать доки.
Ну и на последок - всегда необходимо знать что за функция и где она определена.
Это позволяем делать программка ctags.
Первым делом необходимо поставить эту программу.
Затем создаем индексный файл
Выполняем в папке проекта
ctags --recurse=yes --exclude=*.swp --exclude=*.js --exclude
Рекурсивно создать индексный файл исключая своп файлы , яваскрипт и файлы git'а
на выходе у нас файлик ./tags
Ставим плагин для вима для работы с файлом тегов ctags.vim
в ~/.vimrc вписываем найденные на просторах интернета строчки
let g:ctags_regenerate = 0
let g:ctags_statusline=1
let generate_tags=1
set tags+=./tags
map [I:let nr = input("Which one: ")exe "normal " . nr ."[\t"
Теперь можно работать.
Выбираем функцию , наводим на нее курсор и жмем g] - либо сразу переходим к месту ее определения либо выскакивает список где определяются одноименные с нашей функции.
И на последок - феноменальная функция вима - :split и :vsplit :)
Для начала вполне хватит.
Получаем экономию ресурсов компьютера и отличную IDE.
1 комментарий:
Для работы с тегами ctags я бы посоветовал плагин Indexer, который (сам или с помощью плагина project) позволяет организовать проекты и прозрачно генерит теги для них. Открыл файл из одного проекта - сгенерились теги для всех файлов из этого проекта; открыл файл из другого проекта - сгенерились теги для всех файлов из другого проекта. Сохранил файл - теги для нужного проекта обновились. Теги из разных проектов не перемешаются, все продумано.
Отправить комментарий