NeoVim para desarrolladores de Ruby / Sudo Null IT News

Esta configuración tomó mucho tiempo para ensamblarse. Actualmente estoy trabajando en ello. Es más bien un recordatorio para mí y una hoja de referencia para aquellos que estén interesados. Este es un punto de vista subjetivo y no se lo impongo a nadie. Si quieres usarlo, estaré encantado de haberte ayudado.

Resumen del artículo:

  • Este ensamblado se utiliza para el desarrollo en Ruby on Rails, también hay soporte para lenguajes relacionados.

  • El montaje y configuración de NeoVim se realiza en dos estándares, debido al lanzamiento de nuevos complementos y las particularidades de su configuración. hay archivos de configuración vim y lua

  • Tabnine también se utiliza para ayudar a escribir código.

  • Treesitter se utiliza para ampliar el soporte para diferentes idiomas.

  • el uso de algunos complementos antiguos se debe a las características específicas del trabajo, se usa slim y todavía no hay opciones decentes para lua, y algunas simplemente están acostumbradas a

  • Telescope se utiliza como sistema de búsqueda global para todo (búsqueda por nombre de archivo, contenido, entre buffers, etc.)

  • A medida que avance la configuración, escribiré formas de resolver problemas para diferentes sistemas, sistemas de la familia Debian/Ubuntu, Fedora, Arch, MacOs.

Si está interesado en la funcionalidad, bienvenido a nuestro pequeño viaje.

1. Instalación de NeoVim

Documentación de instalación de NeoVim para varios sistemas.

En LinuxMint, la versión anterior, 6.5, se instala a través del administrador de paquetes estándar. Por lo tanto, el siguiente método es más adecuado para una instalación nueva. Necesita una versión superior a 0.8, ya que algunos complementos no funcionarán en versiones inferiores.

Método para instalar la última versión de NeoVim desde el repositorio de Git, ensamblados para descargar. debería funcionar en todos los sistemas Linux:

curl -LO 
sudo rm -rf /opt/nvim
sudo tar -C /opt -xzf nvim-linux64.tar.gz

para sistemas MacOsX:

curl -LO 
tar xzf nvim-macos.tar.gz
./nvim-macos/bin/nvim

después de ejecutar el código anterior, debe especificar la ruta al archivo ejecutable (en el ejemplo de la documentación, se usa bash)

agregue la siguiente línea en el archivo ~/.bashrc:

export PATH="$PATH:/opt/nvim-linux64/bin"

Instalación de NeoVim usando el administrador de paquetes del sistema:

Instalación para Debian/Ubuntu:
sudo apt-get install neovim

Instalación para Fedora:
sudo dnf install -y neovim

Instalación para Arco:
sudo pacman -S neovim

Instalación para MacOs: brew install neovim

2. Preparar el entorno de trabajo

Instalación para Debian/Ubuntu:

sudo apt-get install curl git
sudo apt-get install python-is-python3
sudo apt-get install pip
pip install neovim
LAZYGIT_VERSION=$(curl -s " | grep -Po '"tag_name": "v\K(^")*')
curl -Lo lazygit.tar.gz "
tar xf lazygit.tar.gz lazygit
sudo install lazygit /usr/local/bin
sudo apt-get install ripgrep

Instalación para Fedora:

sudo dnf install -y python3-neovim
sudo dnf copr enable atim/lazygit -y
sudo dnf install lazygit
sudo dnf install gcc
sudo dnf install ripgrep 
sudo dnf install gcc

Instalación para Arco:

sudo pacman -S python-pynvim
sudo pacman -S lazygit
sudo pacman -S ripgrep

Instalación para MacOs:

brew install lazygit

Tuve dificultades con deoplete al iniciar nvim, me quejé de la falta de pynvim, la solución es simple:

wget -qO-  | bash
nvm install 20
npm install -g tree-sitter tree-sitter-cli

Además, para una visualización correcta, sugiero usar iTerm2

Instalación de Node Version Manager para todo tipo de sistemas

wget -qO-  | bash
nvm install 20
npm install -g tree-sitter tree-sitter-cli

después de todo lo descrito anteriormente, ejecute desde la terminal nvim para comprobar el inicio del propio editor

3. Instalar fuentes para mostrar correctamente los símbolos e íconos de NerdFonts

Fuentes NerdFonts
Elegí FiraCode

mkdir -p ~/.local/share/fonts
mkdir ~/tmp
wget 
unzip FiraCode.zip -d ~/tmp
rm FiraCode.zip
mv ~/tmp/FiraCode* ~/.local/share/fonts
rm -rf ~/tmp

A continuación, para Osx, seleccionamos las fuentes en el buscador, las abrimos en el Administrador de fuentes y hacemos clic en instalar. Las fuentes se instalarán automáticamente en el directorio de usuarios.

rm FiraCode.zip
mv ~/tmp/FiraCode* ~/.local/share/fonts # для Linux
rm -rf ~/tmp

luego debes cerrar la terminal, abrirla nuevamente, cambiar la fuente y volver a abrirla.

4. Instalación de archivos de configuración.

Primero, borremos la configuración de neovim por si acaso para evitar dificultades en el futuro. Si ya tenía configuraciones antes, las guardaremos con la extensión bak para que pueda devolver todo

mv ~/.config/nvim ~/.config/nvim.bak
mv ~/.local/share/nvim ~/.local/share/nvim.bak
mv ~/.local/state/nvim ~/.local/state/nvim.bak
mv ~/.cache/nvim ~/.cache/nvim.bak

Descargue el archivo de configuración de NeoVim

wget https://github.com/apilot/dotfiles/releases/download/NeoVim/nvim-latest.zip

descomprima el archivo descargado directamente en el directorio de configuración

unzip ./nvim-latest.zip -d ~/.config/ && rm nvim-latest.zip

5. Instalación del sistema de paquete Plug

sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \
       https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'

6. Instalación y actualización de paquetes.

Después de todos los procedimientos, iniciamos nvim en la terminal, vemos inscripciones y errores no muy bonitos. Presione ESC.
A continuación, ingrese al modo de entrada de comando presionando :
e ingresa el comando PlugInstall y espere a que se complete la instalación de todos los complementos y lo que se necesita para ellos.
Al finalizar la instalación, ingrese el modo de entrada de comando ':' ingrese el comando qa (lo que significa cerrar todas las ventanas/pestañas abiertas)

Si se producen errores relacionados con el desoplete en Osx, entonces debe cambiar la ruta a Python en el archivo de configuración.
en el archivo ~/.config/nvim/general/settings cambie la ruta
C
let g:python3_host_prog = '/usr/bin/python'
en
let g:python3_host_prog = '~/.local/python3/bin/python'
y el autocompletar funcionará

6. Descripción general de la interfaz

Cuando lanzamos un editor ya instalado y configurado, vemos

Cuando hace clic en “Líder”; en nuestra configuración es “espacio”, vemos una lista de claves que están disponibles para nuestro control.

Captura de pantalla general

Captura de pantalla general

En la captura de pantalla general los números son:

  1. NerdTree: administrador de archivos para NeoVim (crear, eliminar, copiar archivos y navegar por el proyecto)

  2. Abrir pestañas de archivos en el editor

  3. En gris se muestra un archivo inactivo pero abierto y su información general. Toda la información sobre los archivos se encuentra en la parte inferior de la “ventana” abierta.

  4. Muestra que 17 líneas están colapsadas dentro de esta franja, control z + O abre todo lo que está adjunto, z + c colapsa lo que puedas desde esta línea y profundiza en la jerarquía

  5. Línea de estado de un archivo abierto y editado activamente. información sobre el nombre, en qué modo está el editor, en qué idioma y otra información necesaria

La mayoría de las herramientas interesantes para un desarrollador están ocultas en “Telescopio”.
cuando haces clic en <Leader> + f llegamos al menú:

Menú general del telescopio

Menú general del telescopio

luego, al hacer clic en los símbolos correspondientes a la izquierda de las flechas, activamos ciertos comandos. Entonces, para buscar por nombre de archivo en un proyecto abierto, hacemos clic en <leader> + f + f y veo:

Buscar por nombre de archivo

Buscar por nombre de archivo

La búsqueda por contenido de archivo se llama <leader> + f + g

Buscar por contenido de archivo

Buscar por contenido de archivo

Buscar en buffers abiertos (aquellos archivos que se editaron anteriormente, pero desaparecieron de la vista) <leader> + f + b

Buscar por buffers abiertos

Buscar por buffers abiertos

El resto se puede ver y entender por el significado de los nombres.

7. Teclas de acceso rápido para usar esta configuración:

Algunas teclas de acceso rápido no están incluidas en la configuración del complemento WhichKey; las describiré a continuación:

`c + s`     - изменить "окружающие" парные символы типа ковычек
`CTRL + n`  - выбор для мультиредактирования "переменных"
`g + c` -  комментирует/раскомментирует выделенные строки
`/` - поиск в открытом буфере

8. Complementos utilizados en esta configuración y descripciones de ellos.

  • Shougo/deoplete.nvim – marco asincrónico para sustitución automática en NeoVim (menú desplegable con sugerencias)

  • tbodt/deoplete-tabnine – Conexión tabnine para desoplete, le permite usar IA cuando trabaja

  • Keithbsmiley/rspec.vim – resaltado de sintaxis mejorado para rspec

  • Shougo/neosnippet.vim – agregar soporte de fragmentos para Vim

  • SirVer/ultisnips – otra opción para soporte de fragmentos para Vim

  • lukas-reineke/indent-blankline.nvim – complemento para mostrar anidamiento, personalizable

  • lewis6991/gitsigns.nvim – mostrar datos de confirmaciones de Git, nombres eliminados, modificados de confirmaciones, etc.

  • vim-scripts/VimCompletesMe – una opción de sustitución automática muy sencilla para el editor

  • alvan/vim-closetag – cierre automático de etiquetas HTML

  • ap/vim-css-color – mostrar colores en el código mismo

  • bfredl/nvim-miniyank – complemento auxiliar para copiar y pegar texto

  • cespare/vim-toml – soporte de sintaxis toml

  • ctrlpvim/ctrlp.vim – motor de búsqueda de archivos, buffers, etiquetas, etc. para vim

  • análisis denso/ale – linter asincrónico para neovim. le permite utilizar Ir a la definición. Se utiliza con proyectos Solargraph para Rails. es un cliente LSP, puede conectar la funcionalidad necesaria

  • dzeban/vim-log-sintaxis – resaltar archivos de registro

  • kalinin/dockerfile.vim – soporte de sintaxis para archivos acoplables

  • etordera/deoplete-rails – sustitución automática para proyectos Rails

  • caja de morhetz/minería – Esquema de colores Gruvbox

  • freeo/vim-kalisi – combinación de colores kalisi

  • pilar de vida/vim-minerbox8 – Esquema de colores Gruvbox8

  • catppuccin/nvim – combinación de colores catuchino

  • sainnhe/sonokai – combinación de colores sonokai

  • hashivim/vim-terraform – soporte de sintaxis para archivos terraform

  • honza/vim-fragmentos – soporte para fragmentos de vim

  • jiangmiao/auto-pares – inserción automática de caracteres emparejados “”, '', (), {}, etc.

  • juliosueiras/vim-terraform-compleción – sustitución automática de archivos terraform

  • kchmck/vim-café-script – soporte de sintaxis de script de café

  • iamcco/markdown-preview.nvim – le permite ver la visualización en el navegador del archivo Markdown que está editando actualmente

  • mfussenegger/nvim-lint – un linter para muchos idiomas, le permite trabajar cómodamente en código

  • bigote/vim-bigote-manillar – navegación entre etiquetas de apertura y cierre

  • mxw/vim-jsx – soporte de sintaxis para archivos jsx

  • nelstrom/vim-textobj-rubyblock – crear “plantillas” de bloques de rubíes. puedes hacer diferentes preparaciones

  • otres/eregex.vim – Notación de expresiones regulares estilo Perl/Ruby para Vim

  • otres/html5.vim – soporte de sintaxis para html5

  • otres/javascript-libraries-syntax.vim – soporte de sintaxis para javascript

  • otres/jspc.vim – sustitución automática de parámetros de Javascript

  • pseewald/vim-anyfold – le permite ahorrar espacio en la pantalla colapsando el anidamiento. habilitado de forma predeterminada al abrir un archivo

  • rhysd/vim-gramatical – chequeo de gramática

  • reying/ag.vim – Integración de Argentum Search (AG) en NeoVim

  • scrooloose/nerdtree – navegación de proyectos, explorador de archivos

  • Xuyuanp/nerdtree-git-plugin – mostrar el estado de git para los archivos del proyecto

  • plantilla delgada/vim-slim – soporte delgado para NeoVim

  • stephpy/vim-yaml – soporte para archivos yaml

  • antoinemadec/FixCursorHold.nvim – para una mejor visualización del cursor

  • nvim-neotest/neotest – le permite ejecutar pruebas desde el editor y trabajar con ellas

  • olimorris/neotest-rspec – soporte rspec para neotest

  • tpope/vim-comentario – comentar y descomentar líneas (texto seleccionado)

  • nvim-treesitter/nvim-treesitter – un marco muy poderoso que admite una gran cantidad de lenguajes de programación, sintaxis, linters, etc.

  • tpope/vim-endwise – sustitución automática end después de escribir def if etcétera. para rubí

  • tpope/vim-fugitivo – Soporte Git para editor

  • tpope/vim-rieles – soporte mejorado para proyectos Rails para NeoVim, navegación a través de ellos y más.

  • tpope/vim-surround – para cambiar caracteres emparejados, por ejemplo puedes cambiar de "текст" en 'текст' muy simple. c+s+"+' con el cursor sobre el texto entre comillas

  • kdheepak/lazygit.nvim – una aplicación muy conveniente para trabajar con un repositorio Git. Gran funcionalidad. Este complemento te permite ejecutarlo sin salir de NeoVim

  • vim-aerolínea/vim-aerolínea – línea de estado en la parte inferior de cada búfer

  • vim-airline/vim-airline-themes – temas para la barra de estado

  • vim-rubí/vim-rubí – soporte de sintaxis para Ruby

  • vim-sintástico/sintástico – La verificación de sintaxis para Vim ya no es compatible

  • xolox/vim-misc. – un conjunto de scripts vim utilizados por muchos complementos

  • xolox/vim-notas – crear notas directamente en NeoVim

  • declancm/cinnamon.nvim – desplazamiento suave en el editor

  • romgrk/barbar.nvim – la barra en la parte superior permite que el mouse controle abrir buffers, abrir cerrar, cambiar posición

  • nvim-lua/plenary.nvim – biblioteca para Lua

  • nvim-tree/nvim-web-devicons – soporte de devicons en NeoVim para NerdTree

  • ryanoasis/vim-devicons – soporte para dispositivos en NeoVim

  • nvim-telescopio/telescopio.nvim – interfaz conveniente para buscar todo, en todas partes

  • nvim-telescopio/telescopio-live-grep-args.nvim – Soporte de búsqueda de Argentum para telescopio

  • liuchengxu/vim-cuál-clave – consejos prácticos sobre las teclas de acceso rápido, que se activan al presionar, en este caso es “Espacio”

  • luochen1990/arcoiris – soportes multicolores, convenientes para anidamientos grandes

  • codota/tabnine-nvim – Compatibilidad con tabnine AI, las funciones dependen de su suscripción

  • mg979/vim-visual-multi – convierte NeoVim en un editor multicursor

  • ThePrimeagen/git-worktree.nvim – Soporte de Git Worktree para NeoVim

Publicaciones Similares

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *