LINUX.ORG.RU
ФорумTalks

Плагины для vim

 


7

2

Кто какие плагины использует? Недавно открыл для себя всю гибкость и мощь вима, посему и назрел такой вопрос. Насоветуйте.
PS: Использую vim для написания кода на c++ и обыкновенной правки текста, конфигов etc.

★★★★★

Последнее исправление: f1xmAn (всего исправлений: 2)

Раньше использовал vimwiki, но теперь пишу аналог для веба, потому что с телефона до вима не добраться.

vurdalak ★★★★★
()

Нашел всё что нужно из коробки.
Главное хорошо раскурить.

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

Для С++ и С:

  • clang_comlete - дополнение кода. Самое продвинутое на сегодня. Дополняет все о чем знает компилятор, т.е. вообще все.
  • TagBar - теги для открытого файла. Просто и полезно. В отличии от TagList умеет группировку.
  • A.vim - прыгать между h и cpp
  • DoxygenToolkit - если оно вам надо.
  • Какие-нибудь сниппеты. С этим сам не определился. из простого - snipmate из продвинутого - xptemplates и ultisnipp.

Кроме того vim и без обвеса умеет ОЧЕНЬ много для С. От специальных движений вроде }} до например

" Syntax check
 map <buffer> <special> <F8> :cexpr system("/usr/bin/gcc -fsyntax-only " .  shellescape(expand('%')))<CR>
(Это проверка синтаксиса в текущем файле, которая открывает quickfix буфер. Знать о котором тоже обязательно.)

Просто маст-хэв:

  • NERDTree - дерево файлов.
  • NERDCommenter - работа с комментариями.
  • vim-fuggitive - интеграция git.

Чтоб со всем этим не запутаться нужен Vundle - менеджер плагинов. Все за вас скачает, установит, потом еще и обновлять будет.

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

Ну и еще, пока я здесь.

:help C-indenting
:help tags
:help make
:help folds
Belkrr
()

Последнее время всё повыключал, кроме NerdTREE.

Megamozg
()
clangcomplete - дополнение для плюсов
latex suite
haskellmode
NERDTree - файловый менеджер
BufExplorer - быстрая навигация по открытым буферам
Session - более продвинутый менеджер сессий
easytags - автоматическая генерация тегов и подсветка
dmfd
()

:syntax on
Все остальные настройки и функционал устраивают коробочные.

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

ну и может быть новичкам в vim будет полезно и удобно:

.vimrc

map <F12> <Esc>:set nonumber<CR>
map <C-F12> <Esc>:set number<CR>

map <F11> <Esc>:NERDTree<CR>
map <C-F11> <Esc>:NERDTreeClose<CR>

nnoremap <F2> :set invpaste paste?<CR>
set pastetoggle=<F2>
set showmode

F12 / ctrl+F12 - выкл./вкл. номера строк

F11 / ctrl+F11 - выкл./вкл. файловый менеждер NERDTree

F2 - вкл./выкл. режим вставки в visual-mode без сбоев с white spaces

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

Вот ещё полезный скрипт для открытия/скрытия окошка с ошибками:

" toggles the quickfix window.
command -bang -nargs=? QFix call QFixToggle(<bang>0)
function! QFixToggle(forced)
  if exists("g:qfix_win") && a:forced == 0
    cclose
  else
    copen
  endif
endfunction

" used to track the quickfix window
augroup QFixToggle
 autocmd!
 autocmd BufWinEnter quickfix let g:qfix_win = bufnr("$")
 autocmd BufWinLeave * if exists("g:qfix_win") && expand("<abuf>") == g:qfix_win | unlet! g:qfix_win | endif
augroup END

map <F1> :QFix<Return>
dmfd
()
Ответ на: комментарий от Belkrr

А зачем может понадобиться VimCalc

мне удобен vimcalc в отдельно открытом буфере (minibufexpl)

science ★★☆
()

NerdTree bufexplorer

и очень полезный для меня zencoding

Mironor
()

Я вот тоже в основном для конфигов использую.

Скажите, есть что-нибудь, что умеет хоткеем переключать значанение переменной под курсором? Скажем, если текущее слово - true, сменить его на false. Если под курсором число, (ин|де)крементировать его..?

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

из коробки c-a, c-x это инкремент, декремент соответственно

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

Огромнейшее спасибо! Особенно за Vundle.

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

а что, pony-object ещё не запилил для вима? ;)

Пока нет, но идея такая есть :) После абстрактных классов займусь.

helios ★★★★★
()

Только vim outliner. Когда-то поставил и лень удалять.

A.vim - прыгать между h и cpp

Добавить в $VIMRC:

" switching between .h and .cpp files that in the SAME directory.
map <C-a> :e %:p:s,.h$,.X123X,:s,.cpp$,.h,:s,.X123X$,.cpp,<CR>

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

Для чисел есть ^A и ^X А вот для обмена false и true не знаю, но очень легко набросать, если нет.

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

Вот ещё полезный скрипт для открытия/скрытия окошка с ошибками

да, большое спасибо, очень удобно.

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

Чтоб со всем этим не запутаться нужен Vundle - менеджер плагинов.

У него есть преимущества перед pathogen.vim, кроме

Все за вас скачает, установит, потом еще и обновлять будет.

?

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

Особо в этом не разбирался.

Vundle тоже хранит все плагины в ~/.vim/bundle

Когда выбирал его, а не pathogen руководствовался исключительно автоматической установкой/обновлением.

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

Ясно. Ещё есть такая классная штука как vim-addons, но он работает с локально зарегистрированными дополнениями, коих в Debian не так уж и много:

> vim-addons list
align
alternate
bufexplorer
calendar
closetag
colors-sampler-pack
conqueterm
cvsmenu
debPlugin
detectindent
doxygen-toolkit
editexisting
enhanced-commentify
gnupg
info
justify
lbdbq
matchit
minibufexplorer
nerd-commenter
omnicppcomplete
po
project
python-indent
secure-modelines
snippetsEmu
sokoban
supertab
surround
taglist
tetris
utl
vcscommand
vimplate
whatdomain
winmanager
xmledit

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

Скажите, есть что-нибудь, что умеет хоткеем переключать значанение переменной под курсором? Скажем, если текущее слово - true, сменить его на false.

http://www.vim.org/scripts/script.php?script_id=1748

Очень классная штука для редактирования конфигов.

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

Ещё есть такая классная штука как vim-addons, но он работает с локально зарегистрированными дополнениями

Строго говоря, он работает с теми дополнениями, которые включены в дебиановский пакет vim-scripts, т.к. этот скрипт - сам часть этого пакета.

И они там устаревшие, да.

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

Строго говоря, он работает с теми дополнениями, которые включены в дебиановский пакет vim-scripts, т.к. этот скрипт - сам часть этого пакета.

