mywiki/linux/vim/vim.md

9.6 KiB

Vim

Vim è un editor di testo molto potente, che può essere ampliato ulteriormente tramite plugin vari.

Plugin Manager

Per poter installare dei plugin è necessario installare prima un plugin-manager.

Vundle

git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

Dopo aver clonato Vundle sulla propria macchina, inserire le seguenti righe di testo nel file .vimrc

" PLUGINS ---------------------------------------------------------------- {{{

" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'
"
" All of your Plugins must be added before the following line
" 

call vundle#end()            " required

" }}}

Installazione plugin

Installare un plugin è molto semplice, basta aggiungerlo nel file .vimrc, come da codice sottostante:

" PLUGINS ---------------------------------------------------------------- {{{

" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'
"
" All of your Plugins must be added before the following line
" 

Plugin 'jasonccox/vim-wayland-clipboard'
Plugin 'gabrielelana/vim-markdown'
Plugin 'itchyny/vim-cursorword'
Plugin 'preservim/nerdtree'
Plugin 'iamcco/markdown-preview.nvim'
Plugin 'iamcco/mathjax-support-for-mkdp'
Plugin 'alvan/vim-closetag'
Plugin 'mattn/emmet-vim'
Plugin 'jiangmiao/auto-pairs'
Plugin 'ryanoasis/vim-devicons'
Plugin 'frazrepo/vim-rainbow'
Plugin 'mg979/vim-visual-multi', {'branch': 'master'}
Plugin 'itchyny/lightline.vim'
Plugin 'voldikss/vim-floaterm'
Plugin 'mracos/mermaid.vim'
Plugin 'mzlogin/vim-markdown-toc'
Plugin 'bbrtj/vim-vorg-md'
Plugin 'sheerun/vim-polyglot'
Plugin 'ervandew/supertab'
Plugin 'Valloric/YouCompleteMe'

call vundle#end()            " required

" }}}zo

Una volta salvato il file, digitare :PluginInstall.

Quando l'installazione è completata, è buona norma cancellare la cache del buffer digitando il comando :bdelete.

È possibile ricercare plugin nel Web oppure tramite il comando :PluginSearch. Per aggiornare l'elenco locale dei plugin dal sito vimscripts digitare: :PluginSearch!

Alcuni plugin utili

Nel caso di neoclide, un plugin che abilita l'autocompletamento, da installare i seguenti moduli:

CocInstall coc-cmake coc-css coc-cssmodules coc-docker coc-emmet coc-flutter coc-highlight coc-html coc-htmlhint coc-html-css-support coc-json coc-ltex coc-markdown-preview-enhanced coc-markdownlint coc-omnisharp coc-prettier coc-pytho
n coc-sh coc-sql coc-vimlsp coc-xml coc-yaml coc-markdown-preview-enhanced coc-webview

Quindi eseguire:

cd ~/.vim/bundle/coc.nvim && git checkout release && yarn install && yarn build

vim

Comandi utili

Comando Funzione
gx Apre il link sotto al cursore nel browser
:m +/-n Sposta la riga sopra o sotto di n posizioni
"+y In Visual Mode, copia il testo selezionato nella clipboard del SO
vimv Da terminale, permette di rinominare cartelle e file coi comandi di Vim (https://github.com/thameera/vimv)
:args Seleziona dei file come argomenti. È possibile utilizzare i caratteri jolly
:argdo Permette di eseguire un comando su n files
gg=G Identazione automatica del codice
dG Cancella l'intero documento
^w In insert mode, cancella la parola precedente, dalla posizione del cursore
^h In insert mode, cancella la parola precedente, dalla posizione del cursore
^u In insert mode, cancella dalla posizione del cursore a inizio riga
^o In insert mode, permette di digitare un comando
das Cancella un'intera frase (sentence)
dap Cancella un intero paragrafo
gUU Tutta la riga in maiuscolo
guu Tutta la riga in minuscolo
( Sposta il cursore all'inizio della frase
) Sposta il cursore alla fine della frase
{ Sposta il cursore all'inizio del paragrafo
} Sposta il cursore alla fine del paragrafo
H, M, L Rispettivamente, sposta il cursore alla prima riga, a metà o all'ultima riga del viewport
^i, ^o In normal mode, sposta il cursore alla posizione precedente/successiva

Ad esempio:

:argdo %s/stringToBeReplaced/replacementString/g | update

update serve per salvare le modifiche automaticamente.

Collegamenti