LINUX.ORG.RU

Vim, подбор плагинов и настройка

 ,


0

7

Начал засматриваться на vim в качестве основного редактора.

Поставил ultisnips и youcompleteme - у меня трешак какой-то, по TAB работает только автокомплит из всплывающего списка, для разворачивания сниппетов юзаю Ctrl + t - не очень удобно.

В общем, посоветуйте, пожалуйста, плагины такого рода:

  • нормальные сниппеты, с возможностью дописания своих (не хочется учить 3 месяца, как писать сниппет, если мне надо добавить 1,5 команды, а также научить после $this по нажатию "-" сразу ставить знак "->", а по "--" ставить «=>»);
  • автоподстановка имён файлов (например, «css/ma» и по табу - «css/main.css» или список имён файлов с возможностью выбора, _крайне_ желательна возможность научить его, где он должен смотреть по алиасам вида @web, чтоб он мог по этому алиасу предлагать файлы.
  • Для работы с проектами уже посоветовали nerdtree - если есть что-то лучше и удобнее - я весь во внимании

Может ещё какие-то удобные плагины.

Насчёт языков: html, css, js, php и perl. С остальным пока не сталкивался.

★★★★

пожалуй подпишусь
укажи еще дополнительно под какие языки идет подбор
с поста понятно что html, css, php ($this ?)

kiotoze ★★★★ ()

нормальные сниппеты, с возможностью дописания своих

https://github.com/garbas/vim-snipmate

Что бы писать свои, нужно только уметь вообще что-то писать.

Остальное посмотрю, если не забуду, когда буду около удобной машины.

iu0v1 ()

~/.vimrc

set backspace=indent,eol,start whichwrap+=<,>,[,]

nmap <C-s> :update<CR>
vmap <C-s> <Esc><C-s>gv
imap <C-s> <C-o><C-s>

noremap <C-Z> u
inoremap <C-Z> <C-O>u

~/.bash_profile

vim() {
  local STTYOPTS="$(stty --save)"
  stty stop '' -ixoff
  command vim "$@"
  stty "$STTYOPTS"
}

можно вывести виндузятника из винды, но винду из виндузятника — никогда

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

Да, html, css, js, php, ну и отдельно perl (в свободное время ковыряю mojo, хочу свой бложик запилить).

ekzotech ★★★★ ()

Есть мнение, что комплитеры в виме не нужны, слишком уж они тяжелые.
У самого только A.vim, какая-то хрень для добавления header guards и nerdtree с tagbar'ом, да и то последние я раз в году использую.

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

Я помню года 2 или 3 назад этот проект заморозился, долго не обновлялся, поэтому был запилен другой: https://github.com/honza/vim-snippets и в него входит в том числе и snipmate.

Сейчас идёт ultiSnips, который включает в себя vim-snippets.

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

Ну, ты меня прям совсем за гуру не считай.

Ты б хоть в 2 словах объяснил, что оно делает. В .vimrc, как я понимаю, ты забиндил привычные клавиши на команды?

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

Всё равно vim будет быстрее, чем IDE.

И потом, мне-таки нужны, потому что писать всё вручную - нафиг надо.

ekzotech ★★★★ ()

Ултиснипс стал каким то эпическим неработающим монстром. Пользую https://github.com/garbas/vim-snipmate.git + https://github.com/honza/vim-snippets.git

автоподстановка имён файлов

Из коробки же есть <c-x><c-f>.

если есть что-то лучше и удобнее - я весь во внимании

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

Возможно ctrlP это тоже все умеет, но меня интересовала интеграция с грепалкой которая подхватывает теже настройки проектов и мусорные исключения.

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

Добавлены хоткеи <Ctrl>s для сохранения файла и <Ctrl>z для отмены последнего действия.

В vim сохранение файла осуществляется нажатием клавиш <Escape><Shift>;w<Enter>i

Это ещё хорошо, если тебе надо что-то один раз сделать и выйти. Тогда ты нажимаешь более простые <Escape><Shift>zz

В Emacs попроще, но тем не менее, файл сохраняется нажатием двух хоткеев <Ctrl>x<Ctrl>s и тем не менее.

В nano сохранение при помощи <Ctrl>o, лол.

В Windows, и не только Windows, — в любом адекватом GUI, в т.ч. Linux, во всех графических редакторах принято за стандарт — сохранение при помощи одного единственного <Ctrl>s.

Я считаю, первое же, что необходимо сделать перед началом работы с vim, это сделать сохранение по нажатию <Ctrl>s находясь в любом режиме ввода. И хоть закидайте меня помидорами, но это просто здравый смысл.

Spoofing ★★★★★ ()

Vim осиливать надо, «Practical Vim» какой-нибудь в помощь.

сниппеты

neosnippet

автоподстановка имён файлов

i_CTRL-X_CTRL-F

он должен смотреть по алиасам вида @web, чтоб он мог по этому алиасу предлагать файлы.

самописная функция для автодополнения

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

самописная функция для автодополнения

Оно и понятно, вряд ли есть плагин с поддержкой yii2 для vim. Вопрос именно в том, чтоб появлялся всплывающий список с именами файлов, в зависимости от вводимого пути. Вот если б через youcompleteme это реализовать - был бы просто огонь. Но он сам по себе вроде не умеет в дополнение файлов.

i_CTRL-X_CTRL-F

У меня никакого эффекта не оказывает никак.

Vim осиливать надо, «Practical Vim» какой-нибудь в помощь.

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

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

В vim-snippets же входит vim-snipmate, не?

vim-snippets это просто набор готовых сниппетов.

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

у меня не работает c-x или c-f.

:help i_CTRL-X_CTRL-F

Но оказывает оно только для cwd работает, ммм. Наверно попутал с gf. Пора запилить очередной маленький велосипедик, учитывающий path.

A1 ()

Для быстрого поиска файлов в проекте можно использовать эту софтину: https://github.com/junegunn/fzf (есть плагин для vim'a). Рабочий процесс такой: vim при запуске подгружается локальный для проекта конфиг, в котором указан как разу путь к проекту, который будет использовать vim(и соответственно fzf) для поиска файлов. fzf работает крайне быстро. Плюс, у fzf плагина для vim есть режимы использования и для fuzzy-поиска буферов, табов и прочего. Есть более фичастые в этом плане CtrlP и Unite, но все руки не доходят их посмотреть, а fzf подкупил своей простотой и легкостью.

Для сниппетов пользуюсь UltiSnips. Синтаксис сниппетов очень прост. Есть отличный обучающий ролик от Дрю Нилла: http://vimcasts.org/episodes/meet-ultisnips.

Для html,css и scss сниппетов очень советую https://github.com/mattn/emmet-vim

Для автокомплита пользуюсь YouCompleteMe. Да, компиляция при каждом обновлении может быть надоедливой, но лучше, быстрее и умнее автокомплита для vim'a я не встречал.

ФМ в vim не подключал, т.к. для разработки пользуюсь vim'ом исключительно в связке с tmux, а в нем уже в соседней вкладке открыт ranger для «визуальной» навигации по проекту.

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

Для сниппетов пользуюсь UltiSnips.

Ну вот я их поставил, у меня стоит youcompleteme, но как-то не очень удобно выходит разворачивать сниипет по другой кнопке, кроме Tab. И вообще непонятно, зачем для youcompleteme Tab.

ekzotech ★★★★ ()

nerdtree - если есть что-то лучше и удобнее - я весь во внимании

Vimfiler.

Также рекомендую Unite.vim, VimPlug, vim-easytags + tagbar, vim-smalls, CamelCaseMotion, vim-operator-surround, vim-easy-align, vim-airline + bufferline, vim-indent-guides, lite-dfm.

Сниппеты\автодополнения у тебя стоят самые нормальные, правда они конфликтуют.
Нужно плясать с бубном чтобы хоть как-то работало.
Мои настройки:

fu g:UltiSnips_Complete()
    call UltiSnips#ExpandSnippet()
    if g:ulti_expand_res == 0
        if pumvisible()
            return "\<C-n>"
        else
            call UltiSnips#JumpForwards()
            if g:ulti_jump_forwards_res == 0
               return "\<TAB>"
            endif
        endif
    endif
    return ""
endf

au InsertEnter * exec "inoremap <silent> " . g:UltiSnipsExpandTrigger . " <C-R>=g:UltiSnips_Complete()<CR>"

let g:UltiSnipsExpandTrigger = "<Tab>"

let g:ycm_key_select_completion = "<C-j>"
let g:ycm_key_previous_completion = "<C-k>"

noremap <C-@> <C-f>

Также рекомендую вместо Vim использовать Neovim (быстрее работает сохраняя совместимость)

I60R ★★ ()

Овер 10 лет в виме, под всеми осями, только ваниль. До сих пор что-то новое открываю. Нафига все эти сниппеты-шмипетты?

anonymous ()

Я вот думаю перекатиться на IDE после многих лед пользования vim`ом.

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

pawnhearts ★★★★★ ()

1) SnipMate
2) не пользуюсь таким, не посоветую
3) нердтре я юзал недолго, взбесило, выкинул нах, есть <esc>:e ./<cr> которую можно замапить на новую вкладку/сплит, что у меня и сделано.

deep-purple ★★★★★ ()
Ответ на: комментарий от pawnhearts

Автоматическое обновление плагинов и пост-настройка может выполнить плагин-менеджер, например https://github.com/junegunn/vim-plug.

Про велосипедостроение IDE из vim'a уже было миллионы раз обтерто в интернетах: vim - просто крутой текстовый редактор, с не самой хорошей поддержкой интеграции внешних утилит в силу исторических причин и, опять же, что это текстовый редактора, а не интегрированная среда.

Neovim призван решить многие проблемы и уже огромные подвижки в этом направлении есть: поддержка ассинхронности для плагинов, встроенный терминал и новый формат хранения состояний ShaDa, который позволяет множеству копий neovim'a иметь общие данные в регистрах, доступ к буферам и т.д.

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

Да и в IDE куча функционала, который в vim можно запилить только в теории, но никто этим заниматься не будет.

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

P.S у меня есть чувство что качество и количество коммунити плагинов к жирно-IDE будет только падать — разработчики мельчают, осилить API все труднее и труднее (в том числе и потому что выходяят новые версии с более макаронистой лапшой вместо интерфейсов) и фрагментация инструментов также оттяпывает значительное количество светлых голов.

Вообще не хочется вляпываться во все это дерьмо. С вимом я по крайней мере уверен что недостающие фишки состряпаю сам.

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

Лично для меня прелести IDE (хоть NetBeans, хоть phpStorm) - малополезны. Я не пользуюсь ни рефакторингом, ни ещё чем-то.

Хотелось бы осилить vim и не переживать за всю эту фигню.

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

Апну свою старую тему.

Слушай, у меня youcompleteme работает, если ввожу имя файла - подсказывает и предлагает варианты, выводит список каталогов и файлов, в том числе с русскими именами. Но если название каталога на русском - дальше уже не подсказывает. Например, путь /home/ekzotech/Изображения/wallpapers - дальше «Изображения» уже не идёт. Это можно как-то поправить?

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

Добавлены хоткеи <Ctrl>s для сохранения файл

Ага, а теперь попробуй в том же xterm запустить vim и нажать этот хоткей. Чтоб «разблокировать» - ^Q

и <Ctrl>z для отмены последнего действия

И у этого хоткея тоже есть свое предназначение.

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

sublime text плохо умеет в yii2, даже не смотря на сниппеты, слабовато интегрируется с git. Да и вообще, sublime создавался для тех, кто ниасилил vim же.

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

Да и вообще, sublime создавался для тех, кто ниасилил vim же.

Не соглашусь, вим это классная вещь, но все на вкус и цвет, лично я считаю, что сублим выигрывает по функционалу и настройке.

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

что сублим выигрывает по функционалу

Сурсмап и прости господи мультикурсор. Но детишкам без подгузников никак, это правда.

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

Ну я и говорю, что sublime text - это редактор, написанный для тех, кто ниасилил vim. Вроде как автор саблайма - сам вимер, и написал редактор для жены и знакомых, не умеющих в vim.

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

Вроде как автор саблайма - сам вимер, и написал редактор для жены и знакомых, не умеющих в vim.

Где вы это вычитали?

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

Старая байка, которая была ещё во времена первого саблайма.

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

sublime text плохо умеет в yii2, даже не смотря на сниппеты, слабовато интегрируется с git

Без плагинов и вим ни черта не умеет перечисленное.

Да и вообще, sublime создавался для тех, кто ниасилил vim же.

И чем же это плохо?

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

sublime text плохо умеет в yii2, даже не смотря на сниппеты, слабовато интегрируется с git

Без плагинов и вим ни черта не умеет перечисленное.

+++

Vim без плагинов это тупой редактор конфигов.

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

Без плагинов и вим ни черта не умеет перечисленное.

Ну, я не знаю, насчёт git для vim, какая там ситуация. А вот у саблайма куда печальнее, чем в том же atom, например.

И чем же это плохо?

Ничём. Но vim всё-таки немножечко круче, как мне кажется.

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

Vim без плагинов это тупой редактор конфигов.

Vim без плагинов умеет немножечко больше, чем большинство редакторов без плагинов.

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