GNU/Linux >> Tutoriales Linux >  >> Linux

Los cinco complementos principales de Vim para administradores de sistemas

El año pasado escribí el artículo 5 útiles complementos de Vim para desarrolladores para Opensource.com. Este artículo sigue una idea similar, pero se centra en los complementos que hacen que los administradores de sistemas sean más productivos, independientemente de qué secuencias de comandos, lenguaje de programación o marcos utilicen. Hay otra clase de complementos de Vim centrados en la finalización del código y la verificación de la sintaxis que no se tratan intencionalmente en este artículo. Serán el tema de otra publicación.

Además, este artículo no proporciona instrucciones de instalación para estos complementos. Puede usar el administrador de paquetes nativo de Vim 8 o su administrador de complementos favorito. Si desea un administrador de complementos sencillo para Vim, eche un vistazo a Pathogen. Proporciona una forma estándar de instalar complementos mediante la clonación de sus repositorios directamente en .vim/bundle directorio con generación automática de ayuda.

1. Aerolínea Vim

Vim Airline es un complemento que reemplaza la línea de estado estándar de Vim con una elegante y útil barra de estado. Vim Airline es conveniente y presenta información útil sobre el archivo en el que está trabajando, incluido el nombre del archivo y el estado de guardado, el modo Vim, el tipo de archivo, la codificación, la posición, el recuento de palabras y más.

Vim Airline es rápido y ligero. Muestra información relevante sin comprometer el rendimiento de Vim. El uso de Vim Airline mejora su productividad al proporcionar información que requeriría tiempo adicional para obtener de un vistazo.

Después de la instalación, Vim Airline habilita una configuración básica que no requiere ningún cambio en los archivos de configuración de Vim. Aquí está la barra de estado estándar con Aerolínea:

Se integra con otros complementos de forma nativa para presentar información adicional. Por ejemplo, si tiene Vim Gitgutter (consulte el n.° 4 Vim Gitgutter a continuación) o Vim Fugitive (consulte el n.° 5 Vim Fugitive a continuación), Airline también muestra información relacionada con Git, como el nombre de la sucursal y el estado de la diferencia.

Para usar íconos especiales, como el ícono de la rama de Git, instale el paquete de fuentes Powerline y actívelo con Vim Airline. Luego agregue esta línea a su .vimrc archivo de configuración:

let g:airline_powerline_fonts=1

Además de la barra de estado, Vim Airline muestra opcionalmente una línea de pestañas en la parte superior que contiene el nombre de todas las pestañas o búferes abiertos:

Para habilitar esta característica, agregue esta línea a .vimrc :

let g:airline#extensions#tabline#enabled = 1

Finalmente, Vim Airline proporciona temas para dar flexibilidad adicional a la funcionalidad y apariencia de la barra de estado. Para obtener más información, consulta el repositorio vim-airline-theme.

Para obtener más información sobre este complemento y opciones adicionales que pueden ser útiles para su caso de uso, consulte el repositorio oficial.

2. Árbol NERD

NERDTree es un explorador de sistemas de archivos para Vim que le permite explorar la estructura de directorios, ayudándole a encontrar y administrar archivos y directorios directamente dentro de la interfaz de Vim. NERDTree es un reemplazo para el explorador de archivos nativo de Vim netrw. NERDTree incluye funciones adicionales y valores predeterminados sensibles, lo que facilita el inicio sin agregar ninguna configuración a su .vimrc archivo.

Después de la instalación, puede usar NERDTree escribiendo el comando :NERDTree . Se abre como una ventana lateral con el directorio actual seleccionado. Para cerrarlo, puede escribir el comando :NERDTreeClose . También puede usar :NERDTreeToggle para cambiar entre ventanas abiertas y cerradas. Incluso puede asignar este comando a otra tecla para que sea más fácil abrir y cerrar NERDTree. Por ejemplo, para usar la tecla de función F5 para controlar NERDTree, agregue esta asignación a su archivo de configuración:

map <F5> :NERDTreeToggle<CR>

Ahora presiona F5 para abrir NERDTree:

Con NERDTree abierto, puede navegar por la estructura del directorio usando las teclas de navegación de Vim j y k . Pulsa Intro en un directorio para expandirlo o contraerlo. De forma predeterminada, NERDTree muestra los directorios en formato de árbol. Pulsa Intro en un archivo normal para abrirlo usando la ventana original. También puede pulsar i para abrir el archivo usando una división horizontal o s para una división vertical. Presione ? para ver la ayuda con una lista completa de comandos.

