linux
https://vimawesome.com/ plugin pila
neovim-en konfigurazioa ./config/nvim
:source % (berriro kargatzeko konfigurazioa)
:Tutor (VIM barruko tutoriala segitzeko)
https://yannesposito.com/Scratch/en/blog/Learn-Vim-Progressively/
Learning Vim in 2014 - Herding Lions
gida txiki bat hemen
para moverse en MODO NORMAL
hjkl:
w hurrengo hitzeko hasierara
e hurrengo hitzeko bukaerara
b aurreko hitzeko hasierara
0 esaldi hasierara
$ esaldi bukaerara
^ esaldi hasierara baina espazioak kontutan hartu gabe (indentazion hasierara)
para insertar texto
i - entra en modo insertar antes del cursor
a - entra en modo insertar despues del cursor
I - entra en modo insertar al inicio de la linea actual
A - entra en modo insertar al final de la linea actual
o - inserta una nueva linea debajo de la actual y entra en modo insert
O - inserta una nueva linea arriba de la actual y entra en modo insert
para borrar texto
d - visual moduan selekzionatuta dagoena borratzeko
p - pegatzeko kurtsorea eta gero (3p 3 aldiz pegatu)
P - aurreko linean pegatzeko
dd - linea osoa borratzeko (5dd ,,)
de - borratzeko kurtsoretik hitzaren bukaeraraino
db - borratzeko kurtsoretik hitzaren hasieraraino
dw - borratzeko hitza (d3w 3 hitz)
dW - borratzeko kurtsoretik esaldi bukaerano (sinboloekin)
d$ - borratzeko kurtsoretik esaldi bukaerano (sinbolorik gabe)
d0 - borratzeko linearen hasierarte
d^ - borratzeko linearen hasierarte (baina indentazioa kontutan hartuta)
x - kurtsorean dagoen karakterra borratzeko (X aurreko letra borratzeko)
para cambiar texto
c - cambia texto seleccionado (borra y entra en modo insertar)
C - cambia desde el cursor hasta el final de la linea
s - cambia caracter bajo la linea
cc - cambia el contenido completo de la linea actual
c0 - cambia desde el cursor hasta el inicio de la linea
c^- cambia desde el cursor hasta el primer caracter no blanco
c3w - cambia 3 palabras
cb - cambia desde el cursor hacia atras una palabra
~ - mayuskulak minuskula bihurtzen ditu edo baita alrEVEs(visual moduan selekzionatuta ere balio du)
g commands:
g~~ - alterna el caso (MAYUS/MINUS) de toda la linea actual
g~W - alterna el caso de la palabra bajo el cursor
gUw - convierte a mayusculas la palabra bajo el cursor
guu - convierte toda la linea actual a minusculas.
gUU - convierte toda la linea actual a mayusculas.
gv - reselecciona la ultima seleccion (con v , V,…) con cgv puedes cambiar la ultima seleccion
gn - reselecciona la ultima busqueda con / (con cgn puedes cambiar la ultima busqueda)
gi - se va al ultimo cambio que has hecho
gI - se pone en modo insertar desde la primera kolumna de la linea (aunque sea un espacio en blanco)
gcc - hilarak komentatzeko
g; - azkeneko aldaketa egin dan lekura mugitzen dizu baina deshacer egin gabe
g, - beste zentzuan aldaketetan mugitzeko.
g& - egin dan azkeneko aldaketa buffer osoan aplikatzeko (hau errezago da komando linea-ra jun eta aurreko komandora jun eta hasieran % jartzea baino)
g?? - hilara dana enkriptatu egiten du ez ikusteko inorrek
gT - cambia a la pestaña anterior
gt - cambia a la pestaña siguiente
global commands
:g/DEBUG/d (DEBUG hitza daukaten ilara danak borratuko ditu)
:g/DEBUG/p (“print” DEBUG hitza daukaen ilaran danak erakutsiko ditu)
:g/^/d ilara huts guztiak borratuko ditu (expresio regularrak erabiliz, ^ilaran hasiera eta $ ilara bukaera)
:g/^#/d # kin hasten diren ilara danak borratzen ditu
:v/URGENT/d URGENT hitza EZ daukaten ilarak borratuko ditu (g-ren alderantzizkoa)
:g/HIGH/m4 (HIGH hitza daukaten ilara danak 5.ilaratik (4+1) aurrera mugituko ditu, ordenatzeko erabili daiteke)
:g/LOW/M (LOW hitza daukatena ilara danak dokumentuaren bukaerara mugituko ditu)
f/F t/T
f - horizontal jump .
f( move forward to next (, F( move backward to next ( . gero esc zapalduta kurtsorea mugitzen da.
t - f bezela baina aurreko kolumnara mugitzen da.
df/ - / arte borratuko du / barne
dt/ - / arte borratuko du / ezik.
vf/ - / arte selekzionatuko du v moduan,
; - azkeneko jump berrio aurrera
, - aurreko jump atzera
external filters
V kin selekzionatuta lista bat : eman (komando moduan sartuta) eta ! sort ordenatu egingo ditu sort komandoakin.
:%!sort egiten badegu buffer osoa ordenatuko du
:%!sort -r | unique lista dana atzetik aurrera ordenatuko du eta duplikatuta daudenak borratuko ditu.
:.!figlet ilara osoa figlet programakin ART moduan jarriko du.
increments /decreasin
ctrl+a - zenbakiari 1 gehitzen dio
ctrl+x - zenbakiari 1 kentzen dio
10ctrl+a - zenbakiari 10 gehitzen dio
baita funtzionatzen du orduen formatuakin (8:00) eta konfiguratu ezkero alphanumerikoekin (:set nrformats+=alpha), letrekin.
replace
r - reemplaza el caracter bajo el cursor por otro caracter que escribas
kursorean dagoena “e” batekin aldatzeko re. R -kin (replace mode-n sartzen zea) karakter bat baino gehiago aldatu daitezke
visual moduan selekzionatzen dezuna gero replace moduan jarrita - emanda dana - batekin reemplazatzen du
objetos de texto
diw - elimina la palabra bajo el cursor
ciw - cambia la palabra bajo el cursor
ci( - cambia todo el contenido dentro de los parentesis (ez du inporta nun zauden ilaran)(change inside parentesis)
da( - elimina todo el contenido incluyendo las parentesis (delete around parentesis)
di{ - elimina todo el contenido dentro de un bloque de llaves {}( ilara asko hartu ditzake)
ci’ - cambia todo el contenido dentro de las comillas ‘‘
vi( - selecciona todo el contenido dentro de las siguientes parentesis
yiw - copia la palabra bajo el cursor
y2w - copia 2 palabras
yi( - copia el contenido dentro de las parentesis ( )
yi’ - copia el contenido dentro de las comillas simples ‘‘
. azken komandoa errepikatzeko
edicion de lineas
J - junta la linea actual con la siguiente (agregado un espacio)
gJ - junta la linea actual con la siguiente (sin agregar espacio)
>> - mueve la linea o lineas seleccionadas un tab hacia la derecha
<< - mueve la linea o lineas seleccionadas un tab hacia la izquierda
== autoindenta
gg=G - ajusta el indentado de todo el documento
scrolling
Ctrl-d : beheraka zati haundi bat jeisten da kursorea
Ctrl -u: goraka
ctrl -f: beheraka salto haundiago
ctrl -b: goraka salto haundiagoa
ctrl -e: scroll hilara bat behera
ctrl -y: scroll hilara bat gora
H: pantallako hasierara
M: pantallako erdira
L: pantallako behekaldera
zz: kurtsorea pantallan erdira
zb: kurtsorea behera
zt: kurtsorea gora
<start position><command><end position>
For example : 0y$ means
0→ go to the beginning of this liney→ yank from here$→ up to the end of this line
command barruan edozein komando jarri daiteke, d (delete), v (visual select), gU (uppercase), gu (lowercase), etc…g
A useful tip is: dt" → remove everything until the ".
ciw (change inside word) texu blokeekin jolasteko.
ci( (parentesis artekoa aldatzen du)
Command moduan:
:g/hitza/d (hitza dagoen hilara danak borratzen dira)
: (fletxakin gora eta behera historikoan ibili daiteke)
q: comando moduan sartzen zea historikoan eta gero bertan /-kin filtratu eta operazio pila egin daitezke
q/ komando moduan sartzen zea erabilitako filtroetan
:set nowrap (momentu baterako aldatzeko)
:e artxibo bat zabaltzeko
:e! artxiboa berriro zabaltzeko aldaketak gorde gabe
:help index (vim-en komando guztien manuala erakusten dizu berri baten)
:set nonumber (zenbakiak kentzen ditu)
: komand moduan gaudenean fletxekin aurreko komandotan ibili dezakegu
markak
ma zauden ilaran marka bat gehitzeko a izenakin (edozein letra edo zenbaki) mA globala
‘a berriro marka horretara juteko
‘A globalki , nahiz eta beste artxibo baten egon markara juteko
:marks marka guztiak listatzeko
ma beste ilara baten jartzen badezu
:delm a (a marka borratzeko)
:delm a-z letra duten marka danak borratzeko
Completion: <C-n> and <C-p>.
In Insert mode, just type the start of a word, then type <C-p>, magic…
ctrl +G: ze ilaratan zauden ikusteko. gero 486G egin ezkero hilara hortara juten zea.
% zapaldu ezkero ( [ edo { baten gainean bere bikotearen gainean jarriko da.
(kalkuladorako * tekla) zapaldu ezkero kurtsorea dagoen hitzaren berdina dan hurrengora jungo da. (# ekin aurrekoa)
:s/thee/the thee textua the -gatik aldatzen du (bakarrik kurtsorea jarrita dagoen hilararen lehenengo thee topatzen du)
:s/thee/the/g (kasu hontan hilarako thee danak aldatzen ditu)
:4,7s/thee/the/g (4 eta7 hilaretan dauden danak aldatuko ditu). visual moduan selekzionatuta
Visual moduan parrafoa aukeratzen bada eta s/hitza/hitzBerria parrafoan bakarrik
:%s/thee/the/g (fitxero osoan aldatuko du)
:%s/thee/the/gc (fitxero osoan aldatuko du baina konfirtmazioa eskatzen)
:! edozein komando ejekutatzeko :!ls
VISUAL moduan behin selkezionatuta zeozer : ematen badiogu :<,> azaltzen da eta w TEST jarri ezkero beste artxibo bat gordeko du selekzionatutako textua gordeta.
:r TEST egiten badegu TEST artxiboan dagoen textua kurtsorea dagoen lekuan insertatuko du. :r !ls egiten badegu ls komandoaren irteera pegatuko du.
deshacer y rehacer u (U linea osoa) c-r
para guardar un archivo :w archivo_duplicado.txt (en el mismo directorio)
para abrir un archivo :e nuevo_archivo.txt (si no existe lo va a crear)
Visual selection: v,V,
v - cambia a modo visual
V - cambia a modo visual line (selecciona toda la linea)
visual block
I - inserta texto antes del primer caracter de cada linea seleccionado
A - inserta texto despues del primer caracter de cada linea seleccionado
o - mueve el cursor al otro extremo de la seleccion
para insertar un guión en los inicios de unas lineas: colocarte en el inicio de la linea, lueg c-v y con jk selecionar las lineas y luego shift -i , escribir el guion y esc
borratzeko guioi hoiek jarri guioian gainean c-v eta jk-kin selekzionatu eta gero d
y (yank)(copy)(kopiatzeko)
p (put) (paste) (pegatzeko hurrengo ilaran) P (pegatzeko aurreko ilaran)
behin selekzionatuta zeozer : ematen badiogu :<,> azaltzen da eta w TEST jarri ezkero beste artxibo bat gordeko du selekzionatutako textua gordeta
busquedas en el documento
/ - busca hacia adelante la palabra o patron que escribas
n - repite la ultima busqueda hacia adelante
N - repite la ultima busqueda hacia atras
:noh - (no highlights , limpia el resaltado de busqueda)
? - busca hacia atras la palabra o patron que escribas
(*) (parentesis gabe, busca hacia adelante la palabra bajo el cursor)
(#) (parentesis gabe, busca hacia atras la palabra bajo el cursor)
sustituciones de texto
/const -ekin const danak topatzen ditu eta n-kin hitz danetik mugitu dezakegu. ciw ematen badiogu eta var gauden hitza aldatzen du eta gero n eta .(repeticion de comando) egiten badegu banaka aldatzen jungo gea.
:s/palabra1/palabra2 - sustituimos palabra1 por palabra2 en esa linea
:1,4s/palabra1/palabra2 - sustituimos palabra1 por palabra2 de la linea 1 a la 4
si seleccionamos antes y luego damos : aparece :‘<,’>s/palabra1/palabra2 sustituimos en el rango seleccionado
:%s/palabra1/palabra2 - sustituimos en todo el documento
:%s/palabra1/palabra2/c - nos da opciones individuales para cada caso
:s/palabra1/palabra2/g - sustituimos palabra1 por palabra2 en toda la linea (tambien en el caso que tenemos la misma palabra repetida)
tambien se puede combinar :s/palabra1/palabra2/gc
https://www.youtube.com/watch?v=eXo7Yo0Uc-w&list=WL&index=22
registers
:reg - para listar todos los registros
1-9 son los que guarda automaticamente
“a - “z - registers personalizados
“” - guarda el ultimo texto copiado o borrado
“0 - guarda el ultimo texto copiado
“1 - “9 - guarda historial de cosas borradas
“9p - copia el registro 9
“ayy - copia toda la linea y la guarda en el register a
“ap - pega el register a
“ - guarda el contenido del portapapeles (“p para pegarlo, aunque no esté el portapapeles sincronizado)
“+ - guarda el contenido del portapapeles (windows)
“: - guarad el ultimo comando ejecutado
“% - guarda la ruta del archivo actual
“/ - guarda la ultima busqueda realizada
makroak
q
qq - comienza a grabar un macro en el registro “q
q - detiene la grabacion de macro
@q - ejecuta la macro grabado en el registro “q
@@ - repite la ejecucion del último macro usado
5@@ - repite 5 veces la ejecucion del ultimo macro usado
si seleccionamos con v luego podemos aplicar la macro a todo lo seleccionado
:help (laguntza leihora juteko). gero ctrl+w ekin bi leihoen artean mugitzeko. betiko moduan :q lehioa ixteko. :help w (w -ri buruz lagunza topatzeko)
:e sartuta ctrl+d -kin e-kin hasten diren komando guztial azaltzen zaizkizu eta tabuladorekin aukeratzen dezu.
jumps
Ctrl-o allows you to jump back to your last jump location. Repeating it multiple times allows you to quickly jump back to the last file or code chunk you were working on, without having to keep the details of where that code is in your head. You can then move back up the chain with ctrl-i
:h jumplist
:jumps
Buffers: buffer-ak lanean zabiltzan artxiboak dira. bat baino gehiago zabaldu dezakezu
:e
ls - muestra la lista de buffers abiertos
:bp - cambia al buffer anterior en la lista
:bn - cambia al buffer siguiente en la lista
:b3 - cambia al buffer 3
:bf - cambia al primer buffer de la lista “first”
:bl - cambia al ultimos buffer de la lista “last”
:bd - cierra el buffer actual y lo elimina de la lista de buffers
:%bd - cierra todos los buffers abiertos sin salir de vim
:wa - guarda todos los buffers abiertos
:bufdo %s/palabra1/palabra2 - hace una sustitucion en todos los buffers abiertos
:wqa - guarda y cierra todos los buffers abiertos
:qa! - cierra sin guardar todos los buffers
ventanas
:sp - divide la ventana horizontalmente
:vp - divide la ventana verticalmente “vertical split”
Ctrl w w - cambia a la siguiente ventana
ctrl w h - cambia a la ventana derecha
ctrl w j - cambia a la ventana inferior
ctrl w k - cambia a la ventana superior
ctrl w l - cambia a la ventana izquierda
ctrl w - - disminuye la altura de la ventana
ctrl w + - aumenta la altura de la ventana
ctrl w > - incrementa el ancho de la ventana
ctrl w < - disminuye el ancho de la ventana
5ctrl w - - disminuye la altura de la ventana 5 lineas
ctrl w _ - maximiza la altura de la ventana
ctrl w | - maximiza el ancho de la ventana
ctrl w = - iguala el tamaño entre todas las ventanas
:q - cierra la ventana (no el buffer)
pestañas
son conjuntos de ventanas (no es como en visual code donde cada pestaña es un archivo) ez da asko erabiltzen
:tabnew - crea una nueva pestaña vacia
:tabn | gt -cambia a la siguiente pestaña
:tabp | gT - cambia a la pestaña anterior
:tabclose - cierra la pestaña actual
:tabonly - cierra todas las pestañas excepto la actual
neovim
~/.config/nvim
├── lua
│ ├── config
│ │ └── lazy.lua
│ └── plugins
│ ├── spec1.lua
│ ├── **
│ └── spec2.lua
└── init.lua
options.lua izateko erabiltzen duena hasierako init.lua artxiboan deitu behar zaio:
require(“config/options”) komandoarekin
instalando gestor de plugins:lazy.nvim https://lazy.folke.io/installation
:Lazy (lazyvim eko aukeratara sartzen zea)
colorscheme (nvim-eko temak dira)
atajos de teclado
https://victorhckinthefreeworld.com/2020/03/04/que-es-la-tecla-de-vim-y-como-modificarla-a-nuestro-gusto/
Konfigurazioan:
let mapleader = ” ” (normalean space da baina nahi dezuna jarri daiteke)
nmap <leader>d }d3j (space + d ematen diogun bakoitzean hurrengo 3 hilarak borratzen ditu)
themes
https://vimcolorschemes.com/
kodigon , colorscheme ( eta hemen jartzen dezuna izango da aukeratzen dezun theme-a). aurretik plug-a instalatu behar da https://www.youtube.com/watch?v=uTdZo37q00U&list=PLS-JSpK0eFuakKpZlAGCn0VBQeu1PGlji&index=5&ab_channel=4strodev
Clipboard
https://juncotic.com/portapapeles-entre-vim-y-el-sistema-gnu-linux/
los registros:https://atareao.es/tutorial/vim/los-registros-de-vim/
""el registro por defecto"0a"9registros numéricos"-el pequeño registro borrar"aa"zregistros nominales":,".,"%,"#registros de solo lectura"=el registro de las operaciones matemáticas"*,"+,"~los registros del portapapeles"_el registro agujero negro"/el registro de las búsquedas
Terminalera juteko vim-etik
:terminal
pluginak instalatzeko
plugins karpetan *.lua artxiboa kargatu (beti aurretik return jarri behar da)
snacks.nvim https://github.com/folke/snacks.nvim
plugin asko dauzka barruan explorer, snacks(picker)
explorer
space + e: abrir/cerrar explorer
mugitzeko lehioko atajoak: ctrl w l,h
? atajoak ikusteko
a artxiboak edo karpetak/ gehitzeko karpeta/artxibo.txt
d borratzeko
/ bilatzeko
enter-ekin karpetak zabaldu eta itxi
snacks (acceder ficheros dentro del directorio de trabajo)
space+ space: artxiboak bilatzeko
space+, ; buffer-ak listatzeko. gero idatzitako filtratzen du eta artxiboan sartu. edo esc eman eta hjkl -kin listan ibili eta enter-ekin sartu
space+/: grep bat egiten du (artxibo barruko textuan bilatzen)
flash
find avanzado
s (characters) eta salto egiten dezu bilatutako letra edo hitzera
treesitter
https://github.com/nvim-treesitter/nvim-treesitter?tab=readme-ov-file#adding-parsers
parser desberdinak kargatzeko, gero nvim-ek jakiteko ze lenguaia dan
pluginan barrun sartu behar dira lsp izenak
LSP (language server protocol)
autocompletado, deteccion de errores,.. lenguaia bakoitzantzat
mason.nvim pluginakin errezena lsp-ak instalatzeko
https://github.com/mason-org/mason.nvim?tab=readme-ov-file
:Mason , gero /css bilatzeko eta gero i instalatzeko (baina oraindik ez du funtzionatzen)
nvimlspconfig bidez instalatu behar da lsp cliente bakoitza:
https://github.com/neovim/nvim-lspconfig/blob/master/doc/configs.md
autocompletado
blink pluginakin
? laguntzan sartzeko
find (fzf)
:comand moduan sartu eta dokumentuak topatzen ditu eta zabaldu editatzeko. defektuz zauden direktorion bakarrik topatzen ditu baina path-en (downward search) jarri ezkero fzf bezela funtzionatzen du
:set path egiten badegu path=.,, (actual directory)
:set path+=,b
:find pru (eta tab teklarekin danak topatzen ditu)
:b pru (beste buffer baten zabalduko du)
:sfind pru(split horizontal)
:vertical sfind (vertical split)
betirako aldatzeko options.lua
vim.opt.path:append(”**”)
Telescope (fuzzi finder fzf)
https://vimawesome.com/plugin/telescope-nvim-care-of-itself
nere kasuan leader
nnoremap <leader>ff <cmd>lua require('telescope.builtin').find_files()<cr>
nnoremap <leader>fg <cmd>lua require('telescope.builtin').live_grep()<cr>
nnoremap <leader>fb <cmd>lua require('telescope.builtin').buffers()<cr>
nnoremap <leader>fh <cmd>lua require('telescope.builtin').help_tags()<cr>
lazyvim
:Lazy (eguneraketak lanzatzeko gero U-kin)
https://lazyvim-ambitious-devs.phillips.codes/
aurretik hauek instalatu behar dira.
fzf : sudo apt install fzf
ripgrep: sudo apt install ripgrep
fd: sudo apt install fd-find
-
Make a backup of your current Neovim files:
# required mv ~/.config/nvim{,.bak} # optional but recommended mv ~/.local/share/nvim{,.bak} mv ~/.local/state/nvim{,.bak} mv ~/.cache/nvim{,.bak} -
Clone the starter
git clone https://github.com/LazyVim/starter ~/.config/nvim -
Remove the
.gitfolder, so you can add it to your own repo laterrm -rf ~/.config/nvim/.gitStart Neovim!
nvim
tip
It is recommended to run :LazyHealth after installation. This will load all plugins and check if everything is working correctly.
space +e treesitter (zabaldu eta ixteko) gero karpeta gainean jarrita a ematen badiogu artxibo berria sortzen du, y kopiatu, p pegatu,…
space +ff (artxiboak bilatzeko fzf-ekin)
gcc visual selekzioa komentatzeko
Artxiboak zabaltzeko:
nvim prueba.txt beste_prueba.txt -O (bi lehiotan bertikalen zabaltzen ditu biak, -o horizontalen)
nvim prueba.txt -c “/Nerd” (c -kin komandoak sartu daitezke, kasu hontan Nerd hitzak filtratu eta lehenengora juten da)
vim -d prueba.txt beste_prueba.txt (diff bezela zabaltzen ditu)
vim -R prueba.txt (readonly bezela zabaltzeko)
:help (laguntza ikusteko lehio berri baten)
:h text-objects (zuzenen nahi dezun laguntza ikusteko)
helix
vim-en alternatiba pluginik instalatu beharrik gabe
helix