Не, он идёт отдельно в пакете vim-addon-manager и работает с дополнениями, которые описаны в /usr/share/vim/registry/*.yaml

Полный список несколько больше, хотя ничего особо интересного там нет:

> apt-file search /usr/share/vim/registry/
apparmor-utils: /usr/share/vim/registry/vim-apparmor.yaml
asciidoc: /usr/share/vim/registry/asciidoc.yaml
bicyclerepair: /usr/share/vim/registry/vim-python_bike.yaml
cernlib-base: /usr/share/vim/registry/cernlib-base.yaml
clustershell: /usr/share/vim/registry/clustershell.yaml
coccinelle: /usr/share/vim/registry/coccinelle.yaml
confluence: /usr/share/vim/registry/confluence.yaml
editmoin: /usr/share/vim/registry/vim-editmoin.yaml
gtypist: /usr/share/vim/registry/gtypist.yaml
halibut: /usr/share/vim/registry/halibut.yaml
mpop: /usr/share/vim/registry/mpop.yaml
msmtp: /usr/share/vim/registry/msmtp.yaml
notmuch-vim: /usr/share/vim/registry/notmuch.yaml
ocaml-tools: /usr/share/vim/registry/vim-omlet.yaml
python-jinja2: /usr/share/vim/registry/jinja.yaml
python-mako-doc: /usr/share/vim/registry/mako.yaml
sisu: /usr/share/vim/registry/vim-sisu.yaml
supercollider-vim: /usr/share/vim/registry/supercollider-vim.yaml
survex: /usr/share/vim/registry/vim-survex.yaml
systemtap-common: /usr/share/vim/registry/systemtap.yaml
vifm: /usr/share/vim/registry/vim-vifm.yaml
vim-conque: /usr/share/vim/registry/vim-conque.yaml
vim-latexsuite: /usr/share/vim/registry/vim-latexsuite.yaml
vim-migemo: /usr/share/vim/registry/vim-migemo.yaml
vim-puppet: /usr/share/vim/registry/vim-puppet.yaml
vim-rails: /usr/share/vim/registry/vim-rails.yaml
vim-runtime: /usr/share/vim/registry/vim-runtime.yaml
vim-scripts: /usr/share/vim/registry/vim-scripts.yaml
vim-syntax-go: /usr/share/vim/registry/vim-syntax-go.yaml
vim-syntax-gtk: /usr/share/vim/registry/vim-syntax-gtk.yaml
vim-vimoutliner: /usr/share/vim/registry/vim-registry.yaml

GotF ★★★★★
()

pathogen.vim - крайне рекомендую
a.vim - переключение между cpp/h
cscope_maps.vim - дабы не писать мапинги в ~/.vimrc
guicolorscheme.vim - даже не знаю, наверное полезно
renamer.vim - переименование файла, не использую
marksbrowser.vim - удобный браузер меток
supertab.vim - один tab на все случаи жизни
tasklist.vim - отображение списка todo
bufexplorer - удобная штука, но думаю, что заменю на fuzzyfinder
delimitMate - парные скобки (спорное удобство)
nerdtree - дерево с букмарками, очень полезная вещь
snipmate - удобные снипеты, очень полезно
twitvim - баловство
clang_complete - умный комплишер, крайне полезно
manpageview - просмотр мана по кейворду под курсором, очень полезно
syntastic - без компиляции отображает ошибки в коде
vcscommand - не использую, все делаю из консоли
conque_2.3 - буфер vim превращает в эмулятор терминала. говно, не использую
nerdcommenter - удобное комментирование кода, знает кучу синтаксиса.
session - управление сессиями, очень полезная штука
tagbar - удобная навигация по методам и челнам класса
fuzzyfinder - думаю использовать его для поиска файла в дереве текущей диры и в качестве переключалки буферов вместо bufexplorer
l9 - библиотека для fuzzyfinder
protodef - прототип в реализацию. у меня не работает, отправил письмо автору.
fswitch - переключение между cpp/h. установлен ради protodef. но a.vim на мой взгляд лучше.

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

Тогда уж лучше делать переключение по одной комбинации

imap <F12> <Esc>:set<Space>nu!<CR>a
nmap <F12>      :set<Space>nu!<CR>

map <F11> <Esc>:NERDTreeToggle<CR>

set pastetoggle=<F2>

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

А зачем может понадобиться VimCalc, если есть !! ? Например

Или вообще <C-r>=2+2*2<CR>

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

Если под курсором число, (ин|де)крементировать его..?

<C-a> / <C-x>

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

tasklist.vim - выкинуть и сделать мапинг на vimgrep

manpageview - выкинуть, есть же K (хотя в gvim он что-то глючит)

syntastic- выкинуть есть cexpr

tagbar - заменить на taglist

protodef у меня не прижился, хотя идея хороша. Может еще раз попробую.

fuzzyfinder - интересно, надо попробовать, хотя вроде хватает стандартных e b sp sb в сочетании с wildmenu и set ch=2

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

А если файлы лежат в разных дирах?

Ну возможно, ни один из проектов (моих/производственых) так сорцы не разбрасывал.

Хотя лично я вообще предпочитаю пару h-cpp vsplit-ом держать.

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

tasklist.vim - выкинуть и сделать мапинг на vimgrep

На vimgrep у меня сделан поиск по слову под курсором по файлам проекта.

manpageview - выкинуть, есть же K (хотя в gvim он что-то глючит)

Да, чаще всего использую именно K. А в каком месте он глючит?

tagbar - заменить на taglist

Я сделал все наоборот, заменил taglist на tagbar. И не жалею.

protodef у меня не прижился, хотя идея хороша. Может еще раз попробую.

Вот только что автор отписался, будет искать проблему.

fuzzyfinder - интересно, надо попробовать, хотя вроде хватает стандартных e b sp sb в сочетании с wildmenu и set ch=2

Я только сегодня о нем узнал, еще не решил, насколько он хорош. Но открытие файла по его имени (причем не просто маска, а неточное имя) мне нравится.

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

Ну возможно, ни один из проектов (моих/производственых) так сорцы не разбрасывал.

Ну у меня есть проект, в котором сорцы так и лежат. Это библиотека для рендеринга.

Хотя лично я вообще предпочитаю пару h-cpp vsplit-ом держать.

Да, иногда это полезно. Но не постоянно.

andreyu ★★★★★
()

посоветуйте что-нить для интеграции с hg. vcscommand?

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

imap <F12> <Esc>:set<Space>nu!<CR>a
nmap <F12> :set<Space>nu!<CR>

да, спасибо, поправил.

science ★★☆
()
$ ls -1 ~/.vim/plugin/
autoclose.vim
bufexplorer.vim
closetag.vim
command-t.vim
comments.vim
dbext.vim
genutils.vim
git-branch-info.vim
grep.vim
marksbrowser.vim
matchit.vim
multvals.vim
NERD_commenter.vim
NERD_tree.vim
paster-config.vim
paster.vim
ragtag.vim
rails.vim
ruby.vim
snipMate.vim
surround.vim
taglist.vim

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