LINUX.ORG.RU

VIM для веб-разработки

 


8

1

Ребята, посоветуйте - чего туда добавить, чтобы чувствовать себя удобно. Я еще не осилил, но периодически пытаюсь, плачу, запарываю все по срокам, т.к. начинаю дико тормозить при банальном редактировании файлов, просто по скорости, но пытаюсь.

Я уже больше не могу. Пробовал всякие там IDE (NetBeans, PhpStorm) и т.п. Пробовал «редакторы» (medit, bluefish, geany, sublime). Всё чем-то раздражает, не могу понять почему. Всё мне не так. Подсознательная тяга к сосноле, что ли. Остались две баррикады, видимо: vim и emacs. Emacs меня пугает сам по себе, так что начну с vim'а, серьезно начну, черт возьми.

Чего хотелось бы:

- поддержку проектов
- emmet (бывший zencoding) ((хотя спрашивать нечего, знаю, что он где-то есть, но будут ли проблемы?))
- подсветка парного тега html (наводишь на один div и он показывает, где закрывающий div, очень удобно)
- дерево каталогов слева
- подсветка ошибок PHP, html, css, javascript
- подсказки (а-ля методов класса, тупой хелп и т.п.)
- возможно быстро сменить кодировку файла и открыть файл в другой кодировке
- ваши плагины/модули по вкусу
- интеграция с git
- интеграция с ftp (залить измененное в "одно нажатие")
- возможность разделить экран на две части и открыть таким образом два файла сразу (видеть их и редактировать)
- какой шрифт для консоли рекомендуете? недавно накатил убунту (14.04), там консольный шрифт мне кажется не очень. можно ли поменять шрифт только для vim?

Внушительный список вышел, вроде бы. Крайне долгое время обходился без IDE и, похоже, сильно привык (зря?).

http://vim.spf13.com/

Здесь основные запрошенные фичи реализованы, настраивай дальше как хочешь. Хотя я за то, что бы собирать свой конфиг самостоятельно.

Dantix ★★ ()
Последнее исправление: Dantix (всего исправлений: 1)

- поддержку проектов

ненужно.

- emmet (бывший zencoding) ((хотя спрашивать нечего, знаю, что он где-то есть, но будут ли проблемы?))

проблем не будет. ненужно.

- подсветка парного тега html (наводишь на один div и он показывает, где закрывающий div, очень удобно)

ненужно, %.

- дерево каталогов слева

nerd tree.

- подсветка ошибок PHP, html, css, javascript

ненужно, syntax on.

- подсказки (а-ля методов класса, тупой хелп и т.п.)

YouCompleteMe, omnifunc

- возможно быстро сменить кодировку файла и открыть файл в другой кодировке

:help encoding

- ваши плагины/модули по вкусу

чем меньше тем лучше.

- интеграция с git

:!git

- интеграция с ftp (залить измененное в «одно нажатие»)

ненужно (ты же шит собрался использовать?).

- возможность разделить экран на две части и открыть таким образом два файла сразу (видеть их и редактировать)

^ws, ^wv, :help split

- какой шрифт для консоли рекомендуете? недавно накатил убунту (14.04), там консольный шрифт мне кажется не очень. можно ли поменять шрифт только для vim?

по вкусу. у меня fixed. кому-то нравится terminus, кому-то consolas, кого-то прет pragmata pro... попробуй все моноширинные, их не много. для вима отдельно нельзя, он задается для всего эмулятора терминала — так что разве что держать отдельный эмулятор или профиль чисто под вим. наверное, можно как-нибуть скриптом форсить нужный профиль, и заалиасить этот скрипт на vim, но это убогие костыли. попробуй gvim, может тебе понравится.



http://vim.wikia.com/wiki/Use_Vim_like_an_IDE

val-amart ★★★★★ ()

А на чем пишешь? Чем IDEA не угодила? Возьми Eclipse. Что-то много критики, отпиши, что конкретно напрягает в том же эклипсе - люди подскажут куда копать. Писать серьезный проект в vim - это глупо.

