Back-end Python Developer
0,0
рейтинг
2 июня 2014 в 22:40

Разработка → VIM как IDE для разработки на Python tutorial

VIM*, Python*
image
Данная статья будет посвящена настройке vim, в которой я поделюсь своим «скромным» пониманием того, каким должен быть текстовый редактор, чтобы в нем было удобно/приятно/легко (нужное подчеркнуть) писать код также, как это сейчас возможно во всевозможных IDE типа PyCharm, SublimeText и т.п.
Весь процесс постараюсь описать как можно более подробно, чтобы вопросов по мере чтения для начинающих осваивать vim возникало как можно меньше.

Предыстория
Сам я знаком с vim не очень продолжительное время, однако, к его изучению и желанию использовать привело:
  • достаточное количество на хабре статей по vim
  • большое количество существующих плагинов
  • преимущественно, разработчики на Python занимаются написанием кода под Linux (хотя vim — кроссплатформенный)
  • собственное любопытство

В настоящее время я использую весьма часто vim как основной инструмент для разработки на Python и нисколько об этом не жалею. Если чего-либо нехватает, то проблема решается гуглением в течении пару минут. Поверьте, vim действительно стоит тех затраченных сил на его изучения. Это достаточно быстро себя «окупает». Было бы только желание и немножечко терпения.

Подготовительный этап
Итак. Перейдем непосредственно к подготовительному этапу. Нам понадобится:
  1. Vim версии 7.4 (получить нужное можно либо скачиванием из репозиториев, либо сборкой вручную)
  2. Python 2.7 (с установленным pip)
  3. Клиент для работы с git

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

Настройка

Самое первой проблемой для любого новичка, который решает обуздать vim, является vimscript. Vimscript — это скриптовый язык, предназначенный для vim. На нем мы будем описывать используемые плагины, горячие клавиши и все тому подобное, чтобы обеспечить себе простую и легкую работу в vim. Для ознакомления советую посетить вот этот и этот сайты. Там достаточно неплохо все описано, что, где, как, и почему.

Первым делом стоит рассказать о том, что конфигурационный файл vim находится в домашнем каталоге пользователя (~/) и называется .vimrc. В нем-то и будут расписываться моменты относительно того, какие шрифты, цветовая схема, хоткеи и т.п. будут использоваться.

Во-вторых, при настойке текстового редактора, иногда будет необходимо заходить в каталог .vim (это скрытый каталог, и он расположен также в домашнем каталоге юзера), в который будут помещен ряд необходимых файлов, рассортированных по каталогам.
Какие включает в себя подкаталоги исходный каталог .vim? Примерно такие:
.vim
|____after
|____autoload
|____colors
|____doc
|____ftplugin
|____indent
|____plugin
|____scripts
|____syntax

Однако, из всех вышеперечисленных каталогов нам понадобится лишь несколько:
  • colors — для цветовых схем/тем
  • indent — сюда будет скидывать файлы для работы с тегами HTML/XML и т.п.
  • scripts — для скриптов
  • syntax — файлы синтаксиса

В эти каталоги помещаем соответствующие файлы, взяв их, например, у меня.

До начала установки и работа с менеджером пакетов пропишем в консоли:
pip install pyflakes pep8 pylint ipython

В дальнейшем, эти библиотеки нам пригодятся для того, чтобы отслеживать качество своего кода: ошибки, соответствие его PEP8 и т.п. Последняя же в этом списке библиотека/пакет — ipython нам будет удобна для настройки своего «дебаггера».
Также нам еще необходимо установить Exuberant ctags. Скачать его можно отсюда либо поискать и установить через менеджер пакетов apt-get/aptitude/rmp/pacman/и т.п.

Менеджер плагинов

Для того, чтобы нам было проще с установкой и использованием плагином будем использовать Vundle. Vundle — это пакетный менеджер для Vim, способный:
  • настраивать и устанавливать плагины, указанные в. vimrc
  • обновлять плагины при необходимости
  • удалять неиспользуемые плагины

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

git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim

После выполнение этой команды Vundle будет установлен в ~/.vim/bundle/Vundle.vim

Теперь добавим следующую часть в свой новосозданный .vimrc если его еще нет:

set nocompatible              " be iMproved, required
filetype off                  " required

"=====================================================
" Vundle settings
"=====================================================
" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

Plugin 'gmarik/Vundle.vim'		" let Vundle manage Vundle, required

"---------=== Code/project navigation ===-------------
Plugin 'scrooloose/nerdtree' 	    	" Project and file navigation
Plugin 'majutsushi/tagbar'          	" Class/module browser

