Autor Tema: VIM Como IDE  (Leído 4540 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado tsk

  • PIC16
  • ***
  • Mensajes: 249
VIM Como IDE
« en: 30 de Agosto de 2016, 18:31:04 »
Tutorial VIM como IDE

1.- Instalar vim desde la terminal

Código: [Seleccionar]
sudo apt-get install vim vim-addon-manager vim-scripts python-pip python-jedi

Si quiere la interfaz gráfica le agregan a la línea anterior vim-gtk

2.- Creamos nuestro primer .vimrc en nuestro directorio $HOME y agregamos lo siguiente:

Código: [Seleccionar]
syntax on
set langmenu=es
set number
nnoremap <F2>:set nonnumber!<CR>:set flodcolumn=0<CR>

set expandtab
set tabstop=8
set softtabstop=4
set shiftwidth=4
set autoindent

set incsearch
set hlsearch
set smartcase
set ignorecase
set wildmenu
set wildmode=list:longest,full

filetype plugin on
set ofu=syntaxcomplete#Complete

filetype plugin indent o

Guardamos y probamos con

Código: [Seleccionar]
vim test.py

Código: [Seleccionar]
vim test.c


Nota: para entra en modo INSERTAR presionamos la tecla i, para salir de ella presionamos ESC


3.- Si queremos que vim se comporte como lo hacen otros editores de texto, donde están presentes los comandos Ctrl+C y Ctrl+V para copiar y pegar, agregamos la siguiente línea a nuestro archivo .vimrc

Código: [Seleccionar]
source $VIMRUNTIME/mswin.vim
behave mswin

4.- Para instalar los siguientes plugins va a ser más fácil usando un manejador de de plugins llamado Vundle (si no tenemos git instalado primero lo instalamos:

Código: [Seleccionar]
sudo apt-get install git
mkdir .vim
cd .vim
mkdir bundle
cd bundle
git clone https://github.com/VundleVim/Vundle.vim.git

Y agregamos la siguiente línea al .vimrc

Código: [Seleccionar]
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

Plugin 'VundleVim/Vundle.vim'

call vundle#end()

Con esto contaremos con nuevos comandos en vim como lo son:
Código: [Seleccionar]
VundleSearch  //Para buscar plugins
VundleInstall // Para installar plugins
VundleUpdate //actualizar los plugins usados
VundleClean  //remueve los plugins que no son usados
...

Por ejemplo voy a buscar e installar Trinity




Incluso nos informa como debemos añadir el plugin a nuestro .vimrc. Lo añadimos


Después lo vamos a eliminar porque este no es el que realmente se usa.

4.- Añadiendo DoxygenToolkit y delimitMate




Ahora va a completar las aperturas y cierres de ‘ “ ( { “, etc.


4.1.- Instalando YouCompleteMe

Primero instalamos lo necesario

Código: [Seleccionar]
sudo apt-get install build-essential cmake python-dev python-jedi

Añadimos Plugin ‘Valloric/YouCompleteMe’ a .vimrc


Guardamos (ESC :w) y le escribimos :PluginInstall

El se va a encargar de descargar todo lo necesario. Cuando nos diga Done! Vamos a hacer lo siguiente

Código: [Seleccionar]
cd ~/.vim/bundle/YouCompleteMe/
python install.py --clang-completer 

Mientras acaba de la instalación podemos instalar otros plugins.

5.- Trinity

Instalamos ctags

Código: [Seleccionar]
sudo apt-get install ctags
Vamos al directorio .vim y creamos una carpeta llamada plugin

Código: [Seleccionar]
cd .vim
mkdir plugin
cd plugin
git clone https://github.com/wesleyche/Trinity.git

Descargamos taglist de http://vim.sourceforge.net/scripts/script.php?script_id=273 y lo descomprimimos en su propia carpeta dentro de la carpeta plugins

Código: [Seleccionar]
mkdir TagList
cd TagList
unzip <ruta de la descarga>/taglist_46.zip

Actualizamos python-jedi con pip

Código: [Seleccionar]
sudo pip install –upgrade jedi

4.2.- Cuando acaba de compilar ya tenemos el IDE Listo para trabajar.

6.- YouCompleteMe+python

YouCompleteMe no require ninguna configuración extra para auto completar python
7.- YouCompleteMe y C/C++

El requisito es añadir un archivo llamado .ycm_extra_conf.py dentro del directorio del proyecto. En este se configuran los flags de compilación usados por nuestro proyecto.

https://github.com/Valloric/ycmd/blob/master/cpp/ycm/.ycm_extra_conf.py

Este es un proyecto generado con stm32cubemx y un plugin que hice para crear de forma automática los makefiles para compilar el proyecto

Una de las cosas que le hace falta al plugin es que elimine todos esos archivos de cabecera que están pensados para otros MCU pero CubeMX los copia. La función TlistAddFilesRecursive se tarda mucho un procesar todos esos archivos que en realidad no son necesarios. Además falta añadirle la opción que verifique que versión de python se va a usar (2 o 3)

Adjunto el plugin que se descomprime dentro del directorio ~/.vim/plugin y tiene como dependencia un paquete de python que se llama jinja2 (para las plantillas)

Código: [Seleccionar]
sudo pip install jinja2
* stm32cube.vim.zip
(5.86 kB - descargado 130 veces)

Desconectado Miquel_S

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1251
Re:VIM Como IDE
« Respuesta #1 en: 31 de Agosto de 2016, 04:36:33 »
Muchas gracias tsk voy a poner en practica lo expuesto haber si consigo cogerle el truco y puedo usarlo para python.

Saludos!
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

Desconectado AcoranTf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1083
Re:VIM Como IDE
« Respuesta #2 en: 31 de Agosto de 2016, 08:35:20 »
Muy interesante. Buena aportacion.

Saludos.

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re:VIM Como IDE
« Respuesta #3 en: 02 de Septiembre de 2016, 15:27:25 »
Muy bueno, algo que sería muy interesante para los genios del Linux es que enseñen a poner en funcionamiento una PC normal con una distro de linux. Lo mas detallado posible, para que los que estamos siempre amagando con intental el paso a linux tengamos las cosas más faciles. Aplicaciones que no deben faltar y las que no hay que poner, X o no X, etc.
Estoy por armarme una PC de trabajo en casa  :( y seria buena oportunidad para intentar poner linux.
En mi caso Windows estará siempre debido al Altium, pero la parte de programacion siempre me gusto intentarlo en linux.

Saludos!
-
Leonardo Garberoglio

Desconectado AcoranTf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1083
Re:VIM Como IDE
« Respuesta #4 en: 02 de Septiembre de 2016, 17:06:39 »
Muy bueno, algo que sería muy interesante para los genios del Linux es que enseñen a poner en funcionamiento una PC normal con una distro de linux. Lo mas detallado posible, para que los que estamos siempre amagando con intental el paso a linux tengamos las cosas más faciles. Aplicaciones que no deben faltar y las que no hay que poner, X o no X, etc.
Estoy por armarme una PC de trabajo en casa  :( y seria buena oportunidad para intentar poner linux.
En mi caso Windows estará siempre debido al Altium, pero la parte de programacion siempre me gusto intentarlo en linux.

Saludos!

Hola elgarbe, lo cierto es que es mas facil de lo que crees. Echa un vistazo en google y veras que hay info por un tubo y si aun asi necesitas mas ayuda, pregunta, que tanto yo como seguramente varios mas, estaremos encantados de ayudarte.
Como orientacion te dire que practicamente todas las distribuciones traen ya de origen la mayoria de aplicaciones necesarias y las que no vienen son muy faciles de instalar. Ademas todas las distribuciones Linux, o casi todas, estan montadas en una imagen ISO ejecutable, lo cual significa que puedes probarlo totalmente operativo, sin necesidad de cambiar nada en tu PC, sin eliminar windows y sin instalar Linux y una vez probadas varias distros y elegida la que mas te guste, entonces si la instalas. Y otro detalle, cuando decidas instalarlo no necesitas eliminar windows, puedes instalarlo en modo "multiarranque" y en el momento de arrancar el PC eliges cual sistema vas a utilizar en cada ocasion. Si optas por esta ultima opcion, es recomendable instalar primero windows y en ultimo lugar Linux, ya que de ese modo queda operativo el menu multiarranque. Si lo hicieses al contrario, windows eliminaria el menu multiarranque.

Saludos.

Yo utilizo Linux Mint Mate 18 32 bits

Desconectado Miquel_S

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1251
Re:VIM Como IDE
« Respuesta #5 en: 02 de Septiembre de 2016, 19:10:24 »
Yo uso Ubuntu 16.04 64 bits y la verdad que me costo un poquito adaptarme a linux, pero ahora que llevo unos dos años con el no lo cambio ni loco, y cualquier duda que tengas no dudes en preguntar, y ya veras que cuando lleves un tiempo usándolo solo pensaras en windows a la hora de usar Altium.

Saludos!
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

Desconectado tsk

  • PIC16
  • ***
  • Mensajes: 249
Re:VIM Como IDE
« Respuesta #6 en: 02 de Septiembre de 2016, 20:37:47 »
Muy bueno, algo que sería muy interesante para los genios del Linux es que enseñen a poner en funcionamiento una PC normal con una distro de linux. Lo mas detallado posible, para que los que estamos siempre amagando con intental el paso a linux tengamos las cosas más faciles. Aplicaciones que no deben faltar y las que no hay que poner, X o no X, etc.
Estoy por armarme una PC de trabajo en casa  :( y seria buena oportunidad para intentar poner linux.
En mi caso Windows estará siempre debido al Altium, pero la parte de programacion siempre me gusto intentarlo en linux.

Saludos!
Creo más que emplear la palabra "genios de Linux" aquí se emplea mejor la teoría de las 10000 horas de práctica.

Hace ya tiempo que comencé a trabajar con Linux y por aquellos tiempos fue un verdadero reto.

Fue con una distribución, que ya no existe, llamada Conetectiva Linux, de origen brasileño, en su versión 5.0 que venía en una revista. Junto con un compañero lo instalamos en las PCs. Y aquí cito dos de los problemas que se presentaron:

1.- Interfaz gráfica: La revista sólo mencionaba que incluía un CD con Conectiva y mostraba un interfaz gráfica muy llamativa. Pero cuando reinicié el equipo, todo en negro, no tenía ni idea que hacer. Terminé encontrando que tenia que iniciar el entorno gráfico con el comando startx. Al menos aquí era sólo un startx, porque en Debian corrías el riesgo de quemar el monitor si no conocías los parámetros del mismo:

Código: [Seleccionar]
XF86Config, xf86cfg
xvidtune

Y a orar por tu alma.

Nota: Creo que hoy en día para revivir un poco esos momentos de tensión inventaron la distribución Suicide Linux http://www.muylinux.com/2010/03/08/suicide-linux-una-distro-muy-muy-delicada, un sl para listar los archivos de un directorio y te despides del contenido de tu disco duro.

2.- Desinstalación: Aquí si nos agarro Judas. Windows no reconocía las particiones de Linux, en especial la swap para poder formatearlas. Mi amigo terminó pagando para que le formatearan el equipo. Yo perseveré(1), y estuve un buen rato con Conectiva hasta que le encontré el modo de volver a instalar Windows. Mientras lo tuve instalado encontré la sección de juegos y estuve haciendo trabajos en StarOffice. StarOffice fue los inicios de lo que hoy conocemos como OpenOffice/LibreOffice

(1) Quedaría Mejor: "No me quedó de otra"

Después llego Madrake 8, llegó el internet por la línea telefónica y ..... ¿Porqué tengo un #@#~@# WinModem? Recuerdo esos WinModem PCTEL, al menos, con algo de trabajo, pude compilar unos drivers que encontré en Internet para hacerlo funcionar. Con estos nunca era seguro que lo pudieras hacer, porque había varias versiones del modem, y el destino era el factor preponderante a la hora de saber si el que tu placa traía era uno de los afortunados en ser soportado.

Cuando conseguí un disco duro más grande y fue como una época de descubrimientos. Llegué a tener instalados en el mismo equipo (tenía espacio de sobra: 40GB):

1.- Windows XP
2.- Windows 98
3.- Windows 98
4.- Madrake
5.- RedHAT (mucho antes de que Fedora hiciera su aparición)
6.- Debian (Probablemente fue la Potato 2.2 por que tomé un curso con esa versión de Linux)

Era como un "¿Mira todo lo que se puede hacer?" y sólo por el placer de poder hacerlo, buscaba alternativas para todo (absolutamente todo), que Delhi, para que si estaba Lazarus (creo que todavía ni alcanzaba la versión 0.8 o .9, por ahí en un disco duro debo de tener los RPM y DEBs). Si me quería poner el parche y descargar música con protocolo de Ares, tenía el giFT, la mula creo que si estaba en forma nativa, pero en estos momentos mi memoria falla.

Esquemáticos, Circuitos, Simulación: geEDA, oregano, etc.
PICs: gpsim.
Matlab, Mathematica: Octave, Scilab, maxima, etc.
AutoCAD: qcad.

Y para algunos programas que no encontraba wine.

Después, con un equipo extra, diversifiqué a SuSE, Slackware (el de la pipa) e incluso FreeBSD, la primera vez que instalé este último las di por completo y no alcancé a tomar la matricula del que me atropelló.

Incluso hace tiempo en un pseudo blog (quedó abandonado) que hice puse unas capturas de pantalla

http://dtupelektro.blogspot.mx/2009/08/el-recuerdo-2002-2003-parte-i.html
http://dtupelektro.blogspot.mx/2009/08/imagenes-del-recuerdo-parte-i-2002-2003.html
http://dtupelektro.blogspot.mx/2009/08/imagenes-del-recuerdo-parte-ii-2004.html


Desconectado AcoranTf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1083
Re:VIM Como IDE
« Respuesta #7 en: 03 de Septiembre de 2016, 06:36:41 »
tsk todo eso como tu mismo indicas, fue hace muchos años, cuando Linux "empezaba" a ser conocido a nivel popular y ni siquiera habia info en la incipiente internet. Por suerte las cosas han dado un vuelco y hoy dia es mucho mas facil probar, instalar y utilizar cualquiera de las muchas distros de Linux. Aun asi es cierto que a raiz de los cambios en windows, al pasar de XP a Vista y sucesivos, algunos desarrolladores de Linux se obstinaron en que este se pareciese a aquel y cambiando completamente los entornos graficos de Linux hasta el momento, lo unico que consiguieron fue complicar muy mucho el acceso a Linux de los novatos y la perdida de confianza de los expertos. Yo en ese tiempo utilizaba Ubuntu con KDE o GNOME. Me pase a Linux Mint con MATE, por ser el mas intuitivo si venias de los anteriores y ahi sigo. No me gusta para nada las versiones 2 y 3 de GNOME y muchisimo menos UNITY.
En fin solo queria hacer estas puntualizaciones, porque visto tu comentario, la verdad es que se lo pones bastante negro a los posibles aspirantes a utilizar Linux y creo que no es el caso.

Saludos.

Desconectado tsk

  • PIC16
  • ***
  • Mensajes: 249
Re:VIM Como IDE
« Respuesta #8 en: 03 de Septiembre de 2016, 16:37:18 »
tsk todo eso como tu mismo indicas, fue hace muchos años, cuando Linux "empezaba" a ser conocido a nivel popular y ni siquiera habia info en la incipiente internet. Por suerte las cosas han dado un vuelco y hoy dia es mucho mas facil probar, instalar y utilizar cualquiera de las muchas distros de Linux. Aun asi es cierto que a raiz de los cambios en windows, al pasar de XP a Vista y sucesivos, algunos desarrolladores de Linux se obstinaron en que este se pareciese a aquel y cambiando completamente los entornos graficos de Linux hasta el momento, lo unico que consiguieron fue complicar muy mucho el acceso a Linux de los novatos y la perdida de confianza de los expertos. Yo en ese tiempo utilizaba Ubuntu con KDE o GNOME. Me pase a Linux Mint con MATE, por ser el mas intuitivo si venias de los anteriores y ahi sigo. No me gusta para nada las versiones 2 y 3 de GNOME y muchisimo menos UNITY.
En fin solo queria hacer estas puntualizaciones, porque visto tu comentario, la verdad es que se lo pones bastante negro a los posibles aspirantes a utilizar Linux y creo que no es el caso.

Saludos.

Fue un giro de 360 grados de esa época a lo que estamos viendo ahora

Hace tiempo ni pensar que la webcam funcionara, tenías que ser muy selectivo, pero de repente un mero usuario de Linux, como tu o yo, compró unas webcam para sus hijas que no funcionaban en Linux, investigó por ahí y por allá, incluso pidió consejo. De la noche a la mañana creo un controlador con el cual podrías hacer funcionar mas de 200 modelos de webcams. (UVC drivers)

Resultado: Ahora es raro ver que la webcam de tu portatil no trabaje con Linux.

Por otro lado, con respecto al entorno gráfico, no es obstinación por parte de los desarrolladores. Hay infinidad de estudios en los que se trata definir la forma en que un entorno gráfico va a interactuar mejor con el usuario. Pero siempre se tiende a caer en el terreno de la subjetividad.

Este punto, probablemente se el más delicado, porque, no nos hagamos, si un usuario va de Windwos a MAC ya va con la mentalidad de que las cosas se va a hacer de forma distinta, pero no ocurre lo mismo cuando el usuario va de Windows a Linux, siempre espera a que funcione de la misma manera. Al menos eso era lo que se percibía en los foros hace años, y en mi opinión es la fuente de las frustraciones de los nuevos usuarios.

Compara el entorno de Windows 8 o Windows 10 a lo que hay en Linux. En Linux tienes de donde elegir de acuerdo a tus preferencias. Muchas quejas de conocidos míos sobre estas últimas versiones de Windows es el menú. En mi opinión personal el entorno esta pensado para ser usando más en entornos táctiles que que entornos teclado/ratón. Cómo accedes de forma intuitiva a un programa que acabas de instalar. Le das click en la Ventanita y te lleva a una pantalla en la cual no aparece tu programa. Tienes que irte a la esquina inferior izquierda hacer click en la flecha para toparte con una lista enorme de programas instalados que no caben en la pantalla.

Y segundo, nunca los desarrolladores se empecinaron en hacer que Linux se pareciera a Windows,y menos a MAC, sino que todo ha sido en sentido contrario. Tanto Windows como MAC han tomado "prestado" muchas ideas que han sido primero implementadas en los diferentes escritorios de Linux, llámese KDE, GNOME, etc.

Por mucho tiempo en Madrake use WindowsMaker y KDE, cuando use ubuntu al inicio me decanté por Kubuntu, luego ya no me importó y use ubuntu, pero últimamente me he decantado por usar AWESOME https://awesome.naquadah.org/

Saludos