Cansado un poco de tener que siempre usar editores faciles (estilo mousepad
) o que dejaban de tener soporte (Atom
) y que además no me hacian la vida facil para integrarse con GitHub, intente buscar un nuevo editor que lo tuviera todo y mirando los videos de Atareao me fije en que tenia una guia de instalación y de uso de Neovim
, clonico de Vim, y me puse con ello.
Porque una de mis ilusiones, era saber utilizar y poder sacarle todo el partido a Vim, pero por falta de tiempo o ganas, nunca me habia puesto, pero gracias a los videos de Atareao
me entro el gusanillo y …
Para empezar, Lorenzo tiene una excelente guia para iniciarse y usarlo donde todo esta muy bien explicado (aunque aun tengo algunas dudas para aclarar), pero para un uso sencillo y sin muchas complicaciones tienes más que suficiente, si quieres más, ahi es donde tu, tienes que ponerte a investigar con más intensidad.
Para que te hagas una idea, todo lo podeis leer a partir del articulo de Publicar feed en Mastodon todo lo estoy escribiendo con Neovim
y me parece que me voy a quedar en el, porque tal como lo tengo, y eso, que aun tengo algunas cosas que pulir, me parece perfecto la funcionalidad que tiene.
Yo no voy a explicar todos los pasos que tienes que hacer para instalarlo y su posterior configuración, porque eso mirando los videos de atareao.es
lo puede hacer tu solo, pero lo que si que voy a poner, son mis ficheros de configuración que estoy utilizando actualmente (aunque tambien los podeis encontrar en mis dot_files), que a lo mejor te pueden servir de ayuda.
La estructura de ficheros para la configuración de Neovim
es de la siguiente manera:
- nvim
- lua
- plugins –> Donde tenemos las configuraciones de todos los plugins que usamos
- packer.lua –> Fichero donde se definen los plugins que se van a cargar (de donde los tiene que conseguir) asi como la configuración que van a tener
- settings.lua –> Opciones de configuración general de neovim
- keymaps.lua –> Configuración de las opciones de teclado de neovim
- plugins –> Donde tenemos las configuraciones de todos los plugins que usamos
- spell –> Donde tenemos todos los archivos de idiomas que usamos
- templates –> los templates / plantillas que usamos
- init.lua –> Fichero de inicio de neovim junto con los plugins que se van a utilizar:w
- lua
init.lua
--[[
██╗███╗ ██╗██╗████████╗██╗ ██╗ ██╗ █████╗
██║████╗ ██║██║╚══██╔══╝██║ ██║ ██║██╔══██╗
██║██╔██╗ ██║██║ ██║ ██║ ██║ ██║███████║
██║██║╚██╗██║██║ ██║ ██║ ██║ ██║██╔══██║
██║██║ ╚████║██║ ██║██╗███████╗╚██████╔╝██║ ██║
╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚═╝╚══════╝ ╚═════╝ ╚═╝ ╚═╝
Neovim init file
Version: 0.8.1 - 2022/11/14
Maintainer: Vctrsnts
Website: https://vctrsnts.github.io
Referencia: https://github.com/brainfucksec/neovim-lua
--]]
----------------------------------------------------------------------------------------------------
-- Import Lua Modules
----------------------------------------------------------------------------------------------------
require('settings') -- Fitxer dels Settings
require('keymaps') -- Fitxer de la configuració del teclat
----------------------------------------------------------------------------------------------------
-- Comença la carrega de plugins
----------------------------------------------------------------------------------------------------
require('plugins/packer') -- Gestor de Plugins
require('plugins/autosave') -- Plugin per a realitzar el AutoSave
require('plugins/ayu') -- Color Theme
require('plugins/neo-tree') -- filebrowser
require('plugins/feline') -- statusline
settings.lua
----------------------------------------------------------------------------------------------------
-- Neovim API Aliases
----------------------------------------------------------------------------------------------------
local cmd = vim.cmd
local exec = vim.api.nvim_exec
local fn = vim.fn
local g = vim.g
local opt = vim.opt
----------------------------------------------------------------------------------------------------
-- Configuració General
----------------------------------------------------------------------------------------------------
g.mapleader = ';' -- Canviar leader a coma
opt.swapfile = false -- No fe servir swapfile
----------------------------------------------------------------------------------------------------
-- Neovim UI
----------------------------------------------------------------------------------------------------
opt.number = true -- Es visualitzar els numeros de les linias
opt.relativenumber = true -- Es visualitzar el numero relatiu de la linia
opt.foldmethod = 'marker' -- Activada folding (default 'foldmarker')
opt.splitright = true -- vertical split to the right
opt.splitbelow = true -- horizontal split to the bottom
opt.linebreak = true -- wrap on word boundary
opt.colorcolumn = '80' -- Es visualitzar la linia que marca els 80 caracters
opt.termguicolors = true
opt.guifont = "Fira Code"
g.neovide_cursor_vfx_mode = "railgun"
opt.list = true
opt.listchars = 'tab:▸ ,space:·,nbsp:␣,trail:•,precedes:«,extends:»'
---------------------------------------------------------------------------------------------------
-- Corrector ortografic per llenguatge
---------------------------------------------------------------------------------------------------
exec ([[
augroup markdownSpell
autocmd!
autocmd FileType mardown setlocal spell Spelllang=es
autocmd BufRead,BufNewFile *.md setlocal spell spelllang=es
augroup END
]], false)
---------------------------------------------------------------------------------------------------
-- Tabs, indent
---------------------------------------------------------------------------------------------------
opt.expandtab = true -- use spaces instead of tabs
opt.shiftwidth = 2 -- shift 2 spaces when tab
opt.tabstop = 2 -- 1 tab == 2 spaces
opt.smartindent = true -- autoindent new lines
---------------------------------------------------------------------------------------------------
-- Memory, CPU
---------------------------------------------------------------------------------------------------
opt.hidden = true -- enable background buffers
opt.lazyredraw = true -- faster scrolling
opt.synmaxcol = 1000 -- max column for syntax highlight
keymaps.lua
----------------------------------------------------------------------------------------------------
-- VARIABLES / ALIASES
----------------------------------------------------------------------------------------------------
local map = vim.api.nvim_set_keymap
local default_opts = {noremap = true, silent = true}
local cmd = vim.cmd
----------------------------------------------------------------------------------------------------
-- Applications & Plugins shortcuts:
----------------------------------------------------------------------------------------------------
--
-- nvim-tree
--
map('n', '<C-n>', ':Neotree toggle<CR>', default_opts) -- open/close
packer.lua
--[[
S'ENCARREGA DE TOTA LA CONFIGURACIÓ / CARREGA DE PLUGINS
Plugin manager: packer.nvim
https://github.com/wbthomason/packer.nvim
For information about installed plugins see the README
neovim-lua/README.md
https://github.com/brainfucksec/neovim-lua#readme
--]]
local fn = vim.fn
local install_path = fn.stdpath('data')..'/site/pack/packer/start/packer.nvim'
if fn.empty(fn.glob(install_path)) > 0 then
packer_bootstrap = fn.system({'git', 'clone', '--depth', '1', 'https://github.com/wbthomason/packer.nvim', install_path})
end
return require('packer').startup(function(use)
-- My plugins here
-- use 'foo1/bar1.nvim'
-- use 'foo2/bar2.nvim'
-- Automatically set up your configuration after cloning packer.nvim
-- Put this at the end after all plugins
use 'wbthomason/packer.nvim'
-------------------------------------------------------------------------------------------------
-- colorschemes
-------------------------------------------------------------------------------------------------
use 'Shatur/neovim-ayu'
-------------------------------------------------------------------------------------------------
-- Activem Icones
-------------------------------------------------------------------------------------------------
use 'kyazdani42/nvim-web-devicons'
use 'adelarsq/vim-devicons-emoji'
-------------------------------------------------------------------------------------------------
-- Activem Explorer / Navegador de directoris
-------------------------------------------------------------------------------------------------
use {
'nvim-neo-tree/neo-tree.nvim',
branch = "v2.x",
requires = {
"nvim-lua/plenary.nvim",
"kyazdani42/nvim-web-devicons", -- not strictly required, but recommended
"MunifTanjim/nui.nvim"
}
}
-------------------------------------------------------------------------------------------------
-- Activem Status Line
-------------------------------------------------------------------------------------------------
use ('Iron-E/nvim-highlite')
use {
'feline-nvim/feline.nvim',
requires = {
'nvim-web-devicons'
},
}
-------------------------------------------------------------------------------------------------
-- Activem el AutoSave
-------------------------------------------------------------------------------------------------
use "Pocco81/auto-save.nvim"
-------------------------------------------------------------------------------------------------
-- Final del fitxer de configuració de plugins
-------------------------------------------------------------------------------------------------
if packer_bootstrap then
require('packer').sync()
end
end)
Pues, ya has podido comprobar como lo tengo yo configurado y a pleno rendimiento, pero tal como he dicho al principio, aun falta por pulir algunas cosas.