"------------------=== Other ===----------------------
Plugin 'bling/vim-airline'   	    	" Lean & mean status/tabline for vim
Plugin 'fisadev/FixedTaskList.vim'  	" Pending tasks list
Plugin 'rosenfeld/conque-term'      	" Consoles as buffers
Plugin 'tpope/vim-surround'	   	" Parentheses, brackets, quotes, XML tags, and more

"--------------=== Snippets support ===---------------
Plugin 'garbas/vim-snipmate'		" Snippets manager
Plugin 'MarcWeber/vim-addon-mw-utils'	" dependencies #1
Plugin 'tomtom/tlib_vim'		" dependencies #2
Plugin 'honza/vim-snippets'		" snippets repo

"---------------=== Languages support ===-------------
" --- Python ---
Plugin 'klen/python-mode'	        " Python mode (docs, refactor, lints, highlighting, run and ipdb and more)
Plugin 'davidhalter/jedi-vim' 		" Jedi-vim autocomplete plugin
Plugin 'mitsuhiko/vim-jinja'		" Jinja support for vim
Plugin 'mitsuhiko/vim-python-combined'  " Combined Python 2/3 for Vim

call vundle#end()            		" required
filetype on
filetype plugin on
filetype plugin indent on

Как вы видите, места где указаны Plugin 'ссылка_до_плагина' представляет собой ссылки в интернете эти плагины, которые Vundle будет скачивать и в последствии устанавливать. Для себя, я разбивал эти плагины на «категории», но это уже дело вкуса. Сами плагины:
  • NERDTree — навигация по файловой/директориям
  • TagBar — навигация по классам/функциям/переменным
  • vim-airline — строка статуса/состояния
  • FixedTaskList — поиск в файле FIXME, TODO и т.п.
  • conque-term — используем для вызова дебаггера
  • vim-surround — автозакрытие тегов HML/XML/и т.п.
  • vim-snipmate — сниппеты
  • python-mode — рефакторинг, документация, дебаггер Python и т.п.
  • jedi-vim — автодополнение для Python
  • vim-jinja — поддержка синтаксиса шаблонов Jinja

В качестве руководства/гайда по использованию Vundle можно зайти сюда. Однако для наших целей будет предостаточно одной:
:PluginInstall

Эта команда сканирует файл .vimrc на наличие списка плагинов прописанных в виде Plugin 'ссылка_до_плагина'.
Для того, чтобы запустить установку набора плагинов, заходим в vim/gvim и прописываем :PluginInstall. Придется немного подождать, поскольку каждый плагин, указанный выше в конфиге, будет скачан с githuba либо еще откуда-то и настроен до установок «по умолчанию», подождите пару минут. Каждый выкачанный и настроенный плагин отмечается как "+". Как только увидите, что все из списка подсвечены "+" — значит, все готово. И для дальнейшего использования необходимо будет перезапустить vim. Однако на этом все еще не оканчивается статья — все необходимо «подкрутить», чтобы работать в vim'е было комфортно.

Общие настройки vim'а
Эти настройки для меня являются базовыми. Тут я указываю свои предпочтения относительно парочки плагинов, размера шрифтов, цветовой схемы, отображаемых элементов и т.п.
Добавьте эти строчки в конец своего .vimrc файла:
"=====================================================
" General settings
"=====================================================
set backspace=indent,eol,start
aunmenu Help.
aunmenu Window.
let no_buffers_menu=1
set mousemodel=popup

set ruler
set completeopt-=preview
set gcr=a:blinkon0
if has("gui_running")
  set cursorline
endif
set ttyfast

" включить подсветку кода
syntax on
if has("gui_running")
" GUI? устаналиваем тему и размер окна
  set lines=50 columns=125
  colorscheme molokai
" раскомментируйте эти строки, если хотите, чтобы NERDTree/TagBar автоматически отображались при запуске vim
" autocmd vimenter * TagbarToggle
" autocmd vimenter * NERDTree
" autocmd vimenter * if !argc() | NERDTree | endif

" на маке vim?
if has("mac")
  set guifont=Consolas:h13
  set fuoptions=maxvert,maxhorz
else
" дефолтный GUI
  set guifont=Ubuntu\ Mono\ derivative\ Powerline\ 10
endif
else
" терминал?
  colorscheme myterm
endif

tab sball
set switchbuf=useopen

" отключаем пищалку и мигание
set visualbell t_vb= 
set novisualbell       

set enc=utf-8	     " utf-8 по дефолту в файлах
set ls=2             " всегда показываем статусбар
set incsearch	     " инкреминтируемый поиск
set hlsearch	     " подсветка результатов поиска
set nu	             " показывать номера строк
set scrolloff=5	     " 5 строк при скролле за раз

" отключаем бэкапы и своп-файлы
set nobackup 	     " no backup files
set nowritebackup    " only in case you don't want a backup file while editing
set noswapfile 	     " no swap files

" прячем панельки
"set guioptions-=m   " меню
set guioptions-=T    " тулбар
"set guioptions-=r   "  скроллбары

" настройка на Tab
set smarttab
set tabstop=8

"  при переходе за границу в 80 символов в Ruby/Python/js/C/C++ подсвечиваем на темном фоне текст
augroup vimrc_autocmds
    autocmd!
    autocmd FileType ruby,python,javascript,c,cpp highlight Excess ctermbg=DarkGrey guibg=Black
    autocmd FileType ruby,python,javascript,c,cpp match Excess /\%80v.*/
    autocmd FileType ruby,python,javascript,c,cpp set nowrap
augroup END

" указываем каталог с настройками SnipMate
let g:snippets_dir = "~/.vim/vim-snippets/snippets"

" настройки Vim-Airline
set laststatus=2
let g:airline_theme='badwolf'
let g:airline_powerline_fonts = 1
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#formatter = 'unique_tail'

" TagBar настройки
map <F4> :TagbarToggle<CR>
let g:tagbar_autofocus = 0 " автофокус на Tagbar при открытии

" NerdTree настройки
" показать NERDTree на F3
map <F3> :NERDTreeToggle<CR>
"игноррируемые файлы с расширениями
let NERDTreeIgnore=['\~$', '\.pyc$', '\.pyo$', '\.class$', 'pip-log\.txt$', '\.o$']  

" TaskList настройки
map <F2> :TaskList<CR> 	   " отобразить список тасков на F2

" Работа буфферами
map <C-q> :bd<CR> 	   " CTRL+Q - закрыть текущий буффер

Python-mode
Очень нравится этот плагинчик, который кстати, сделан klen. Предоставляет море возможностей при работе с кодом:
  • рефакторинг
  • автодополнение
  • работа с дебаггером
  • автофикс PEP8 ошибок
  • и многое-многое другое...

Добавьте эти строчки в конец своего .vimrc файла:
"=====================================================
" Python-mode settings
"=====================================================
" отключаем автокомплит по коду (у нас вместо него используется jedi-vim)
let g:pymode_rope = 0
let g:pymode_rope_completion = 0
let g:pymode_rope_complete_on_dot = 0

" документация
let g:pymode_doc = 0
let g:pymode_doc_key = 'K'
" проверка кода
let g:pymode_lint = 1
let g:pymode_lint_checker = "pyflakes,pep8"
let g:pymode_lint_ignore="E501,W601,C0110"
" провека кода после сохранения
let g:pymode_lint_write = 1

" поддержка virtualenv
let g:pymode_virtualenv = 1

" установка breakpoints
let g:pymode_breakpoint = 1
let g:pymode_breakpoint_key = '<leader>b'

" подстветка синтаксиса
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

" отключить autofold по коду
let g:pymode_folding = 0

" возможность запускать код
let g:pymode_run = 0

Jedi-vim
Очень полезный плагин, предоставляющий отличные возможности автокомплита, go to definition, и т.п.
В своем конфиге добавьте в конец этот фрагмент:
" Disable choose first function/method at autocomplete
let g:jedi#popup_select_first = 0

Этой строчкой я отрубаю в автокомплите выбор первой строки из списка выбора метода/библиотеки/класса автокомплита. Это связано с тем, что достаточно часто я выбираю не первую строку из нее, а автоматический выбор раздражает.

После настройки jedi-vim получаем отображение документации по функции
image
и добротный автокомплит по аргументам функций
image

Хоткеи
Тут сложно что-либо посоветовать. У всех различное понимание того, какие хоткеи нужны, а какие-нет. Могу лишь сказать, что для желающих, найти/написать необходимые кусочки vimscript, переопределяющих поведение стандартных горячих клавиш — очень много.
Добавьте этот фрагмент в конец конфига:
"=====================================================
" User hotkeys
"=====================================================
" ConqueTerm
" запуск интерпретатора на F5
nnoremap <F5> :ConqueTermSplit ipython<CR>
" а debug-mode на <F6>
nnoremap <F6> :exe "ConqueTermSplit ipython " . expand("%")<CR>
let g:ConqueTerm_StartMessages = 0
let g:ConqueTerm_CloseOnEnd = 0
" проверка кода в соответствии с PEP8 через <leader>8
autocmd FileType python map <buffer> <leader>8 :PymodeLint<CR>

