Todas las entradas de: B. Reaper

Gestionar archivos con NerdTree

Es bastante inútil que para crear o eliminar una carpeta o un archivo tener que salir del editor. Bien podríamos gestionarlos desde el modo comando de Vim, pero tener que escribir rutas largas (incluso usando auto completado) no llega a ser muy practico. Por suerte existe NerdTree.

Posicionamos el cursor en el nodo (carpeta) que deseamos modificar. Debemos presionar la tecla m. Esta sera la encargada de abrir un pequeño menú en la parte inferior del editor donde indicaremos los cambios que haremos al nodo.

Este menú nos muestra las opciones que podremos seleccionar utilizando las teclas j/k o usando la tecla resaltada en cada opción. 

En caso de que vayamos a creer un archivo o carpeta nos edita que indiquemos el nombre, el cual si termina en / sera tomado como carpeta y si no como un archivo.

Ejemplo

Para este ejemplo usaremos la siguiente estructura de archivos. 

$ tree indielibre/
indielibre/
├── Makefile
└── src
    └── main.c

Si colocamos el cursor en la carpeta src, presionamos m seguido de a, y añadimos el texto core/ crearemos una carpeta core en src. Por otro lado si indicamos en el nuevo nodo core el texto core.c, terminaremos con la siguiente estructura

$ tree indielibre/
indielibre/
├── Makefile
└── src
    ├── core
    │   └── core.c
    └── main.c

NerdTree – Arbol de directorios en Vim

Cuando estamos comenzando a pasarnos al editor Vim se suele dar el problema de que lo vemos muy vacío en cuanto este tipo de utilidades, las cuales por lo extensivo de Vim debemos añadir. Aquí mostrare lo como agregar un árbol de directorios completamente funcional.

Instalación

Elegimos a NerdTree para ser encargado del árbol por su estandarización. La mayoría de quienes  usan Vim tienen a NerdTree en su configuraron.

La manera de instalarlo seria simplemente añadiendo Plug 'scrooloose/nerdtree‘ a nuestro archivo de configuración (cambiando Plug según el gestor de plugins que usemos).

Uso básico

Para abrir el árbol debemos usar el comando :NERDTreeToggle y repetiremos ese mismo comando para cerrarlo. Esto puede agilizares añadiendo unos atajos a nuestro editor.

nmap <F2> :NERDTreeToggle<CR> 
imap <F2> <Esc>:NERDTreeToggle<CR>

Nos podemos mover por los directorios usando las teclas j-k como es común o las flechas arriba-abajo. Para abrir un nodo en el árbol (una carpeta) podremos dar enter, doble clic o usar la tecla o.

Configuraciones

Además de las ya recomendadas asignaciones de teclas para abrir el árbol de manera mas eficiente podemos cambien hacer algunas mas. Aquí un ejemplo final:

" NERDtree

" Asignamos las teclas la tecla F2 para abrirlo tanto en modo normal como en modo insertar
map <F2> :NERDTreeToggle<CR>
imap <F2> <Esc>:NERDTreeToggle<CR>

" Indicamos que se cierre el arbol al abrir un archivo
let NERDTreeQuitOnOpen=1

" Le damos 30 caracteres de anchura
let NERDTreeWinSize=30

" Cambiamos los iconos de los nodos
let g:NERDTreeDirArrowExpandable = '+'
let g:NERDTreeDirArrowCollapsible = '-'

Plug, un gestor de plugins minimista para Vim

Grandes cosas hacen ser a Vim lo que es, y una de ellas son sus plugins. Ya sean solo esquemas de color o potentes herramientas para mejorar el trabajo con el ya hipereficiente Vim. Podemos bien instalar plugins de manera manual pero siempre sera mejor usar un gestor de plugins.

Plugin vim, https://github.com/yuttie/hydrangea-vim

Instalación

Unix:

curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

Windows (PowerShell):

md ~\vimfiles\autoload
$uri = 'https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
(New-Object Net.WebClient).DownloadFile(
  $uri,
  $ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath(
    "~\vimfiles\autoload\plug.vim"
  )
)

Instalación (NeoVim)

Unix:

curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

Windows (PowerShell):

md ~\AppData\Local\nvim\autoload
$uri = 'https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
(New-Object Net.WebClient).DownloadFile(
  $uri,
  $ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath(
    "~\AppData\Local\nvim\autoload\plug.vim"
  )
)

Añadir plugins

Es tan simple como en nuestro archivo .vimrc o init.vim (en caso de NeoVim) añadamos el repositorio GitHub del plugin siguiendo este formato. Si el repositorio es https://github.com/usuario/plugin-vim, lo añadiremos al archivo de configuración de la siguiente manera Plug ‘usuario/plugin-vim’

Por ejemplo:

" Vim productivity
Plug 'ctrlpvim/ctrlp.vim'
Plug 'Yggdroot/indentLine'

" Language productivity
Plug 'SirVer/ultisnips'
Plug 'honza/vim-snippets'
Plug 'jiangmiao/auto-pairs'

" Colorscheme
Plug 'beigebrucewayne/subtle_solo'

También podríamos separarlos del archivo de configuración, en este caso el archivo plugins.vim los contendría (ejemplo de NeoVim)

" plugins
call plug#begin("~/.config/nvim/plugged/")
     source $HOME/.config/nvim/plugins.vim
call plug#end()

Instalar los plugins añadidos

Para instalarlos bastara con abrir Vim y teclear el comando :PlugInstall. Hecho esto reiniciamos el editor y  listo.

¿Donde encontrar plugins?

Por ultimo las mejores maneras de buscar plugins es mediante la pagina  vimawesome y   vimcolors para los esquemas de color.

Interprete de comandos fish

Resultado de imagen para persona tecleando

A muchos usuarios de sistemas tipo Unix nos parece que la interfaz de linea de comandos es una maravilla a la hora de manejar un sistema. Todos hemos trabajado con bash por ser el más estandarizado pero no es el único, como es el cazo de fish.

Sobre fish

Fish es una shell «exótica» puesto que tiene muchas diferencias contra las más comunes. Busca ser rápida, amigable, personalizable y con muchas facilidades.

Uso básico

Si queremos probar fish debemos teclear fish en la terminal. Por otro lado si nos ha gustado y queremos establecerla como la shell por defecto usamos chsh -s /usr/bin/fish $USER e introducimos nuestra contraseña.

Lo que notamos al inicio de usar fish es el resaltado de colores que da a los comandos para separar visualmente las partes de este y facilitar su lectura y/o escritura.

La predicción de comandos es algo que destaca en fish, mostrándolos en gris y siguiendo prediciendo según vayamos escribiendo el comando. Para esto toma en cuanta el directorio en que estemos, los comandos recientes, los más frecuentes, etc.

Para autocompletar el comando debemos presionar la tela de flecha que apunta a la derecha.

Tambien podemos usar el autocompletado estilo bash que es de poco a poco usando la tecla tab.

Si son varias las posibilidades nos enlistara las posibles secuencias siguientes y podremos cambiar entre ellas usando la tecla tab y seleccionando una con enter.

En este modo podremos comenzar a teclear para hacer una búsqueda entre las posibilidades, se selecciona usando enter.

fish nos proporciona facilidades para escribir comandos de una manera simple. Por ejemplo en lugar de hacer cd Descargas/, podremos usar simplemente Descargas/

Personalizacion

Tendremos una interfaz web para personalizar el prompt a la cual se accede ejecutando fish_config. En la seccion color podemos indicar algun esquema de colores de nuestra preferencia.

En la sección prompt tendremos algunos para cambiar el que trae por defecto.

Los prompts nos añaden muchas funciones más, no solo mostrar datos de la maquina y el directorio. Se integra con git para mostrar cambios si tenemos un repositorio, la rama, versión…

Sin duda fish es una herramienta excelente para el uso de la linea de comandos.