menangen ★★★★★ ()
Ответ на: комментарий от menangen

Писать серьезный проект в vim - это глупо.

О, слабые духом пользователи мак оси подтянулись.

Dantix ★★ ()

- поддержку проектов

не нужно, уходи из мира джавы как можно быстрее.

- emmet (бывший zencoding) ((хотя спрашивать нечего, знаю, что он где-то есть, но будут ли проблемы?))

Не соглашусь с val-amart, вещь всё-таки полезная когда пишешь свой html, плагин emmet-vim живёт здесь, читай, разбирайся, работает также как и саблаймне и прочих, но нужно максимально удобно под себя настроить дополнение, т.к. сделать экшон на <Tab> - проблематично, по крайней мере было тогда, когда я разбирался с ним, например по дефолту это:

let g:user_emmet_leader_key='<C-Z>'
согласитесь - не очень удобно, поэтому я сделал просто:
imap     <expr>      <F5> emmet#expandAbbrIntelligent("\<tab>")
F5 я нашел самой удобной для этого кнопкой, здесь можно экспериментировать.

подсветка парного тега html (наводишь на один div и он показывает, где закрывающий div, очень удобно)

https://github.com/gregsexton/MatchTag

- дерево каталогов слева

NERDTree или Шуго написал новый похожий, в чем разница я не смотрел: https://github.com/Shougo/vimfiler.vim

- подсветка ошибок PHP, html, css, javascript

Конечно же Syntastic - но он подсвечивает только при сохранении файла (по крайней мере раньше), с удобным переходом по ошибкам, мощная и полезная вещь.

- подсказки (а-ля методов класса, тупой хелп и т.п.)

Если не подойдет neocomplete, то смотри YouCompleteMe , но только как попробуешь первый.

- возможно быстро сменить кодировку файла и открыть файл в другой кодировке

работаешь с идиотами, которые не используют UTF-8?

- интеграция с git

Лучше, почему-то легального, vim-fugitive - нет. Также это дело можно расширить vim-extradite

- интеграция с ftp (залить измененное в «одно нажатие»)

netrw (Network Oriented Reading, Writing, and Browsing) - это изкоробочный netrw, но его автор постоянно обновляет и не успевает бандлить с каждой новой версией, поэтому можно использовать официальное зеркало

- возможность разделить экран на две части и открыть таким образом два файла сразу (видеть их и редактировать)

Да. Для удобного перемещения между ними и управления ими можно использовать dwm.vim. А также winresizer (если дефолтное управление не нравится).

- какой шрифт для консоли рекомендуете? недавно накатил убунту (14.04), там консольный шрифт мне кажется не очень. можно ли поменять шрифт только для vim?

Я после PragmataPro, уже больше года - не могу смотреть и работать с другими шрифтами, если не найдешь ttf (с поддержкой powerline), обращайся.

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

- ваши плагины/модули по вкусу

https://github.com/tpope/vim-endwise
https://github.com/tpope/vim-commentary
https://github.com/tpope/vim-surround
https://github.com/tpope/vim-unimpaired
https://github.com/tpope/vim-repeat
https://github.com/paradigm/TextObjectify
https://github.com/Raimondi/delimitMate
https://github.com/chrisbra/NrrwRgn (!)
https://github.com/marijnh/tern_for_vim

а также другие, для поддержки языков и технологий (vim-ruby, vim-haml, vim-slim, vim-javascript, vim-coffee-script, vim-markdown и пр.).

Плагины устанавливать и управлять - только через менеджеры плагинов: vundle, pathogen, neobundle.

Отдельно стоит плагин vim-vimux, который взаимодействует с tmux'ом, благодаря чему можно код сразу отправлять интерпретатору и смотреть результат в открывшемся окне тмукса.

science ★★☆ ()

Астрологи провозгласили неделю вима.