" автокомплит через <Ctrl+Space>
inoremap <C-space> <C-x><C-o>

" переключение между синтаксисами
nnoremap <leader>Th :set ft=htmljinja<CR>
nnoremap <leader>Tp :set ft=python<CR>
nnoremap <leader>Tj :set ft=javascript<CR>
nnoremap <leader>Tc :set ft=css<CR>
nnoremap <leader>Td :set ft=django<CR>

Отступы, табы, пробелы для разных языков
Это связано с тем, что в том же Python табы не рекомендуется к использованию. Поэтому будем заменять их на пробелы. Один таб = 4 пробелам. Плюс ко всему необходимо помнить, что всегда нужно сделать переход на следующую строку + отступ, чтобы было соответствие операторам for/if/while/и т.п.
Для других языков предостаточно будет указать размер Таба, и замены их на пробелы.
Добавьте этот фрагмент в конец своего конфига:
"=====================================================
" Languages support
"=====================================================
" --- Python ---
"autocmd FileType python set completeopt-=preview " раскомментируйте, в случае, если не надо, чтобы jedi-vim показывал документацию по методу/классу
autocmd FileType python setlocal expandtab shiftwidth=4 tabstop=8
\ formatoptions+=croq softtabstop=4 smartindent
\ cinwords=if,elif,else,for,while,try,except,finally,def,class,with
autocmd FileType pyrex setlocal expandtab shiftwidth=4 tabstop=8 softtabstop=4 smartindent cinwords=if,elif,else,for,while,try,except,finally,def,class,with

" --- JavaScript ---
let javascript_enable_domhtmlcss=1
autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
autocmd BufNewFile,BufRead *.json setlocal ft=javascript

" --- HTML ---
autocmd FileType html set omnifunc=htmlcomplete#CompleteTags

" --- template language support (SGML / XML too) ---
autocmd FileType html,xhtml,xml,htmldjango,htmljinja,eruby,mako setlocal expandtab shiftwidth=2 tabstop=2 softtabstop=2
autocmd bufnewfile,bufread *.rhtml setlocal ft=eruby
autocmd BufNewFile,BufRead *.mako setlocal ft=mako
autocmd BufNewFile,BufRead *.tmpl setlocal ft=htmljinja
autocmd BufNewFile,BufRead *.py_tmpl setlocal ft=python
let html_no_rendering=1
let g:closetag_default_xml=1
let g:sparkupNextMapping='<c-l>'
autocmd FileType html,htmldjango,htmljinja,eruby,mako let b:closetag_html_style=1
autocmd FileType html,xhtml,xml,htmldjango,htmljinja,eruby,mako source ~/.vim/scripts/closetag.vim

" --- CSS ---
autocmd FileType css set omnifunc=csscomplete#CompleteCSS
autocmd FileType css setlocal expandtab shiftwidth=4 tabstop=4 softtabstop=4

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

После настройки мы получим примерно такой vim:
image
В режиме работы с HTML/JavaScript/XML будет все выглядеть примерно так:
image

Если кому-либо нужен больший функционал (например поддержка автокомплита для любых иных языков), то могу посоветовать лишь поискать необходимые плагины на GitHub'е или на офицальном сайте сайте vim'a.

Полезные ссылки:
Раздел script сайта vim.org — тут
wikia по vim'у — тут
OpenVim: уроки по азам в vim — тут
Шрифты для vim-airline — тут

