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
Clet g:python3_host_prog = '/usr/bin/python'
enlet 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.
En la captura de pantalla general los números son:
NerdTree: administrador de archivos para NeoVim (crear, eliminar, copiar archivos y navegar por el proyecto)
Abrir pestañas de archivos en el editor
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.
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íaLí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ú:
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:
La búsqueda por contenido de archivo se llama <leader> + f + g
Buscar en buffers abiertos (aquellos archivos que se editaron anteriormente, pero desaparecieron de la vista) <leader> + f + b
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 escribirdef
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 comillaskdheepak/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