El primer que has de saber és que pots obrir Vim amb un fitxer ja carregat, simplement des del terminal, escrius vim i el nom del fitxer que vols obrir (sempre que estigues en la carpeta que tinga eixe arxiu):
vim index.html
O per a neovim:
nvim index.html
Pots inclús passar diversos fitxers per a obrir-los de colp:
vim ./src/views/index.html package.json
Veure els fitxers oberts en Vim
Una cosa que recomane molt per a evitar embolics és utilitzar un plugin que mostre la barra dels fitxers oberts. En el meu cas, use vim-buftabline, però pots usar el que vulgues.
Obrir fitxers en Vim i Neovim
Bé, una vegada obert Vim, per a obrir un fitxer simplement has de prémer la tecla dels dos punts del teclat i escriure la lletra e i el fitxer que vols obrir, per exemple:
:e ./src/components/example.vue
En prémer enter hauries de tindre el fitxer obert, i si has instal·lat l’extensió de la barra, a dalt podràs veure el nom del fitxer que tens obert. Si executes de nou eixe comandament però passant un altre fitxer, se t’hauria d’obrir i afegir-se a la barra de fitxers oberts.
Per cert, si escrius el nom d’un fitxer que no existeix, afegeixes text i el guardes, el que has fet és crear el fitxer en la carpeta on estaves.
Llistar i obrir els fitxers d’una carpeta
Una cosa que molta gent no coneix sobre el comandament e és que pots passar un punt o una carpeta, exemples:
:e .
:e ./src/
En prémer enter el que s’obrirà és la llista de fitxers de la carpeta que has indicat (o de la carpeta actual si has posat el punt). En aquesta llista et pots moure utilitzant les clàssiques lletres h j k l
Quan prems enter en aquesta llista, si és sobre un fitxer, se t’obrirà directament, i si és sobre una carpeta, t’apareixeran totes les carpetes i fitxers interns de la mateixa (pots tornar enrere prement enter sobre la línia que té ../ o prement la tecla del guió –).
Canviar entre fitxers oberts
Hi ha un parell de comandaments en Vim que et permeten canviar entre els fitxers que tens oberts, concretament són els següents:
- :bprev Per a canviar al buffer anterior, és a dir, a l’últim fitxer que has modificat.
- :bnext Per a canviar al buffer següent, és a dir, al següent fitxer que has modificat; si no hi ha cap més, obri l’últim que has modificat.
Perquè et faces una idea, és com moure’t entre pestanyes obertes. Pots anar cap enrere a una pestanya o a la pestanya següent, i si no hi ha més, el cicle torna a començar.
Si t’has descarregat l’extensió que t’he recomanat abans, açò es veu molt més clar, perquè veus les pestanyes que tens obertes a l’esquerra de l’actual (les anteriors) i a la dreta, les següents.
Com fa molta peresa escriure aquests dos comandaments tot el temps, la majoria de la gent els assigna a una combinació de tecles.
En el meu cas particular, tinc la següent configuració en el fitxer ~/.vimrc:
map <C-d> :bnext<CR>
map <C-a> :bprev<CR>
imap <C-D> <Esc>:bnext<CR>a
imap <C-A> <Esc>:bprev<CR>a
Simplement assigne els dos comandaments a les tecles de Control + a i Control + d.
Arbre de carpetes complet amb creació de fitxers
Com que obrir carpetes i fitxers amb el comandament e a vegades es queda curt, és bastant habitual que la gent que treballa amb Vim es descarregue un plugin que afegeix un arbre de carpetes.
El que jo utilitze és el de nerdtree, que és molt famós. Una vegada l’hages instal·lat, pots executar el comandament :NERDTree per a obrir l’arbre de carpetes del directori actual.
Com que, òbviament, és molt pesat executar aquest comandament tot el temps, pots afegir una assignació de tecles; la que jo tinc posada en el .vimrc és la següent:
nmap <Leader>nt :NERDTreeToggle<cr>
En el meu cas, la tecla Leader la tinc assignada a la tecla coma, per la qual cosa simplement he d’escriure en mode normal ,nt per a obrir l’arbre.
Amb NERDTree es poden fer moltes més coses; ho tinc escrit a l’article de Ús de NERDTree en Vim per a tindre arbre de carpetes i fitxers 🚧.
Control + P en Vim per a cerca de fitxers
La combinació de tecles Control + P s’ha tornat un poc universal en tots els editors i IDEs per a programar. És un comandament que obri una finestra en la qual pots buscar noms de fitxers per a obrir-los, en lloc de navegar per l’arbre. Això és el que s’anomena un fuzzy finder.
En Vim hi ha diversos fuzzy finders. Abans usava el de fzf, però fa uns mesos vaig fer el salt i vaig canviar a telescope, mantingut per un dels creadors de Neovim.
L’únic inconvenient de telescope és que només funciona si utilitzes neovim. Si estàs utilitzant vim només, hauràs d’utilitzar el mencionat fzf.
El que m’agrada de telescope en comparació amb fzf és que permet veure en una finestra la previsualització del fitxer abans d’obrir-lo (això és una cosa que inclús no té el vscode).
El que he fet és, en el meu .vimrc, afegir una assignació per a obrir-lo amb la combinació de tecles Control + P:
nmap <C-P> :Telescope git_files hidden=true <CR>
En aquest cas està posat amb el mode git_files per a que només em lliste els fitxers que no estiguen en el gitignore (ignora node_modules, la carpeta .git i aquest tipus de coses).
Telescope és tan xulo que inclús permet fer cerques de paraules en tots els fitxers del projecte, t’ho conte tot en el seu article d’Ús del plugin de Telescope en Neovim 🚧.
Conclusió
De segur que existeixen més comandaments per a treballar amb fitxers en Vim, però ara mateix això és el que use. De totes maneres, aquest article l’aniré completant a mesura que vaja aprenent millors formes de treballar amb fitxers.
Article traït de https://diegologs.com/