anonymous ()

Пробовал всякие там IDE (NetBeans, PhpStorm) и т.п. Пробовал «редакторы» (medit, bluefish, geany, sublime). Всё чем-то раздражает, не могу понять почему.

Потому, что отсутствие нормального редактора - это во много раз хуже, чем отсутствие типичных фич IDE.

- интеграция с ftp (залить измененное в «одно нажатие»)

Текстовый редактор вообще не должен это уметь делать. Единственная причина, по которой эти велосипедно-костыльные практики стали нормой - технические ограничения одной известной ОС.

Minoru ★★★ ()
Ответ на: комментарий от Minoru

Потому, что отсутствие нормального редактора - это во много раз хуже, чем отсутствие типичных фич IDE.

кстати, для иде от Idea и MS VS есть отличные плагины с кейбиндингами вима. это кстати одна из его прелестей — он настолько популярен, что vi-mode есть очень много где, и в консоли, и в браузере, и в иде, и в почтовом клиенте.

val-amart ★★★★★ ()
Ответ на: комментарий от val-amart

кстати, для иде от Idea и MS VS есть отличные плагины с кейбиндингами вима.

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

anonymous ()
Ответ на: комментарий от science

Большой спасибо, в мемориз. Отдельно отвечу:

работаешь с идиотами, которые не используют UTF-8?

После школьников-фрилансеров всякое можно обнаружить. :))

coderage ()

val-amart, science, господа, а можете подсказать какой-нибудь краткий, но ёмкий учебник по VIM? Я пытаюсь осилить книгу длиной страниц так в 300 и это очень плохо получается. А работать-то надо.

coderage ()
Ответ на: комментарий от coderage

Practical vim. Для быстрого старта не обязательно осиливать всю.

anonymous ()
Ответ на: комментарий от coderage

1, 2, 3.

Буквально в течение месяца, я открываю vimcasts.ru :)

уже пару эпизодов готово)

// про Practical Vim [Neil Drew], автор vimcasts.org - уже сказали, реально лучшая книга по виму.

science ★★☆ ()
Последнее исправление: science (всего исправлений: 2)
Ответ на: комментарий от vvviperrr

Проблемс?

Да, ты акцент в моем высказывании не там поставил.

Dantix ★★ ()
Ответ на: комментарий от science

А где переопределить клавишу экспанда для emmet'а? С вимом не знаком, гугл как-то ничего не дает.

coderage ()
Ответ на: комментарий от coderage

я ведь указал выше, дефолтная настройка (добавить в ~/.vimrc) это:

let g:user_emmet_leader_key='<C-Z>'
т.е. Ctrl+z, что лично для меня не удобно, здесь можно поставить сочетание, но не Tab - просто не будет работать (не работал раньше, да и Tab нужен для таба).

Можно сделать так:

imap     <expr>      <F5> emmet#expandAbbrIntelligent("\<tab>")
это позволяет сымитировать Tab по нажатию другой кнопки или сочетанию.

(кстати если в первой настройке поставить F5 например - работать не будет).

science ★★☆ ()
Ответ на: комментарий от science

Просто у меня ~/.vimrc нет и не было. Создал, добавил туда let, ничего. Ладно, погуглю, спасибо.

coderage ()
Ответ на: комментарий от coderage

Просто у меня ~/.vimrc нет и не было. Создал, добавил туда let, ничего.

а как установлен плагин?

science ★★☆ ()
Ответ на: комментарий от science

Через патоген. Залит в ~/.vim/bundle/. К сожалению, т.к. опыта нет, делаю половину вещей наобум. Сменить хоткей emmet'а не получается, добавляю я в ~/.vimrc или в /etc/vim/vimrc - никакой реакции.

coderage ()
Ответ на: комментарий от coderage

Почитай внимательно про патоген, чтобы работал он и плагины, установленные через него - нужно добавить настройки в .vimrc

https://github.com/tpope/vim-pathogen

