- Introduzione
- Cosa è VIM
- Lista plugin
- Cosa è ZSH
- Lista plugin oh my zsh
- Automatizzare la creazione e gestione dei dotfiles
- Configurare VIM e ZSH
- FAQ
- Conclusione
I dotfiles sono usati per personalizzare il nostro sistema operativo, in pratica essi contengono i setup preferiti del nostro computer o dei nostri applicativi che possiamo utilizzare più volte su una o più macchine diverse. Il nome deriva dai file di configurazione nei sistemi Unix-like che iniziano con un punto (es. il file di configurazione di git chiamato " .gitconfig "). Questo repository configura VIM e ZSH con tutti i plugin usati da me in ambiente Ubuntu Desktop, Server e Arch Linux.
VIM (Vi Improved) nasce per fornire una versione migliorata del famoso editor di testo VI. È open source e multipiattaforma.
A partire dalla versione 6 sono state introdotte una serie di funzionalità che vanno dai plugin al controllo della sintassi e l'auto completamento per i maggiori linguaggi di programmazione. VIM è diventato con gli anni un vero e proprio tool di sviluppo ed è uno dei più usati al mondo dagli sviluppatori.
Di seguito la lista dei plugin da me usati che vanno dalla possibilità di esplorare il file system a scrivere applicativi in Python, dall'indentare correttamente il codice a secondo del tipo di file (JSON, XML, Dockerfile ed altri) o autocompletare il codice come un qualsiasi IDE e così via.
- VundleVim/Vundle.vim
- tpope/vim-fugitive
- preservim/nerdtree
- preservim/nerdcommenter
- vim-syntastic/syntastic
- valloric/youcompleteme
- altercation/vim-colors-solarized
- davidhalter/jedi-vim
- tpope/vim-surround
- godlygeek/tabular
- plasticboy/vim-markdown
- ekalinin/dockerfile.vim
- elzr/vim-json
- vim-airline/vim-airline
- Xuyuanp/nerdtree-git-plugin
- ryanoasis/vim-devicons
ZSH è una shell che può essere utilizzata come linea di comando interattiva e come un potente interprete per script di shell.
Zsh può essere vista come un'estensione della Bourne shell dotata di numerose migliorie, fra le quali alcune caratteristiche mutuate da bash, ksh e Tcsh.
Funzionalità:
- Autocompletamento programmabile che aiuta l'utente ad inserire sia le opzioni che gli argomenti per la maggior parte dei comandi più utilizzati, con supporto pre-attivato per svariate centinaia di comandi
- Condivisione della cronologia dei comandi fra tutte le shell attive
- Funzionalità estesa di globbing che consente di specificare i nomi file senza la necessità di utilizzare un programma esterno quale find
- Manipolazione avanzata di variabili/array
- Modifica di comandi multi-linea in un singolo buffer
- Controllo ortografico
- Varie modalità di compatibilità, ad esempio zsh può emulare il comportamento di una Bourne shell quando eseguita come /bin/sh
- Temi per i prompt, compresa l'abilità di posizionare parti del prompt sul lato destro dello schermo e di nasconderle automaticamente quando si sta inserendo un comando lungo
- Moduli caricabili, che provvedono, fra le altre cose, a fornire: interfaccia TCP completa, controlli per Socket di dominio locale, un client FTP e funzionalità matematiche estese
- Completamente personalizzabile
Oh-my-zsh è un framework che semplifica la gestione delle configurazioni per la shell zsh. Di seguito la lista dei plugin usati che vanno dalla gestione dei comandi di: Archlinux, Git, Heroku, Docker, Python, Pipenv e così via. Inoltre troverete un tema chiamato powerlevel10k che configura e rende unica la vostra shell e un simpatico easter egg.
- Powelevel10k
- git
- docker
- encode64
- history
- pip
- python
- systemd
- archlinux
- httpie
- heroku
- command-not-found
- gitignore
- ssh-agent
- pipenv
- ruby
Per creare in maniera semplice dei dotfiles ho usato un software chiamato chezmoi scritto in Go.
Installare chezmoi.
Per Ubuntu 16.04 LTS in poi:
snap install chezmoi --classic
Per Arch Linux:
pacman -S chezmoi
Creare la directory chezmoi sotto .local/share. Se non esiste nulla creare tutte le cartelle necessarie:
mkdir -p ~/.local/share/chezmoi
Clonare il repository:
git clone --depth=1 https://github.com/asrmarco13/dotfiles ~/.local/share/chezmoi
Andare all'interno del repository:
cd ~/.local/share/chezmoi
Inizializzare il repository:
chezmoi init
Applicare le configurazioni:
chezmoi apply
Per far funzionare il plugin devicons di VIM e il tema powelevel10k verrà installato un font raccomandato chiamato Meslo Nerd Fonts. Terminate quindi le configurazioni, modificare il font del proprio terminale scegliendo il MesloLGS Nerd Font. Andare poi nella home directory:
cd ~
Lanciare lo script di installazione del tema powelevel10k:
./.install_powerlevel10k.sh
Configurare powelevel10k:
source .zshrc
Dove posso trovare altri plugin da installare per la mia configurazione?
Idee, problemi o bug?
Aprite una segnalazione.
Alcuni plugin non sono più supportati e appena possibile li sostituirò. Attivate le notifiche sul progetto cliccando su watch.
Se l'idea vi è piaciuta lasciate un like e forkate il progetto 🍻