Blog Tinux Net

Neovim

Neovim se ha proclamado como el sucesor de vim. Con tantas extensiones o plugins es prácticamente es un IDE

  • Publicado en

    Los plugin que son necesarios para mi programacion. Los generalistas, que son para todo tipo de textos. Y luego los dedicados para cada tipo de programacion.

    Para ver los plugins de nevim Primero tenemos que saber que gestor de plugins tenemos:

    nvim ~/.config/nvim/init.vim 
    

    Para saber qué gestor de plugins usas en Neovim, puedes revisar tu archivo de configuración. Aquí te explico cómo hacerlo:

    1. Revisa tu archivo de configuración principal

    Abre tu archivo de configuración de Neovim:

    nvim ~/.config/nvim/init.lua
    

    o si usas Vimscript:

    nvim ~/.config/nvim/init.vim
    

    2. Busca estas señales características

    Si usas Packer.nvim verás algo como:

    require('packer').startup(function(use)
        use 'wbthomason/packer.nvim'
        use 'nvim-tree/nvim-tree.lua'
        -- más plugins...
    end)
    

    Si usas Lazy.nvim verás:

    require("lazy").setup({
        {"nvim-tree/nvim-tree.lua"},
        {"nvim-treesitter/nvim-treesitter"},
        -- más plugins...
    })
    

    Si usas vim-plug (en Vimscript):

    call plug#begin()
    Plug 'preservim/nerdtree'
    Plug 'nvim-treesitter/nvim-treesitter'
    " más plugins...
    call plug#end()
    

    3. Comando rápido para verificar

    Ejecuta en Neovim:

    :scriptnames
    

    Busca líneas que contengan:
    - packerPacker.nvim
    - lazyLazy.nvim
    - plugvim-plug

    4. Revisa el directorio de plugins

    Ejecuta en terminal:

    ls ~/.local/share/nvim/site/pack/
    

    Los directorios comunes son:
    - packer/Packer.nvim
    - lazy/Lazy.nvim
    - plugins/vim-plug

    • awesome-vim-colorschemes: OK
    • telescope.nvim: OK
    • vim-snippets: OK
    • vim-loremipsum: OK
    • coc.nvim: OK
    • nvim-treesitter: OK
    • nvim-cmp: OK
    • nvim-web-devicons: OK
    • indent-blankline.nvim: OK
    • vim-css-color: OK
    • nerdtree: OK
    • plenary.nvim: OK
    • emmet-vim: OK
    • vim-surround: OK
    • vim-closetag: OK
    • nvim-tree.lua: OK
    • vim-airline: OK
    • vim-unimpaired: OK
  • Publicado en

    Anotaciones de trabajo con neovim.

    Combinacion de teclas para aceptar la sugerencia de coc: [Ctrl+y] + , Teclas importantes o inserta nueva linea en blanco si se le da en la linea superior bd elimina el bufffer sonde estemos situados :ls lista los bufferes bd35 eliminaría el buffer 35 sin cerrar ninguna ventana

    Ctrl+w x swap windows Intercambia ventanas en el x-axis

    Sustitucion en todo el documento

    :%s/SustituirPalabra/PalabraSustituida/g
    

    /g es para indicar que lo haga en general.

    mksession: Guarda sesiones de neovim para recupèrarlas mas tarde. :

    mks ~/session.nvim
    

    Para recuperar la sesion (importante la S mayuscula)

     $> nvim -S ~/session.nvim
    

    Creacion de ventana en neovim con Ctrl. Todo esto se puede hacer con ordenes de nvim: como por ejemplo :sp :sv , etc

    Ctrl+ws o :sp: dividir ventana horizontalmente. 
    Ctrl+wv o :sv.: dividir ventana verticalmente.
    Ctrt+ww: Cambiar de ventana .
    Ctrl+wq: cerrar ventana. 
    Ctrl+wx: intercambiar ventanas. 
    Ctrl+w=: hacer ventanas iguales.
    

    Plugin: emmet Para su instalacion hay que editar el archivo de configuracion de neovim:

    nvim ~/.config/nvim/init.vim

    E inserta entre los tags de

    call plug#begin('~/.local/share/nvim/plugged')
    Plug 'mattn/emmet-vim' "Funciones Emmet de Autocompletado html, CSS, y Javascript
    call plug#end()
    

    Puedes cerrar o abrir neovim para que tenga en cuenta los camios o bien el comando: :source

    Para instalar el plugin hay que ejecutar el instalador de plugins :PlugInstall

    Tambien es buena idea hacer updates a los plugins que tengamos instalados:

     :PlugUpdate , :PlugUpgrade
    

    Para poder usarlo ejemplo: En modo insercion

     html:5 y luego [Ctrl+y] + , o ! y luego [Ctrl+y] + ,
    

    Para expandir o contraer etiquetas HTML: Instalar el complemento "vim-surround"

    Agregar la siguiente línea al archivo de configuración ~/.config/nvim/init.vim:

    Plug 'tpope/vim-surround'

    Recargar la configuración de Neovim o reinicia Neovim y ejecutar :PlugInstall para instalar el complemento.

    Abrir un HTML.

    Colocar el cursor dentro de la etiqueta que se desea contraer o expandir.

    Para contraer la etiqueta, presiona cst. Esto significa:

    c: Modo de cambio (change mode). st: Seleccionar "tag" (la etiqueta) que envuelve el cursor. Para expandir la etiqueta, presiona ysat. Esto significa:

    ys: Yank surroundings (copia el entorno). at: Alrededor de la etiqueta (around tag). Con estos comandos, se podra contraer o expandir las etiquetas HTML de manera rápida y eficiente en Neovim. El complemento "vim-surround" también es útil para manipular otros tipos de delimitadores, como comillas, paréntesis y corchetes. Más información sobre las opciones disponibles y las combinaciones de teclas :help surround dentro de Neovim.

    Comandos de plegado: https://atareao.es/tutorial/vim/pliegues-en-vim @atareao@mastodon.social

    Para facilitarte todo esto del plegado, a continuación encontrarás los comandos mas utilizados en el modo normal,

    zo: abre el pliegue sobre el que te encuentras. También lo puedes hacer con la barra espaciadora.
    zc: hace la operación inversa de la anterior, es decir, cierra el pliegue sobre el que te encuentres…, en caso de que exista claro.
    za: abre o cierra el pliegue el que te encuentres. Es decir, si el pliegue está abierto lo cierra, y en el caso de que esté cerrado lo abre.
    zd: en caso de encontrarte ante un pliegue manual, con esta combinación de teclas, borrará el pliegue. De esta manera ya no podrás activarlo de nuevo. Esto no borra el texto contenido en el pliegue, solo borra el pliegue en si.
    zj: desplaza el cursor hasta el siguiente pliegue.
    zk: mueve el cursor hasta el pliegue anterior.
    zR: abre todos los pliegues en la memoria actual, recuerda el capítulo anterior sobre memorias, ventanas y pestañas.
    zM: cierra todos los pliegues existentes.
    zE: borra todos los pliegues.
    zo: Abre un nivel de plegado debajo del cursor.
    zO: Abre todos los niveles de plegado debajo del cursor.
    zc: Cierra un nivel de plegado debajo del cursor.
    zC: Cierra todos los niveles de plegado debajo del cursor.
    za: Alterna el plegado en el nivel bajo el cursor (plegar/desplegar).

  • Publicado en

    " Directorio de plugins

    call plug#begin('~/.local/share/nvim/plugged')  
    
    " Aquí irán los plugins a instalar  
    Plug 'https://github.com/vim-airline/vim-airline' "Vim Airline  
    Plug 'https://github.com/preservim/nerdtree' " Nerdtree, Arboiles de navegacion  
    Plug 'neoclide/coc.nvim', {'branch': 'release'}  
    Plug 'tpope/vim-surround'  " Plugin que permite contarer o expandir entre etiquetas  
    Plug 'nvim-telescope/telescope.nvim', { 'tag': '0.1.0' }  
    Plug 'nvim-treesitter/nvim-treesitter'  
    Plug 'nvim-lua/plenary.nvim'  
    Plug 'nvim-tree/nvim-web-devicons' " optional, for file icons  
    Plug 'nvim-tree/nvim-tree.lua'  
    Plug 'hrsh7th/nvim-cmp'  
    Plug 'lukas-reineke/indent-blankline.nvim'  
    Plug 'mattn/emmet-vim' "Funciones Emmet de Autocompletado html, CSS, y Javascript  
    
    Plug 'https://github.com/wolandark/vim-loremipsum.git' 
    " Plug 'neoclide/coc.nvim'  
    Plug 'rafi/awesome-vim-colorschemes'  
    Plug 'ap/vim-css-color'  
    Plug 'SirVer/ultisnips'  
    Plug 'honza/vim-snippets'  
    Plug 'preservim/nerdtree'  
    Plug 'jiangmiao/auto-pairs  '
    Plug 'tpope/vim-unimpaired'  
    
    
    
    call plug#end()  
    
    function HighlightsTabsAndSpace ()  
    call feedkeys(":set listchars=eol:¬,tab:\\|_,trail:~,extends:>,precedes:<,space:\\|\<CR>")  
    call feedkeys(":set list\<CR>")  
    endfunction  
    
    nmap <leader>t :call HighlightsTabsAndSpace()<CR>  
    nmap <leader>tt :set nolist<CR>  
    
    set tabstop=4  
    set shiftwidth=4  
    set expandtab  
    set relativenumber  
    set number  
    let g:python3_host_prog = '/usr/bin/python3'  
    let g:airline_powerline_fonts=1   
    let g:airline#extensions#tabline#enabled = 1  
    
    let g:fzf_preview_window = 'right:50%'  
    let g:fzf_layout = { 'window': { 'width': 0.9, 'height': 0.6  }  }   
    
    let g:loaded_node_provider = 0  
    let mapleader = " "  
    
    
    
    map <F5> :NERDTreeToggle<CR>  
    map <leader>se :%s/  
    map <leader>ne :NERDTree  
    map <leader>cc 0^i//<TAB><Esc>  
    map <leader>cu 0dw<CR><ESC>  
    map <leader>cch 0^i/*<C-$>$0^i */<Esc>  
    map <F5> :NERDTreeToggle<CR>  
    
    :inoremap <C-J> o<Esc>