Add this to your vimrc:

If you're brand new to Vim and lacking a vimrc, vim ~/.vimrc and paste in the following super-minimal example:
execute pathogen#infect()
syntax on
filetype plugin indent on

а так - у тебя просто не завелся плугин.

science ★★☆ ()
Ответ на: комментарий от science

Нет, нет, я добавил. Плагины работают - сам по себе emmet работает. Но переопределить кнопку для экспанда не удается. Не понимаю, что я делаю не так. Какая информация может помочь?

cat /etc/vim/vimrc

call pathogen#runtime_append_all_bundles()
filetype off
syntax on
filetype plugin indent on

let g:user_emmet_leader_key='<C-Z>'
let g:user_emmet_mode='a'

Ctrl-Z не работает.

coderage ()
Ответ на: комментарий от coderage

Лучше не трогать системный, а работать с пользовательским .vimrc

Ты всё правильно делаешь, я просто забыл тебе сказать, что дефолтная настройка emmet'а (это сказано в описании на гитхабе), это не просто leader key (C-Z), но и запятая, т.е. зажав C-z, ты должен нажать еще запятую,

Then type "<c-y>," (Ctrl + y + ','), you should see:
что анрил.

Вот почему я вешаю на одну кнопку.

imap     <expr>      <F5> emmet#expandAbbrIntelligent("\<tab>")
Поэтому, сделай как я или найди другую, удобную для тебя кнопку, если до F5 неудобно тянуться.

science ★★☆ ()
Последнее исправление: science (всего исправлений: 1)

- интеграция с git
- интеграция с ftp

противоречащие параграфы

q11q11 ★★★★★ ()

Крайне долгое время обходился без IDE и, похоже, сильно привык

вот и продолжай обходиться без IDE
используй VIM естесственным для него образом, как редактор,
и не делай из него IDE

q11q11 ★★★★★ ()
Ответ на: комментарий от q11q11

вот и продолжай обходиться без IDE используй VIM естесственным для него образом, как редактор, и не делай из него IDE

а ты наверное крупнейший специалист в данной области? А где можно ознакомится с вашими трудами?

emulek ()
Ответ на: комментарий от q11q11

- интеграция с git

- интеграция с ftp

противоречащие параграфы

обоснуй.

emulek ()
Ответ на: комментарий от coderage

Ctrl-Z не работает.

часто в терминале она забиндена на свои нужды.

/etc/vim/vimrc

лучше уж в /etc/skel пихай. Если для всех хочешь. А я юзаю ~/.vimrc.

emulek ()
Ответ на: комментарий от science

Спасибо, разобрался, заработало. Очень тяжело дается переход, так и хочется плюнуть и отказаться, как обычно.

coderage ()
Ответ на: комментарий от coderage

Очень тяжело дается переход, так и хочется плюнуть и отказаться, как обычно.

Реально советую сначала освоить VIM как редактор и со временем обрастёшь модулями по вкусу, а с наскока сделать IDE из VIM - очень и очень непросто.

подсветка парного тега html

http://stackoverflow.com/questions/8168320/can-vim-highlight-matching-html-ta...

q11q11 ★★★★★ ()

запарываю все по срокам, т.к. начинаю дико тормозить при банальном редактировании файлов

куча плагинов не поможет тебе редактировать текст быстрее

q11q11 ★★★★★ ()
Ответ на: комментарий от science

Да. Для удобного перемещения между ними и управления ими можно использовать dwm.vim.

по мне dwm.vim это костыль непонятно для чего
можно же просто замапить что-то типа ^w+Up и так далее

q11q11 ★★★★★ ()
Ответ на: комментарий от val-amart

для иде от Idea и MS VS есть отличные плагины с кейбиндингами вима

