Pull to refresh

Comments 62

Допишите пожалуйста, что хорошо бы опцию encoding поставить в utf8 (ну или другую юникодную), иначе при изменении кодировок возможна потеря информации.
Спасибо за обширный обзор!
Разширение возможностей VIMа сильно впечетляет.
На досуге хорошенько все попробую.
кстати, кто какие шрифты использует,
я юзаю smoothasni, очень хороший шрифт, но с кирилица на нем выглядит кривовато.
Я использую Dejavu Sans Mono. Для меня оказался наиболее хорошо воспринимаемым из остальных. А mono, так как в основном код пишу.
UFO just landed and posted this here
Стараюсь везде использовать Liberation fonts, в виме соотвестанно Liberation Mono.
Ну и конечно рекомендую посмотреть на легендарный Терминус
юзаю Consolas — смешной такой, округлый
В винде юзаю Consolas, на маке — Monaco.
Под линем пока не юзал.
Ё маё!!1 Никогда не думал, что консольный редактор может быть на столько удобным!
А если это поставить на сервер, при подключении к косноли по ssh — все будет также радостно и красиво работать?
Да. По крайней мере я подключался из убунту по ссш на альт линукс сервер, и у меня все красиво было) По крайней мере подсветка. Плагины не проверял, но должны работать, т.к. они все text-mode. И само собой плагины легко переносить. В свою домашнюю директорию на удаленном сервере, и наслаждаться. Единственное что, не удасться поправить vimrc. Но эти настройки можно выставить в отдельном плагине к примеру. И вроде можно в своем собственном vimrc в $HOME. Но насчет этого не уверен.
Более того, он не только консольный (см. gvim) :)
Ух, «нефигасебе» статья! :)

> Блог Все о Vim. Чтение этого блока было мощным толчком к полному переходу на Vim
Я таки рад этому, вим действительно крайне мощный и многоцелевой редактор :)
Да, посмотрел внимательно, кто автор блога) Так что большое Вам спасибо :)
присоединяюсь :) allaboutvim — мой первый источник зананий о vim
А есть возможность парсинга файлов директории и добавления объявленных в них функций и классов в автозаполнение?
Есть плагин taglist, который парсит открытые файлы. И можно смотреть функции, атрибуты классов. И в каких файлах, но я пока детально не разбирался с ним и что он может, поэтому не стал включать в обзор. Еще автозаполнение у Vim'а идет по словарю. Если не изменять его поведение, то при наборе слова, он ищет среди найденных в других файлах похожие и предлагает концовки файлов. Для длинных имен функций, классов достаточно. Реально сделать и автодополнение умное, как у ZendStudio. Когда дополняются методы и атрибуты объектов. Нужно написать плагин с парсингом кода. Я думал над этим, и займусь скорей всего на досуге.
Не совсем так… парсит одна замечательная программа exuberant ctags, таглист её использует для пока структуры.
Ну то есть для того, что бы работало дополнение нормально нужен ctags, с которым вим «дружит» и можно потом и дополнять слова и ходить по тегам.
Exuberant ctags стоит, как раз в Вашей статье узнал про него :) Но именно с ними и taglist глубоко не разбирался, поэтому могу ошибаться)
хм… автодополнение для обьектов очень хочораша вещ! особенно та, что в zend studio 6.x
еще мне очень понравилось автодополнение по типу textmate (и его win-клона — e)
Нет.

Т.е. только по методу напильника.

Плюс также нет нормального автокомплита метода в инстансах классов, нет нормального фолдинга функций и блоков кода и еще много чего нет.

В общем, как редактору vim'у 5+, как IDE даже на 3 не тянет. Даже Zend Studio 5.5 на порядок лучше, про Idea, ReSharper я вообще молчу.
Фолдинг есть с помощью плагинов. Но если чегото нехватает, это можно найти, или написать самому. И это навсегда. Я пользовался ZendStudio очень долго, это хорошая IDE. Но отказался от него в пользу Vim. И работа пошла быстрее. В силу как раз того что редактировать в нем удобнее, и можно настроить все под себя. Но это на вкус и цвет. Конечно не всем хочется досконально разбираться с написанием плагинов, настройками Vim'а.
>>Но если чегото нехватает, это можно найти, или написать самому
Это ключевой момент…