Otra función útil es presionar m para ver el menú. Luego puede usar NERDTree para ejecutar operaciones del sistema de archivos, como crear, renombrar, copiar y mover archivos y directorios:

NERDTree Menu. Use j/k/enter, or the shortcuts indicated
=========================================================
> (a)dd a childnode
  (m)ove the current node
  (d)elete the current node
  (r)eveal the current node in file manager
  (o)pen the current node with system editor
  (c)opy the current node
  print (p)ath to screen
  (l)ist the current node

NERDTree mejora su productividad al permitirle buscar y administrar archivos dentro de Vim sin necesidad de acceder a la línea de comandos u otra aplicación de exploración del sistema de archivos.

[ También puede disfrutar de los conceptos básicos de Linux:una guía para principiantes sobre la edición de texto con vim ]

3. FzfVim

NERDTree es un excelente complemento que lo ayuda a navegar por la estructura del directorio y encontrar archivos para trabajar en Vim. Sin embargo, no es útil si tiene una estructura de directorios grande o si está buscando un archivo sin saber exactamente dónde se encuentra. Para tales casos, un buscador difuso es útil.

fzf.vim es un complemento que envuelve el programa de búsqueda difusa de línea de comandos fzf, lo que le permite usarlo directamente dentro de Vim. Fzf es una aplicación de búsqueda difusa rápida y portátil escrita en Go. Es un requisito para el complemento Vim, así que asegúrese de instalarlo primero.

Además de Fzf, puede instalar el programa bat para habilitar el resaltado de sintaxis en la ventana de vista previa que muestra Fzf.

De forma predeterminada, fzf.vim abre la ventana de búsqueda en la parte inferior de la pantalla. Para cambiar esto y mover la ventana al medio, aumentando el tamaño de la ventana de vista previa, agregue estas dos líneas a su .vimrc archivo de configuración:

let g:fzf_preview_window = 'right:50%'
let g:fzf_layout = { 'window': { 'width': 0.9, 'height': 0.6  }  }

Ahora, ejecute una búsqueda aproximada con todos los archivos en el directorio actual escribiendo el comando :Files . fzf.vim abre una ventana que enumera todos los archivos disponibles:

Para filtrar las opciones disponibles, comience a escribir cualquier carácter de cualquier parte del nombre del archivo, la extensión o el directorio. Fzf filtra automáticamente los resultados por usted. Por ejemplo, si recuerda que el archivo que desea es un archivo "YAML", comience a escribir y entonces m y vea cómo cambian los resultados:

Tenga en cuenta que no requiere que los caracteres estén juntos o en el mismo orden en que los escribió. Este es el objetivo con la búsqueda difusa. Cuando esté satisfecho con el filtro, puede utilizar las teclas de flecha para seleccionar y obtener una vista previa de las entradas restantes y pulsar Intro. para abrir el deseado. También puede usar Ctrl+T , Ctrl+X o Ctrl+V para abrir el archivo en una nueva pestaña, división o división vertical, respectivamente.

Usar fzf.vim para buscar archivos es de gran ayuda. Sin embargo, fzf.vim puede hacer mucho más que localizar archivos. Envuelve el fzf Comando con otras funciones de Vim u otros comandos externos, lo que le permite buscar más archivos en la estructura de directorio actual.

Por ejemplo, use el comando :Buffers para buscar una lista de búferes abiertos actuales. Con :GFiles, fzf.vim le permite buscar todos los archivos administrados por el repositorio Git actual. El comando :Lines le permite ejecutar una búsqueda aproximada en todas las líneas de cada búfer cargado. Pulsando Intro lo lleva a la línea específica en el búfer correcto:

fzf.vim incluso te permite buscar combinaciones de teclas de Vim con el comando :Maps . Si olvidó a qué combinación de teclas asignó un comando específico, inicie fzf.vim, escriba algunas letras del comando y le mostrará la combinación de teclas asignada. Pulsando Intro en la entrada ejecuta el comando. Por ejemplo, para encontrar qué clave mapeamos para Vim NERDTree en Vim NERDTree (ver #2 NERDTree arriba):

Fzf es rápido y la integración del complemento fzf.vim con Vim lo convierte en una herramienta excelente para ayudar a encontrar archivos y otros elementos. Este complemento tiene muchas otras características. Asegúrate de consultar la ayuda escribiendo el comando :h fzf para obtener una lista completa.

4. Vim Gitgutter

El complemento Vim Gitgutter es útil para aquellos que usan Git como sistema de control de versiones. Muestra la salida de Git diff como símbolos en el "canalón", la columna de signos donde Vim presenta información adicional, como números de línea. Por ejemplo, considere este archivo de tareas de Ansible como la versión confirmada actual en Git:

  1 ---
  2 # tasks file for mywebapp
  3 
  4 - name: Include OS-specific variables.
  5   include_vars: "{{ ansible_os_family }}.yaml"
  6  
  7 - name: Install http package
  8   yum:
  9     name: "{{ httpd_package }}"
 10 
 11 - name: Ensure httpd svc started
 12   service:
 13     name: "{{ httpd_service }}"
 14     state: started
 15     enabled: yes

Después de realizar algunos cambios, Vim Gitgutter muestra los siguientes símbolos en el medianil:

    1 ---
    2 # tasks file for mywebapp
    3 
    4 - name: Include OS-specific variables.
    5   include_vars: "{{ ansible_os_family }}.yaml"
    6 
~   7 - name: Ensure httpd package installed
    8   yum:
    9     name: "{{ httpd_package }}"
+  10     state: present
   11 
   12 - name: Ensure httpd svc started
   13   service:
   14     name: "{{ httpd_service }}"
_  15     state: started

El - El símbolo muestra que se eliminó una línea después de la línea 15. El ~ carácter muestra que la línea siete fue modificada, y el + El signo indica que se agregó la línea diez.

Además, Vim Gitgutter le permite navegar entre "trozos" (cambios individuales realizados en el archivo) con [c y ]c , o incluso organizar fragmentos individuales para confirmación presionando Leader+hs .

Vim Gitgutter también se integra automáticamente con Vim-Airline, proporcionando un resumen de los cambios en la línea de estado:

Vim-Airline habilita esta configuración de forma predeterminada y no necesita agregar nada a su .vimrc archivo para que funcione.

Vim Gitgutter brinda retroalimentación visual inmediata para los cambios y es una excelente adición a su caja de herramientas si usa Git.

5. Vim Fugitivo

Vim Fugitive es otro excelente complemento para aquellos que intentan incorporar Git en el flujo de trabajo de Vim. Este complemento es un contenedor de Git que le permite ejecutar comandos de Git directamente desde la interfaz de Vim. Este complemento tiene muchas funciones, así que asegúrese de consultar la página de Github para obtener información adicional.

Aquí hay un ejemplo de flujo de trabajo básico de Git usando Vim Fugitive. Considere el archivo de tareas de Ansible que usamos como ejemplo en Vim Gitgutter (vea #4 Vim Gitgutter arriba). Puedes usar git blame en Vim escribiendo el comando :Gblame :

7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|    1 ---
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|    2 # tasks file for mywebapp
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|    3
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|    4 - name: Include OS-specific variables.
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|    5   include_vars: "{{ ansible_os_family }}.yaml"
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|    6
00000000 (Not Committed Yet 2020-09-29 17:40:03 -0400)|~   7 - name: Ensure httpd package installed
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|    8   yum:
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|    9     name: "{{ httpd_package }}"
00000000 (Not Committed Yet 2020-09-29 17:40:03 -0400)|+  10     state: present
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|   11
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|   12 - name: Ensure httpd svc started
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|   13   service:
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|   14     name: "{{ httpd_service }}"
7d960351 (Ricardo Gerardi   2020-09-29 14:09:59 -0400)|_  15     state: started

Puede ver quién comprometió todas las líneas, excepto las líneas siete y diez, que aún no se han confirmado. Ahora, verifique el estado del repositorio escribiendo :Gstatus :

  1 Head: master
  2 Push: origin/master
  3 
  4 Unstaged (1)
  5 M main.yaml
~
___________________________________________________________________________________________
~   7 - name: Ensure httpd package installed
    8   yum:
    9     name: "{{ httpd_package }}"
+  10     state: present
   11 
   12 - name: Ensure httpd svc started
   13   service:
   14     name: "{{ httpd_service }}"
_  15     state: started

Vim Fugitive abre una ventana dividida con el resultado de git status . Puede preparar un archivo para confirmación presionando el botón - clave en la línea con el nombre del archivo. Puede restablecer el estado presionando - otra vez. El mensaje se actualiza para reflejar el nuevo estado:

  1 Head: master
  2 Push: origin/master
  3 
  4 Staged (1)
  5 M main.yaml

Observe que el estado en la línea cuatro cambió de Sin preparar a Escenificado . Ahora puedes usar el comando :Gcommit para confirmar los cambios. Vim Fugitive abre otra división que le permite ingresar un mensaje de confirmación:

  1 Update Ansible tasks file
  2 # Please enter the commit message for your changes. Lines starting
  3 # with '#' will be ignored, and an empty message aborts the commit.
  4 #
  5 # On branch master
  6 # Changes to be committed:
  7 #       modified:   main.yaml
  8 #

Guarde el archivo con :wq para completar la confirmación. Fugitive muestra un mensaje de confirmación con el nuevo hash de confirmación:

[master f7908cf] Update Ansible tasks file
 1 file changed, 2 insertions(+), 2 deletions(-)
Press ENTER or type command to continue

Puedes usar :Gstatus de nuevo para ver el resultado y :Gpush para actualizar el repositorio remoto con la nueva confirmación:

  1 Head: master
  2 Push: origin/master
  3
  4 Unpushed to origin/master (1)
  5 f7908cf Update Ansible tasks file

Si te gusta Vim Fugitive y quieres obtener más información, el repositorio oficial tiene enlaces a capturas de pantalla que muestran funciones y flujos de trabajo adicionales.

Bonificación:Vim Floaterm

Vim Floaterm es un complemento que le permite usar la función de terminal de Vim 8 como una ventana emergente.

A veces tienes que escribir comandos en una terminal para completar tus tareas. Antes de que Vim 8 proporcionara el :terminal característica, la solución fue cambiar a otra pantalla o salir de Vim para usar la línea de comando. Con el terminal Vim incorporado, puede abrir una ventana de terminal directamente desde Vim. Sin embargo, esta ventana forma parte de su área de edición o es demasiado pequeña y debe cambiarla constantemente.

Vim Floaterm resuelve estos problemas al crear la terminal como una ventana flotante que puede mostrar u ocultar cuando necesite usarla. Usa el comando :FloatermNew para crear una nueva terminal flotante y :FloatermHide para ocultarlo También puedes usar :FloatermToggle para alternar entre los estados. Una terminal flotante se ve así:

Para que sea más fácil mostrar y ocultar el terminal flotante, puede asignar el comando a otra tecla. Por ejemplo, para usar la tecla de función F12 para controlar Floaterm, agregue esta configuración a su .vimrc archivo:

let g:floaterm_keymap_toggle = '<F12>'

También puede aumentar el tamaño de la terminal flotante proporcionando el ancho y la altura como un porcentaje del tamaño de la pantalla de Vim con estas dos líneas de configuración:

let g:floaterm_width = 0.9
let g:floaterm_height = 0.9

Esta configuración crea una terminal flotante que ocupa el 90 % del tamaño de la pantalla de Vim. Floaterm proporciona muchas características adicionales e integración con otros complementos y herramientas de línea de comandos. Consulta la ayuda con :h floaterm-contents o el repositorio oficial para más información.

[ ¿Quiere poner a prueba sus habilidades de administrador de sistemas? Tome una evaluación de habilidades hoy. ] 

¿Qué sigue?

En este artículo, revisamos cinco complementos, más una bonificación, que ayudan a los administradores de sistemas a mejorar sus flujos de trabajo y aumentar su productividad cuando usan Vim.

Vim es un excelente editor que proporciona una serie de funciones listas para usar. El uso de complementos agrega nuevas funciones, lo que facilita la adaptación de Vim a flujos de trabajo específicos.

Los complementos de este artículo se centran en la funcionalidad general, como la ubicación de archivos, el suministro de información y el manejo de archivos controlados por versión en Git. Hay otras clases de complementos para administrar diferentes aspectos de la configuración de Vim. En el próximo artículo, hablaremos sobre la finalización del código y la verificación de la sintaxis.

Un agradecimiento especial a mi colega David Ward por presentarme los complementos fzf.vim y Vim Floaterm.


Linux
  1. Las mejores herramientas de Linux para escritores

  2. 10 guías de contenedores para administradores de sistemas

  3. Desmitificando Ansible para administradores de sistemas Linux

  4. 3 sólidos consejos de autoevaluación para administradores de sistemas

  5. 80 herramientas de monitoreo de Linux para administradores de sistemas

Instalación de Vundle:el administrador de complementos para Vim

Conceptos básicos de Kubernetes para administradores de sistemas

Las cinco mejores aplicaciones de chat para usuarios de Ubuntu

30 ejercicios de permisos de Linux para administradores de sistemas

Los 25 mejores comandos de Vim para Linux

Los 10 mejores complementos del editor de texto Gedit para programadores y codificación