idcmardelplata / lambda.nvim

My neovim configuration

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Principal

Lambda vim

Lambda vim es mi configuracion personal de neovim, la cual fui adaptando poco a poco a diversos usos y lenguajes. Cabe aclarar que la configuracion no se enfoca en ningun lenguaje de programacion en particular sino que pretende brindar la posibilidad de poder agregar nuevos lenguajes a medida que vayamos necesitandolos. De esta manera, se tiene una configuracion que permite realizar las tareas mas comunes cuando programamos (como git, testing, revisiones de codigo etc etc) indistintamente del lenguaje utilizado.

WIP: Esta configuracion todavia no esta 100% finalizada puesto que se actualiza con frecuencia,
aún asi es bastante estable y no suele tener mayores inconvenientes para su uso en el dia a dia

Esta configuracion esta pensada como template en la cual puedan basarse para crear sus propias configuraciones personales.

Instalacion

Para instalar es tan facil como copiar y pegar esta linea en la terminal (es necesario tener git y curl instalados previamente)

curl -s https://raw.githubusercontent.com/idcmardelplata/neovim_configuration/master/setup.sh | bash

El comando anterior descargara e instalara esta configuracion reemplazando a la configuracion existente, por lo cual asegurese de hacer un backup de su configuracion existente de neovim antes de ejecutar el comando anterior.

Features:

  • Muy rapida
  • Facilmente extensible
  • 100% configurable
  • 100% basada en lua
  • Muy sencilla de leer y modificar
  • Integrada con Tmux
  • Menús descriptivos
  • Mason & LspSaga integrados
  • Soporte para Git y Github
  • Soporte para bases de datos
  • Soporte para testing
  • Soporte para markdown
  • Autocompletado
  • Snippets
  • linters en el editor
  • Harpoon integrado

Screenshots

wich_key which-key | Ofrece un menu para mantener nuestros shortcuts a la vista

nvim-tree nvim-tree | ofrece una navegacion entre archivos y directorios y permite moverlos, copiarlos etc

file_finder telescope find_files | permite buscar archivos rapidamente

grep_word telescope grep_string | permite buscar cualquier palabra dentro del proyecto

git integration neogit | Permite gestionar git comodamente desde el editor

git signs git signs

diagnostic_inline lsp_saga | Permite una mejor interaccion con lsp y mason

neotest noetest | neotest support

Keybindings

Estos mapeos de teclados son generales y no estan atados a ningun plugin en particular

leaderkey = < Space >

movimiento entre ventanas

<C-l>= se mueve hacia la derecha

<C-h>= se mueve hacia la izquierda

<C-j>= se mueve hacia abajo

<C-k>= se mueve hacia arriba

Redimienciona el tamaño de las ventanas

<C-Up>= Redimienciona hacia arriba

<C-Down>= Redimienciona hacia abajo

<C-Left>= Redimienciona hacia la izquierda

<C-Right>= Redimienciona hacia la derecha

Navegacion entre buffers

<S-l>= Buffer siguiente

<S-h>= Buffer previo

Movimiento de texto

<S-j>= mueve una linea hacia abajo en modo visual

<S-k>= mueve una linea hacia arriba en modo visual

<= mueve un bloque de texto hacia la izquierda en modo visual

>= mueve un bloque de texto hacia la derecha en modo visual

Salir del modo inserción

jk= sale del modo insercion

Mapeos para la terminal Integrada

<C-t>= activa el menu para abrir la terminal en diversos modos

Varios

<C-s>= guarda el fichero

<C-Space> limpia el resaltado de busqueda

Los mapeos para los plugins estan todos visibles en wich-key.

Estructura de lambda.nvim

La estructura que seguimos es bastante sencilla, tenemos un fichero inicial llamado init.lua que es el encargado de importar todos los archivos de configuracion del editor.

Gestion de plugins.

  1. Todos los plugins se instalan o eliminan mediante el fichero user/plugins.lua

  2. Una vez configurado el plugin simplemente hay que guardar el archivo y los plugins se instalaran automaticamente.

  3. Para personalizar la configuracion de un plugin simplemente hay que crear un fichero dentro de user/< pluginname >.lua con el siguiente formato:

    local plugin_name = SafeRequire("pluginname")

    pluginname.setup {
        -- Configurar aqui las opciones deseadas
      }
  1. Agregar el nombre del fichero de configuracion del plugin antes creado a la lista de plugins de init.lua
local subdir = "user"
local config_files = {
  "options",
  "utils",
  "keymaps",
  "plugins",
  "...",
  "your_plugin_config_here"
}
  1. Si desea crear sus propios mapeos de teclado para el plugin, puede hacerlo editando el fichero user/wich_key.lua, Primero genere un diccionario con los mapeos que desee agregar, ej:
  local custom_menu_name = {
    name = "custom_name_to_show_in_wich_key",
    n = {"<cmd>:DashboardNewFile<cr>", "create new file"},
    h = {"<cmd>new<cr>", "create new buffer in horizontal"},
    v = {"<cmd>:vnew<cr>", "create new buffer in vertical"},
    f = {....},
  }
   -- Al final del fichero debe registrarlo
   key.register(custom_menu_name, { prefix = "<leader>k"})
  1. Done :)

Si te sirve o te gusta lambda vim, te invito a colaborar mediante issues o pull request ¡todas son bienvenidas! :)

Si te gusta y te sirvió de algo está config y me querés regañar un coffee, podés hacerlo desde cafesito

Invitame un café en cafecito.app

happy coding :) :)

About

My neovim configuration


Languages

Language:Lua 99.5%Language:Shell 0.5%