Ну не пишут IDE под себя — это бред и лишняя трата времени. Хотя некоторым это нравится, но это уже их проблемы :)

Я согласен, что это лишняя трата времени. Если она потом не окупается.

Но если я потрачу 10 часов на доработку, но потом за один рабочий месяц получу выйгрыш во времени процентов 10-20%(а возможно и гораздо больше), то это будет уже весомо.

Но конечно на доработку VIm'а, и чтобы разобраться с ним нужно гораздо больше времени. И если вы не хотите его использовать в дальнейшем как основной редактор и среду разработки, то нет смысла. А если да, то в итоге Вы можете получить очень мощную среду, в которой вам будет при этом очень удобно работать.
1. Вы, «возможно», получите свои 10%-20% в сравнении с текущим vim. В сравнении с готовыми IDE вы не получите и 0,1%.
Смысла в такой доработке, которая окупится за 2-5 лет, — нет никакого (кроме личного удовлетворения).

2. Послезавтра появится очередная новая фича и вы будете допиливать свое личное IDE руками и так каждый раз.

Vim — редактор? Да. Vim — IDE? Нет.

Для небольших и, возможно, средних вещей все, описанное в статье, отлично подойдет.
Для крупных проектов альтернативы IDE — нет.

И на этом, пожалуй, остановимся, дабы не отвлекать топик от темы :)
Вы написали чушь.
Наверное стоит объяснить это многим опытным ведущим программистам. Ато они и не знают :)
По поводу того, что Vim не IDE я не спорю, но
нет нормального фолдинга функций и блоков кода
разве
:set foldmethod=syntax
уже отменили?
Всё зависит от того, что вам надо от IDE.
Очень большой процент функционала IDE можно реализовать в Vim за счёт плугинов, причем лёгкая IDE получится не только для одного какого-то языка (тут конкурент только emacs наверно).
Более того, такого редактора (а вы ведь согласны с тем, что это основная часть IDE?) нет ни в одной IDE из того, что вы назвали. Код таки пишут программисты, а не IDE.
Я бы ещё понял если вы привели в противовес эклипс, но он уж больно прожорлив до ресурсов.
Я достаточно долго был проф. php разработчиком и приходилось работать в том числе и в Zend Studio.
После перехода на vim, для меня мало что потерялось в плане удобства.
Я долго не понимал зачем этот монструозный Eclipse или ZS.

Но при переходе проекта за 100к+ строк кода, вопрос — использовать ли IDE — отпадает сам собой.

Из собственного опыта, второй разработчик писал свою часть кода в vim вчетверо медленнее меня (в Eclipse PDT).

Вам vim подходит — я рад за вас.
И, да, ZendStudio лучше чем Eclipse PDT, но он платный.
Очень интересно было выслушать безосновательное, сугубо субьективное мнение без каких либо оговорок или фактов.
Все уже обсуждено 1000 раз, зачем нам 1001й? Гугл вам в помощь :)
хорошая статья. радует, когда видишь такое на хабре.
сегодня как раз всю ночь колбасил код через ssh в vim

кстати, что-то у меня NERDTree так и не прижился — мне удобнее оказалось открыть 5 терминалов и рассовать их по углам двух мониторов

думаю купить два 30'' моника, но, боюсь, видюха не сдюжит таких разрешений :)

vim правильная штука
да, я до этой штуки ещё не добрался :)

но что-то мне подсказывает, что я как сидел в нескольких терминалах сразу, так и буду — меньше уровней косвенности, дайрект инпут, так сказать

к примеру, долго пробовал IntelliJ IDEA для python-разработки, но тоже не прижилось — мне быстрее и проще 10 ноутпадов открыть :DD
А копипастить не внутри вима удобно? для меня — бееееее. 10-к терминалов по углам — это жесть.
Если сделать :set clipboard=unnamed, то будет копировать и удалять в регистр * по-умолчанию.
смотри выше, там сказано ssh. по-моему, через ssh оно в локальный иксовый клипборд кидать не умеет. Или я чего-то не знаю?
Да, действительно, я это как-то пропустил.
я может не понял ваш вопрос, но я из-под Windows/PuTTY просто делаю ctrl-c / ctrl-v между терминалами

если надо скопировать больше одной строчки (довольно редко) я делаю :set paste / :set nopaste, чтобы авто-индентация не мешала при вставке
речь о том, что если копировать внутри вима нет проблемы с отступами (не надо set paste / set nopaste). +то, что у вима много регистров (читай буферов обмена) — это часто тоже удобно. Поэтому я считаю, что открывать 10 терминалов — неудобно, не Ъ так сказать.

и ваще, самый сок vim не в плагинах. Самый сок в его «обычном» режиме. ddp, Yp, dat, dit, gU2w, и прочие заклинания, которые программируют текст.
Спасибо за подробный обзор. Как-то с опаской поглядывал в сторону Vim, но теперь, когда есть такой материал, нужно будет разобраться:)
На днях тоже наткнулся на статью и скринкаст про использование vim для Rails.
Сначала настроил под Винду 7, а потом на Маке. За пару дней попривык и даже пока передумал Textmate юзать.
Понравился NERDTree и Fuzzifinder к нему в придачу, ну и конечно снипеты от Textmate.
Ну и в продолжение темы — поставил плагин Vimperator для Firefox — очень рекомендую попробовать — это смесь vim и Firefox`а.
Главное себя пересилить и попробовать это в деле (что непросто после долгого юзания графических редакторов и IDE).
А как с помощью вима редактировать файлы на удаленных ресурсах (ssh, ftp), можно пример?
:help netrw

Вкратце — просто открываете файл указывая вместо пути урл:
vim ftp://my.server/path/file
или уже в запущенном Vim
:e scp://my.server/path/file
sshfs еще можно. Чтобы монтировать как локальные файловые системы. Я им пользуюсь.
Оговорился, как локальную папку.
Кстати, sshfs for Windows. Я сам правда не тестил, но люди говорят, что работает.
спасибо, очень полезные плагины
Эта статья таки пнула меня доточить всё, что еще недоточено у меня в vim, и попробовать NERDTree вместо Project.

Спасибо :)

Кстати, давно думаю сделать видеоуроки по вим. На русском. Для наших. Кто что думает?
Кстати, для веб разработки хочется еще добавить следующие два плагина, которые помогают в жизни:
closetag, match_it. Первый закрывает html/xml тэги, второй позволяет по ним переходить по % (как по '<' и '>', так и по ).
блин, съело текст.

… так и по <тэг> </тэг>
Возникла проблемка с filetype. Создал каталог ~/.vim/ftplugin/php/, как писал автор. В нем два файла *.vim. Проблема в том, что подгружается только один файл из этой директории. Как сделать чтобы подгружались все?
// Диагностику проводил по vim -V2.

Второй вопрос. Почему при закрытии файла *.php, настройки, загруженные из вышеупомянутой директории, не выгружаются?
// Получаются неприятные моменты, когда, например, после файла php редактирую файл C и по нажатию клавиши K ищется документация php, т.е. настройка keywordprg остается.
Отвечу себе сам. Нужно использовать setlocal и map
php-doc штука шикарная, но вылазит косяк при попытке применения к классу

image
Возможно вы видели\написали скрипт который позволяет:
Сохранить файл, скомпилировать его, подключиться к удаленному серверу по фтп, загрузить файл туда же, откуда его открыли относительно стартовой точки(которая настраивается изначально. точка синхронизации)

Про составление скриптов знаю только приблизительно, но буду рад даже просто командам подключения к фтп, загрузке, операции с путями и компиляцией. Или просто передачей команды в баш.

П.С. Да, я ленив. Я хочу, чтобы все это происходило при нажатии 1-2 клавиш.
Sign up to leave a comment.

Articles