LiveReload
Большинство web — разработчиков в наше время с трудом представляют свою жизнь без этого замечательного расширения. Оно есть в таких редакторах как WebStorm, Sublime Text и существует как отдельное приложение для редакторов не поддерживающих LiveReload. К сожалению Vim относится к таким редакторам. Расширение есть, но оно давно уже устарело и не поддерживает последний протокол LiveReload 2.
К счастью есть замечательная консольная утилита, которая называется python-livereload. Из огромных плюсов данной утилиты — не нужно устанавливать плагин для Google Chrome, Firefox и т.д., утилита бесплатная. Получить исходники можно тут github.com/lepture/python-livereload установить ее можно через pip или easy_install:
pip install livereload
Прежде чем начать редактирование нам необходимо создать Guardfile, который является обычным Python скриптом.
#!/usr/bin/env python from livereload.task import Task Task.add('css/*.css') Task.add('*.html')
После чего в текущей директории мы можем запустить сервер LiveReload командой:
livereload -p 8000
Python-livereload так же поддерживает less, coffee, uglifyjs и slimmer. Достаточно импортировать соответствующую функцию из модуля livereload.compiler, например:
#!/usr/bin/env python from livereload.task import Task from livereload.compiler import lessc, coffee Task.add('css/*.css') Task.add('*.html') Task.add('css/style.less', lessc('style.less', 'style.css') Task.add('js/main.coffee', coffee('main.coffee', 'main.js')
Базовые настройки редактора vim
Теперь поговорим о базовых настройках, которые помогут нам в дальнейшем комфортно работать с кодом. Для начала давайте установим клавишу leader.
set mapleader = ","
Клавиша leader позволяет нам создавать собственные комбинации, при этом не портя стандартные, которые уже присутствуют в редакторе. В качестве клавиши leader я установил комбинацию "," вы можете установить любую другую.
Из редактора я постарался убрать все лишнее (кроме вкладок в GUI). Для этого воспользуемся следующими настройками
if has('gui_running') " Глобальные настройки на GUI Vim set guioptions-=m " убираем меню " set guioptions-=e " убираем вкладки GUI делаем их как в консоли set guioptions-=T " убираем тулбар set guioptions-=r " убираем полосы прокрутки справа set guioptions-=L " убираем полосы прокрутки слева set background=light " Цвет фона темный или светлый set guioptions-=R set guioptions-=l endif
Обратите внимание на закоментированную строку set guioptions-=e. Если ее включить вкладки у вас будут выглядеть как в консольном виме:

Отступы между черточками, разделяющие окно редактора можно убрать так
set fillchars=stl:\ ,stlnc:\ ,vert:│

Теперь настроим не отображаемые символы, к ним относятся пробельные символы, символы переноса строки и символы табуляции. Я использую следующие настройки
if has('multi_byte') if version >= 700 " set listchars=tab:»\ ,trail:·,eol:¶,extends:→,precedes:←,nbsp:× set listchars=tab:▸\ ,eol:¬ # TextMate else set listchars=tab:»\ ,trail:·,eol:¶,extends:>,precedes:<,nbsp:_ endif endif nmap <leader>l :set list!<CR>
Я привязал комбинацию leader + l для включения и выключения не отображаемых символов, так как они не всегда нужны, а иногда даже мешают редактированию.
Совет: иногда при вставке текста в редактор не сохраняется форматирование и в редакторе появляется какая то белиберда. Что бы этого избежать добавьте в vimrc строку set paste или перед вставкой текста введите команду :set paste
Vundle
Vundle позволяет с легкостью устанавливать и обновлять расширения. Далее в статье для установки расширений мы будем использовать именно этот плагин. Установка на займет много времени, поэтому давайте сразу его установим:
git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
Теперь необходимо добавить следующие строки в .vimrc:
set nocompatible filetype off set rtp+=~/.vim/bundle/vundle/ call vundle#rc() " тут будем добавлять наши расширения filetype plugin indent on " тут пойдут наши собственные настройки vim
Для установки расширений воспользуйтесь следующим форматом
Bundle 'tpope/vim-fugitive' " установка из Github Bundle 'FuzzyFinder' " установка из репозиториев vim-scripts Bundle 'git://git.wincent.com/command-t.git' " установка из Git
Powerline
Статусная строка в vim выглядит уныло и некрасиво. К счастью есть плагин, который делает ее более информативной и красивой. Пример того, как выглядит строка состояния у меня