которые при этом не умеют банального ci( или что-то подобное

q11q11 ★★★★★ ()
Ответ на: комментарий от q11q11

Я сам не использую - работаю только с одним файлом (кроме vimdiff конечно), в одном окне. Отредактировал (или оставил на время) и перешел к другому (например через плагиньі для буферов).

science ★★☆ ()
Ответ на: комментарий от q11q11

никаких ВП тут нет (хотя я не знаю зачем и кому нужен в 21ом веке FTP вообще, и в текстовом редакторе в частности).

emulek ()
Ответ на: комментарий от science

у меня тоже так, а для vimdiff или если nerdtree открыт - ^w^w хватает (тем более что ctrl можно не отпускать)

например через плагиньі для буферов

пробовал с буферами, но вим не позволяет переходить в следующий не сохранив текущий, поэтому сижу в табах,
а ещё видел такое... и оно чем-то даже удобно

" allow windows to get fully squashed
set winminheight=0
" switch between windows, maximizing the current window
map <C-J> <C-W>j<C-W>_
map <C-K> <C-W>k<C-W>_

q11q11 ★★★★★ ()
Последнее исправление: q11q11 (всего исправлений: 1)
Ответ на: комментарий от q11q11

которые при этом не умеют

главное: умеют пищать и всё портить.

emulek ()
Ответ на: комментарий от q11q11

пробовал с буферами, но вим не позволяет переходить в следующий не сохранив текущий, поэтому сижу в табах,

шта? или я не так тебя понял?

https://github.com/jeetsukumaran/vim-buffergator

map      <S-Tab>     :BuffergatorToggle<CR>

не нужно ничего сохранять, просто переключаешься по S-Tab куда нужно, кроме того, файл из буфера можно открьіть опять не только как основной, но и:

   - <C-V> : open in new vertical split
   - <C-S> : open in new horizontal split
   - <C-T> : open in new tab

Попробуй, очень удобно.

science ★★☆ ()
Последнее исправление: science (всего исправлений: 1)
Ответ на: комментарий от science

или я не так тебя понял?

я говорю про обчные :bn и :bp
если текущий буфер не сохранён, вим рисует это:

E37: No write since last change (add ! to override)

и постоянно думать сохранил файл или нет и доклеивать ! к :bn если нет... как-то парит

а если говорить о плагинах - я иногда использую BufExplorer, но с ним та-же проблема что и с :bn :bp

q11q11 ★★★★★ ()
Последнее исправление: q11q11 (всего исправлений: 2)
Ответ на: комментарий от q11q11

Гхм. Давно пользоваться вимом и не знать про 'hidden'? Да даже тупо скопипастить ошибку в поисковик — первая страница релевантна вся!!

anonymous ()
Ответ на: комментарий от q11q11

Реально советую сначала освоить VIM как редактор

Не понимаю элементарного. Вот я в режиме вставки, печатаю текст. И чтобы подвинуть курсор нужно нажать Esc (или Ctrl-C), подвинуть его куда надо, нажать i и продолжить. Ну как это можно быть быстрее, чем в «обычном» редакторе, как?..

coderage ()
Ответ на: комментарий от coderage

чтобы подвинуть курсор нужно нажать Esc (или Ctrl-C) ...

Или воспользоваться клавишами вверх/вниз/вправо/влево.

mathcrosp ★★ ()
Ответ на: комментарий от coderage

И чтобы подвинуть курсор нужно нажать Esc (или Ctrl-C), подвинуть его куда надо, нажать i и продолжить.

use-case опиши

а вообще, переходи в режим вставки ТОЛЬКО когда тебе нужно НАБРАТЬ текст, а не отредактировать его

q11q11 ★★★★★ ()
Последнее исправление: q11q11 (всего исправлений: 1)
Ответ на: комментарий от anonymous

и не знать про 'hidden'

я не говорил что не знаю, но мне удобнее с табами

q11q11 ★★★★★ ()
Ответ на: комментарий от q11q11

пробовал с буферами, но вим не позволяет переходить в следующий не сохранив текущий, поэтому сижу в табах

У кого то трусы под цвет крестика.

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

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.