Antes de empezar la materia ISO te recomiendo que mires mi blog sobre vim para que lo puedas instalar y configurar a tu gusto el editor y hacer las practicas. Trate de describirlo de la mejor forma posible, si notas que falta, algo o hubo algún error, no dudes en escribirme

Indice


Configuramos nuestro editor

Resultado Final

image

Actualizamos el apt

sudo apt-get update

Ahora podemos installar neovim

sudo apt-get -y install neovim

Nos metemos en config

cd .config/

Chequeamos que tengamos la carpeta nvim

ls -la

En caso de no tenerla, la creamos

mkdir nvim

Accedemos a la carpeta creada

cd vim

Creamos el archivo init.vim que es el que contendra toda la configuración de nuestro ide

touch init.vim

Creamos una carpeta en donde van a estar nuestras configuraciones

mkdir general

Accedemos a la carpeta

cd general

Y creamos nuestro archivo de configuración

touch settings.vim

Dentro de este, pegamos lo siguiente (Ctrl + Shift + v)

synta enable
set t_Co=256
set encoding=utf-8
set hidden
set number
set title
set mouse=a
set nowrap
set cursorline
set tabstop=2
set shiftwidth=2
set softtabstop=2
set shiftround
set expandtab
set ignorecase
set smartcase
set spelllang=en,es
set termguicolors
set background=dark
set noshowmode
set clipboard=unnamed
set numberwidth=1
set showcmd
set ruler
set showmatch
" set relativenumber

" Theme Gruvbox
colorscheme gruvbox
let g:gruvbox_contrast = 'hard'
let g:gruvbox_termcolors = 256
highlight Normal ctermbg=NONE

Ahora nos metemos en el archivo init.vim y copiamos lo siguiente, para poder hacer referencia a nuestro archivo

source $HOME/.config/nvim/general/settings.vim

Instalamos vim plug

curl -fLo "${XDG_DATA_HOME:-$HOME/.config}"/nvim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

En nvim, creamos la carpeta vim-plug, dentro le metemos el archivo plugins.vim

mkdir vim-plug
cd vim-plug
touch plugins.vim

Dentro de este archivo, pegamos la siguiente configuración

" auto-install vim-plug
if empty(glob('~/.config/nvim/autoload/plug.vim'))
  silent !curl -fLo ~/.config/nvim/autoload/plug.vim --create-dirs
    \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
  "autocmd VimEnter * PlugInstall
  "autocmd VimEnter * PlugInstall | source $MYVIMRC
endif

call plug#begin('~/.config/nvim/autoload/plugged')

    " Better Syntax Support
    Plug 'sheerun/vim-polyglot'
    " File Explorer
    Plug 'scrooloose/NERDTree'
    " Auto pairs for '(' '[' '{'
    Plug 'jiangmiao/auto-pairs'
    " Gruvbox theme
    Plug 'morhetz/gruvbox'   
    Plug 'godlygeek/csapprox'

  	Plug 'powerline/powerline'    

    Plug 'easymotion/vim-easymotion'
    Plug 'christoomey/vim-tmux-navigator'
    " Airline
    Plug 'vim-airline/vim-airline'
    Plug 'vim-airline/vim-airline-themes'
    
    Plug 'mhartington/oceanic-next'
call plug#end()

Ahora en el archivo init.vim, pegamos lo siguiente (arriba de todo)

source $HOME/.config/nvim/vim-plug/plugins.vim

Ahora entramos a nvim, entramos en modo comando con escape y luego los dos puntos y escribimos lo siguiente

:PlugInstall

Salimos con :q

Creamos la carpetas en la que tendremos los temasd (la carpeta estara dentro de .config/nvim)

mkdir themes
cd themes
touch airline.vim
nvim airline.vim

Y dentro de este, pegamos lo siguiente:

" enable tabline
let g:airline#extensions#tabline#enabled = 0
" let g:airline#extensions#tabline#left_sep = ''
" let g:airline#extensions#tabline#left_alt_sep = ''
" let g:airline#extensions#tabline#right_sep = ''
" let g:airline#extensions#tabline#right_alt_sep = ''

" enable powerline fonts
let g:airline_powerline_fonts = 1
let g:powerline_pycmd = 'py3'
" let g:airline_left_sep = ''
" let g:airline_right_sep = ''

" Switch to your current theme
let g:airline_theme = 'gruvbox'

" Always show tabs
set showtabline=2

Ahora en init tenemos que agregar lo siguiente

source $HOME/.config/nvim/themes/airline.vim

Agregon algunos atajos (esto es opcional)

mkdir keys
cd keys
touch mappings.vim
nvim mappings.vim

Y pegamos

nnoremap <C-n> :NERDTreeToggle<CR>
nmap <Leader>s <Plug>(easymotion-s2)

nmap <C-s> :w<CR>
nmap <C-q> :q<CR>

Agregamos el ultimo a init.vim

source $HOME/.config/nvim/keys/mappings.vim

Modo normal

Por defecto no podemos escribir, solo nos permite movernos con la j/k/l/h

  • dd corta una linea
  • d(cantidad de lineas) corto n lineas
  • yy copia una linea
  • y(cantidad de lineas)y copia n lineas
  • p pegamos la linea
  • u Retroseder en los cambios
  • Ctrl + r Rehacer

Modo Insert (entramos con la i)

Se utiliza para modificar el codigo

  • i, a o insert

Modo visual (entramos con la v)

Sirve para copiar y pegar de forma mas comoda (con el mause)

  • d cortar
  • y copiar
  • p pegar

Modo comandos (esc + :)

esc Para salir del modo insertar usamos , Cuando salimos, podemos mandarle parametros con :.

  • q para salir del archivo sin guardar
  • q! sale del archivo directamente y no pregunta
  • w solo guarda
  • wq!/x! sale y guarda
  • set nu agrega numeros en la consola
  • set background=dark
  • Ctrl + v/d pegar