Мой конфиг для vim на GitHub
Валерий Савич @Relrin
карма
16,0
рейтинг 0,0
Back-end Python Developer
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (44)

  • +4
    Хорошо бы скриншоты какие-то добавить.
    • 0
      Обновлено.
      • 0
        Выглядит привлекательно! Спасибо.
  • +4
    Можно еще посоветовать YouCompleteMe
  • 0
    Я свой .vimrc построил на базе этого и этого. Добавил немного отсебятины и получил более чем удобный вариант.

    Кстати, раз уж вы затачиваете vimrc на работу с Python, то возможно имеет смысл использовать не airline, а powerline. Ну так, чисто для единообразия.
    • 0
      Раньше я тоже использовал powerline. Сейчас все же предпочитаю airline. По нескольким причинам: 1) он быстрее работает; 2) легкость в кастомизации; 3) достаточно просто решить проблему с отсутствующими шрифтами (например, заменив одни символы на другие, указав их в своем конфиге)
      • 0
        Шрифты это, конечно, отдельная боль. Но у автора Powerline есть отдельный проект powerline-fonts где можно взять уже пропатченные шрифты. Мой любимый — AnonymousPro.
        А по поводу скорость работы — не знаю. Мне кажется что при современных мощностях это становится менее актуальным.
      • 0
        На тему шрифтов (я, как вы уже прочитали наверное ниже, новичек в виме):
        у меня мак, с локалью все в порядке, но на выходе — image.
        Не подскажите — как исправить?
        • 0
          Попробуй поставить пропатченые шрифты вот эти
          • 0
            Поставил, бестолку… =(

            Скрытый текст
            image
            • 0
              Посмотри вот здесь FAQ по vim-airline. Вполне возможно там одно из решений твоих проблем.
              • 0
                Извините что в топике устроил эмуляцию ВиО… Но все равно не пашет, так что я забью :)
                • 0
                  Раньше был проблемный период, когда PowerLine — начал использовать другие коды символов для отображения значков. Сейчас вроде всё уже работает со свежескачаными шрифтами и свежеустановленным Airline.
  • +1
    А зачем отключать swap файлы? Просто по-умолчанию (с включенными) если вы в одной консоли откроете файл, запутаетесь, и в другой консоли попытаетесь его же открыть — VIM предупредит вас об этом.
    • 0
      У меня всегда открыта одна копия программы vim, поэтому проблем с этим моментом не возникает. Но за замечание — спасибо.
      • +4
        Думаю, у всех всегда одна открыта, и обычно с этим проблем и не должно возникать. Но если случайно по ошибке возникнет — swap файл не даст вас в обиду. Смотрите к примеру — Вы зашли в одном окне на сервер, в другом обновляете систему, в третьем редактируете, четвертое просто забыли закрыть — забыли где редактировали а где обновляли систему — вот, проблема появилась.

        Как и бекап. Отключать его тоже незачем. Вероятность что бекап понадобится крайне мала, может случается раз в пару лет. Но когда понадобится, первая мысль «как хорошо что был включен бекап». А вы его советуете отрубить. (Меня недавно бекап vim-а сильно выручил, хотя обычная синхронизация всех файлов тоже настроена, просто если бы не бекап вима 5 минут напряженной работы канули бы в Лету)

        Если сильно мешают тильда-файлы, можно все перенести в папку tmp
        set backupdir=~/tmp

        И в файле .gitignore_global добавить *.swp (если именно это послужило желанием их отключить)
        • 0
          Не у всех и не всегда. Если я пишу код в четыре проекта, то у меня открыто по 1-3 Vim на каждый проект на разных рабочих столах. Плюс если мне надо отредактировать что-то из общих настроек это будет ещё Vim. Я не вижу никакого смысла изменять состояние (в основном, регистры) Vim'ов проектов только чтобы открыть .vimrc, не запуская ещё Vim и ещё меньше смысла в том, чтобы закрывать проекты только затем, чтобы открыть их потом заново.

          Ещё я могу открыть отдельный Vim для проверки чего-то (к примеру, своего или чужого ответа на StackOverflow).
        • 0
          А у меня однажды грохнулся и исходник, и бэкап, и закоммичено не было. А своп остался, так вим из него автомагически восстановил текст.
  • –16
    Мне кажется, или за последнее время статей про разработку в Vim на Хабре увеличилось?.. Люди, что с вами?
    • +5
      Все больше людей пишет на скриптовых языках. Поэтому многим не нужны все функции IDE, а предпочитают собирать IDE самостоятельно, следуя Unix-way.
    • +6
      Тяга к хорошему по весне проснулась вероятно…
    • 0
      А разве это плохо?
  • 0
    Настройки для отдельных языков удобнее переносить в свои файлы в директории ftplugin. Из моего конфига: Python, JavaScript. Разработчики Rust как раз в таком виде распространяют поддержку для vim — несколько файлов, в том числе для ftplugin.
  • 0
    Мой конфиг, с инсталлятором плагинов:
    github.com/iwuvjhdva/vim

    К статье хочется добавить:
    — CtrlP для быстрого доступа к файлам — предпочитаю пользоваться им вместо файловых менеджеров типа NerdTree
    — YouCompleteMe — лучший плагин для автодополнения, поддерживает не только Python
    — Syntastic — без этого плагина Python-разработчику жить трудно — в реальном времени находит и подсвечивает ошибки синтаксиса и PEP-8, а если установите jshint — то еще и Javascript
    — notes — удобно для хранения заметок, особенно если поместить файлы заметок в систему контроля версий
    — EasyMotion — позволяет быстро прыгать по коду, используя визуальную индикацию
    — ropevim — что там говорить, главный инструмент рефакторинга — переименования глобальных имен в проекте, автоимпорт и т. д. — часть pymode, но я предпочитаю пользоваться им отдельно от последнего; требует написания конфига проекта для корректной работы с virtualenv — обращайтесь, могу дать пример
    — EnhancedCommentify — удобно для быстрого комментирования кода на любом языке

    Ну а также очень стоит учить базовые команды Vim — перемещения по коду, работу с буфферами и вкладками и т. д.
    Удачи!
    • 0
      Очень советую unite вместо CtrlP. Перешел сам, доволен.
  • 0
    Есть ещё серия скринкастов на vimcasts.org, из которой можно почерпнуть очень много интересного.
    Книга автора скринкастов Drew Neil — Practical Vim тоже очень понравилась.
  • 0
    Юзаю vim для python с 2007 года вообще без плагинов, только один плагин есть NerdCommenter или как там его — чтобы выделенный блок закомментировать :)
    • +1
      В нем проще, чем «коробочная версия»:
      1) В начале строки Ctrl+V, выделяем нужные строчки
      2) I (i в верхнем регистре)
      3) Вводим знак комментария
      4) ESC

      Имеем закомментированными выбранные строчки.
  • 0
    После действий из поста внешний вид совсем не такой, как на скриншотах…
    • 0
      Внешний вид подразумевает шрифты, цветовую схему? Если хотите прямо как 1 в 1, то цветовые схемы можете взять отсюда, а шрифты вот тут.
      • 0
        Имел ввиду вид вкладок, ну и цветовые схемы… да
        • 0
          Часть конфига с vim-airline описана в статье. В месте с общими настройками, там где
          " настройки Vim-Airline
          • 0
            Ok, буду разбираться дальше.
  • 0
    Спасибо за статью! Как раз думал над тем что nano для редактирования неудобен :)
    И сколько уже можно, vim — не IDE…
  • –8
    Где то было:
    «Vim умеет только две вещи — бибикать и все портить»
  • +1
    Про длину строк — мне больше понравилось подсвечивать не все хвосты, а просто колонку:

    set colorcolumn=85

    Про swap и backup файлы уже написали, я еще и undo файлами пользуюсь, причем если дерево версий плодится, редко, но пригождается плагин bitbucket.org/sjl/gundo.vim

  • 0
    Вопрос к тем, кто пользуется темными схемами у редакторов: не болят ли глаза после переключения из редактора в браузер (где чаще всего белый фон)?
    • 0
      так дело скорее не в яркости, а в контрастности… и необязательно совсем черные схемы брать, да и 256 цветов в консоли нормально работают. у меня сейчас seoul256, не жалуюсь :)
  • 0
    Спасибо, ну теперь точно его попробую, а то все на нано сижу, да очкую.
  • 0
    > pip install pyflakes pep8 pylint ipython

    Если вы проверяете код при помощи python-mode то установка pyflakes, pep8, pylint не требуется, эти пакеты входят в состав python-mode.

    > " отключить autofold по коду let g:pymode_folding = 0

    Python-mode не включает autofold, плагин всего лишь правильно настраивает правила для фолдинга python в VIM. Управляете же сверткой кода вы сами при помощи опций foldlevel и foldlevelstart

    " возможность запускать код let g:pymode_run = 0

    Не представляю чем это может мешать :) Кстати python-mode умеет не только запускать весь файл целиком, но и выделенные участки кода.
  • –7
    На что только люди не пойдут, лишь бы сэкономить 100 долларов на pycharm.
    • +1
      Я сам фанат PyCharm, но на удаленных серверах если придется править какой-либо код — нужен нормальный редактор. Ну и плюс ради изменения пары строчек в произвольном файле — вы же не будете создавай новый проект в PyCharm, верно?
      • –3
        И таскать на каждый сервер мега-конфиг vim и ставить кучу плагинов? Проще по sshfs маунтить удалённые директории и в нормальном редакторе править.
        • +3
          PyCharm — не редактор, vim — не IDE. Еще и sshfs ставить зачем-то…

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.