Установка: Bundle ‘Lokaltog/vim-powerline’
Что бы отображалась ветка текущего репозитория git, в директории которого вы находитесь добавьте и установите Bundle ‘vim-fugutive’. Для корректной работы Powerline необходимо скачать исправленные шрифты отсюда, установить их и прописать в редакторе. Например:
set guifont=Menlo\ Regular\ for\ Powerline:h12
Command-T
Command-T это отличное расширение позволяющее вам быстро открывать файлы по их названию, переключаться между буферами или тегами.
Установка: Bundle ‘wincent/Command-T’
Далее необходимо перейти в директорию расширения command-t и запустить rake make:
cd .vim/bundle/command-t rake make
Клавиатурные комбинации можно настроить следующим образом:
map <leader>f :CommandT<CR> map <leader>b :CommandTBuffer<CR>
Теперь по leader + f открывается Command-T, leader + b открывает список открытых буферов.

Pyhton mode
Python mode позволяет сделать из редактора почти что полноценную IDE. Из того, что умеет python-mode:
1. Подсветка ошибок через pyflakes, pep8, pylint, mccable, pep257
2. Полная поддержка Rope (RopeCompletion, RopeGotoDefinition, RopeRename, RopeAutoImport, и т.д.)
3. Поддержка virtualenv

Пример настроек python-mode
" Включаем библиотеку Rope let g:pymode_rope = 1 " Включаем linting let g:pymode_lint = 1 " Какие ошибки подсвечивать let g:pymode_lint_checker = "pyflakes,pep8" " Отключаем надоедливое окно, отображающее ошибки и предупреждения let g:pymode_lint_cwindow = 0 " Включаем поддержку virtualenv let g:pymode_virtualenv = 1 " Подсветка синтаксиса и ошибок let g:pymode_syntax = 1 let g:pymode_syntax_all = 1 let g:pymode_syntax_indent_errors = g:pymode_syntax_all let g:pymode_syntax_space_errors = g:pymode_syntax_all " Отключаем фолдинг let g:pymode_folding = 0 " Загружаем плагин для вставки брейкпоинтов let g:pymode_breakpoint = 1 " По leader + e будет устанавливаться брейкпоинт let g:pymode_breakpoint_key = '<leader>e'
Клавиатурные комбинации:
| Комбинация | Описание |
|---|---|
| C-c-g | Go to definition |
| C-space | Rope autocomplete |
| C-c-d | Rope show documentation |
| C-c-f | Rope find occurrences |
Для Rope autocomplete я настроил комбинацию leader+c. Включается она так
imap <leader>c <C-R>=RopeCodeAssistInsertMode()<CR>
Мой файл конфигурации Vim с подробными комментариями можете посмотреть тут github.com/aliev/vim
Другие полезные расширения vim
MatchTag
Bundle ‘gregsexton/MatchTag’
Подстветка парных html, xml тегов
EndWise
Bundle ‘tpope/vim-endwise’
Отличное расширение для рубистов, которое позволяет автоматически закрывать блоки в Ruby
Emmet
Bundle ‘mattn/emmet-vim’
Я очень долго ждал это расширение. Поддержка emmet (переименованный Zen Coding)
T-Comment
Bundle ‘tomtom/tcomment_vim’
Комментирование блоков кода с автоматическим определением языка
ссылка на оригинал статьи http://habrahabr.ru/post/196550/
Добавить комментарий