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.
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.
- Muy rapida
- Facilmente extensible
- 100% configurable
- 100% basada en lua
- Muy sencilla de leer y modificar
- Integrada con Tmux
- Menús descriptivos
- Lsp & LspSaga integrados
- Soporte para Git y Github
- Autocompletado
- Snippets
- linters en el editor
- Harpoon integrado
- Soporte para testing
- Soporte para markdown
which-key | Ofrece un menu para mantener nuestros shortcuts a la vista
nvim-tree | ofrece una navegacion entre archivos y directorios y permite moverlos, copiarlos etc
telescope find_files | permite buscar archivos rapidamente
telescope grep_string | permite buscar cualquier palabra dentro del proyecto
neogit | Permite gestionar git comodamente desde el editor
lsp_saga | Permite una mejor interaccion con lsp
noetest | neotest support
Estos mapeos de teclados son generales y no estan atados a ningun plugin en particular
leaderkey = < Space >
<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
<C-Up>
= Redimienciona hacia arriba
<C-Down>
= Redimienciona hacia abajo
<C-Left>
= Redimienciona hacia la izquierda
<C-Right>
= Redimienciona hacia la derecha
<S-l>
= Buffer siguiente
<S-h>
= Buffer previo
<A-j>
= mueve una linea hacia abajo
<A-k>
= mueve una linea hacia arriba
<
= mueve un bloque de texto hacia la izquierda en modo visual
>
= mueve un bloque de texto hacia la derecha en modo visual
jk
= sale del modo insercion
<C-t>
= activa el menu para abrir la terminal en diversos modos
<C-s>
= guarda el fichero
<C-Space>
limpia el resaltado de busqueda
Los mapeos para los plugins estan todos visibles en wich-key.
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.
-
Todos los plugins se instalan o eliminan mediante el fichero user/plugins.lua
-
Una vez configurado el plugin simplemente hay que guardar el archivo y los plugins se instalaran automaticamente.
-
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
}
- 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"
}
- 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"})
- 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
happy coding :) :)
lambda.nvim's People
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.