Utiliser Vim comme IDE


Après 15 ans à utiliser des clients lourds pour développer j’ai eu envie de revenir à l’essentiel, sans perdre le confort d’un IDE. Sans être un expert de vim et de emacs je connais les commandes de base suffisamment pour être à l’aise mais pas assez pour être fluide pour une utilisation en IDE.

Pour la remise à niveau j’ai utilisé le livre Vim pour les humains et des articles sur des sujets précis comme la gestion de l’édition multiple (Vim splitter sa fenêtre en de multiples documents) ou le pliage du code. Les vidéos sur vimcasts sont aussi pratiques poru voir les commandes en actions.

Ensuite, il me fallait des plugins permettant d’avoir les informations directement présentes dans l’éditeur. J’ai choisi Powerline, apt-vim et airline pour leur compatibilité avec la plupart des terminaux et des shells. Pour faire simple je suis reparti d’une configuration vide.

Installation pour bash :

# powerline
sudo apt install powerline fonts-powerline
cat <<EOT >>~/.bashrc
if [ -f /usr/share/powerline/bindings/bash/powerline.sh ]; then
  POWERLINE_BASH_CONTINUATION=1
  POWERLINE_BASH_SELECT=1
  export POWERLINE_BASH_CONTINUATION POWERLINE_BASH_SELECT
  . /usr/share/powerline/bindings/bash/powerline.sh
fi
EOT

source ~/.bashrc

# apt-vim
curl -sL https://raw.githubusercontent.com/egalpin/apt-vim/master/install.sh | sh

apt-vim init

# airline and integrated plugins
apt-vim install -y https://github.com/tpope/vim-fugitive.git
apt-vim install -y https://github.com/vim-airline/vim-airline.git
apt-vim install -y https://github.com/vim-airline/vim-airline-themes.git
apt-vim install -y https://github.com/majutsushi/tagbar.git
apt-vim install -y https://github.com/chrisbra/csv.vim.git
apt-vim install -y https://github.com/python-mode/python-mode.git
apt-vim install -y https://github.com/vim-syntastic/syntastic.git
apt-vim install -y https://github.com/airblade/vim-gitgutter.git
apt-vim install -y https://github.com/mhinz/vim-signify.git
apt-vim install -y https://github.com/vim-ctrlspace/vim-ctrlspace.git
apt-vim install -y https://github.com/edkolev/promptline.vim.git
apt-vim install -y https://github.com/jmcantrell/vim-virtualenv.git
apt-vim install -y https://github.com/scrooloose/nerdtree.git

Évidemment, une fois installé cela demande encore un peu de travail et de configuration. Tout d’abord il est conseillé de fermer tous les émulateurs de terminal, voire même de se déconnecter, pour activer les fonts de powerline.

Voici un configuration minimale dans ~/.vimrc :

execute pathogen#infect()
call pathogen#helptags()

set nocompatible

set title
set number
set ruler
set wrap
set scrolloff=3

" Recherche
set ignorecase
set smartcase
set incsearch
set hlsearch

" Pas de son
set visualbell
set noerrorbells

set backspace=indent,eol,start
set hidden

syntax enable
filetype on
filetype plugin on
filetype indent on

" Activer la partie fancy d'airline
let g:airline#extensions#tabline#enabled = 1
let g:airline_powerline_fonts = 1
let g:airline_theme='base16_eighties'
set laststatus=2
" Activer les couleurs
set t_Co=256

Cette fois l’interface s’affiche avec toutes les couleurs et la bonne police. Pour tester un thème il suffit de suivre la page officielle. Il reste à travailler sur des raccourcis plus pratiques.

vim-powerline-airline

Mise-à-jour : Pour ceux qui ont des problèmes pour activer les couleurs il faut éditer le fichier ~/.profile ou le fichier .bashrc et rajouter ces quelques lignes :

if [ -e /usr/share/terminfo/k/konsole-256color ]; then
  export TERM='konsole-256color'
else
  if [ -e /usr/share/terminfo/x/xterm+256color ]; then
    export TERM='xterm+256color'
  else
    if [ -e /usr/share/terminfo/x/xterm-256color ]; then
      export TERM='xterm-256color'
    else
      export TERM='xterm-color'
    fi
  fi
fi

Publicités

Using WingDBG as egg for Zope buildout – updated


For Wing IDE user I start a mercurial branch for the WingDBG product that allow you to make live debugging in the editor in Zope/Plone. It’s just an eggification of the official WingDBG product and stay under the MIT licence.

You can easily add it in your buildout:

[buildout]

eggs += WingDBG
#auto-checkout += WingDBG
find-links += http://plone.org/products/simple

#[sources]
#WingDBG = hg http://bitbucket.org/encolpe/wingdbg

[instance]
zcml += WingDBG
enable-product-installation = on

It was tested successfully under Plone 3.3 and Plone 4 with Wing 3.2.5 and 3.2.6.


Now WingDBG is available as egg for Wing 4.0.1.

Integration of buildout in your favorite IDE


As Open Source developer I’m concived that we are developping on the best tools ever created (early friday) and I’m using a proprietary IDE… but writen in Python: Wing IDE.
 
With this IDE you need only two operations to make it understand a new buildout:

  • add your bin/instance (bin/zopeinstance or bin/zeoclient) in your project via the project Panel
  • once it is done select it and right click on it to activate it as ‘main debug file’

 
Then wait that wing update the python path for you and enable the autocompletion for your whole project. That’s magical, I love it!

Thanks to Lennart to ask the good question on wing-users mailing list and to Martijn Pieters to give us this excellent recipe.

It would be cool is there’s such recipe fir IDE in the new documentation section on plone.org.