Como estoy muy comodo con Vim y he quedado muy contento adaptándolo para ser un bash ide, me dispuse a buscar algunos pluguins para realizar algo parecido. En esta busqueda me encontre con este ejemplo de python ide que he modificado a mi gusto. Podéis consultar la lista de plugins de Vim.
El primer pluguin es NERD Tree que se utiliza para navegar entre archivos y directorios de forma visual. Para ver como instalarlo podeis ver mi anterior artículo NERD Tree árbol de directorios para Vim. Os dejo también un par de variables que poner en vuestro .vimrc si os interesan las funciones. Vemos todas las funciones y mapeos escribiendo "?" en la ventana de NERD Tree
vim ~/.vimrc
let NERDTreeShowHidden=1 # Ver archivos ocultos
let NERDTreeQuitOnOpen=1 # Cerrar después de abrir archivo/s
Se puede navegar de forma visual entre las funciones, clases, variables ... del código con Taglist. Para instalarlo descargamos el plugin, lo copiamos en la carpeta correspondiente y lo descomprimimos.
wget -O taglist_45.zip http://vim.sourceforge.net/scripts/download_script.php?src_id=7701
sudo unzip taglist_45.zip
sudo rm taglist_45.zip
sudo cp /ruta/taglist_45/doc/* ~/.vim/doc
sudo cp /ruta/taglist_45/plugin/* ~/.vim/plugin
Podemos mapear la acción de abrir el plugin poniendo lo siguiente en ~/.vimrc
vim ~/.vimrc
map <tecla_queramos> :TlistToggle<CR>
Para que funcione instalamos el siguiente paquete
sudo aptitude install exuberant-ctags
El siguiente pluguin (mru) nos proporciona la lista de archivos reciente y nos permite abrirlos de manera sencilla.
cd ~/.vim/pluguin
wget -O mru.vim http://vim.sourceforge.net/scripts/download_script.php?src_id=11919
Lo haremos funcionar escribiendo lo siguiente y mapeándolo en .vimrc si se desea
:MRU
vim ~/.vimrc
map <tecla_queramos> :MRU <CR>
Tasklist nos permite listar y navegar de manera rápida entre los TODO que tengamos en nuestro código. Más concretamente lo que busca es FIXME, TODO y XXX.
cd ~/.vim/pluguin
wget -O tasklist.vim http://www.vim.org/scripts/download_script.php?src_id=10388
Para ejecutarlo nos sirve con presionar
\t
Si queremos modificar su comportamiento
vim ~/.vimrc
let g:tlWindowPosition = 0 #la ventana se muestra arriba
let g:tlTokenList = ['ESTA', 'OTRA', 'AQUELLA'] #cambiar palabras de busqueda
Otra aportación es minibuferexplorer que emula con nuestros bufers (o archivos abiertos) las pestañas. Cuando tengamos más de un bufer nos aparecera una línea arriba como si fueran pestañas con el nombre de los archivos, coloreado de manera diferente el activo, además de señalarlos los que estan sin guardar (para navegar entre ellos).
cd ~/.vim/pluguin
wget -O minibufexpl.vim http://vim.sourceforge.net/scripts/download_script.php?src_id=3640
Algunas variables interesantes
vim ~/.vimrc
let g:miniBufExplMapWindowNavArrows = 1 # moverse entre ventanas con CTRL+Flechas
let g:miniBufExplModSelTarget = 1 # poder usar otros exploradores como taglist ...
let g:miniBufExplMapCTabSwitchBufs = 1 # moverse entre buffers con CTRL+Tab
Con NERD Commenter sera muy fácil comentar o descomentar una o varias líneas.
wget -O nerdcommenter.zip http://vim.sourceforge.net/scripts/download_script.php?src_id=14455
sudo unzip nerdcommenter.zip
sudo rm nerdcommenter.zip
sudo cp /ruta/nerdcommenter/doc/* ~/.vim/doc
sudo cp /ruta/nerdcommenter/plugin/* ~/.vim/plugin
Simplemente en modo normal o en visual con una selección pulsamos
\cc # Comentar
\cu # Descomentar
\c+espacio # Comenta/Descomenta según el estado actual
Desde Vim 7, (si esta compilado con soporte para python) el siguiente pluguin ya esta instalado aunque, yo lo he instalado para actualizar la versión y así tengo mi carpeta ~/.vim completa para llevarla en un pendrive. Pythoncomplete auto completa nuestro código y nos muestra una explicación de nuestras posibilidades.
mkdir ~/.vim/autoload
cd ~/.vim/autoload
wget -O pythoncomplete.vim http://www.vim.org/scripts/download_script.php?src_id=10872
Lo mapeamos y cambiamos un par de cosas
vim ~/.vimrc
imap <tecla_queramos> <C-x><C-o> # mapeamos el autocompletado
set completeopt=menuone,preview # muestra menú con opciones de auto completado y su documentación
# Cierra ventana de documentación cuando escojamos nuestra opción
autocmd CursorMovedI * if pumvisible() == 0|pclose|endif
autocmd InsertLeave * if pumvisible() == 0|pclose|endif
Según pone en la página de python para "estandarizar" la escritura del código y para su mejor lectura se deben seguir unas recomendaciones de la guía PEP8. Para conseguir esto, y no estar pendiente de ello, lo podemos hacer automáticamente cuando editemos un archivo escrito en python:
vim ~/.vim/ftplugin/python.vim
setlocal tabstop=4 # tabula con 4 espacios
setlocal softtabstop=4 # numero columnas (= espacios) para tabulador
setlocal shiftwidth=4 # identa con 4 espacios
setlocal textwidth=80 # número de columnas antes del cambio de línea
setlocal smarttab # identa en vez del tabulador al principio de la línea
setlocal expandtab # usa espacios en vez de tabuladores
Para terminar generamos las ayudas, reiniciamos Vim y así podremos ver todas las opciones y mapeos. Dentro de este
:helptags ~/.vim/doc
No hay comentarios:
Publicar un comentario