GNU/Linux

====================================================
== Git                                            ==
====================================================
git log --oneline --decorate --all --graph 
--simplify-by-decoration

====================================================
== Vim                                            ==
====================================================

Utilisation
-----------
Ctrl-p : autocompletion
Ctrl-a : incrémente le nombre
Ctrl-a : sélection par bloc (sélection par colonnes != 
lignes)
dat : supprimer un tag XML
dit : supprime le contenu d'un tag XML
:make, :cn, :cl : Makefile
zt : place la ligne courant en haut de l'écran (très très 
utile avec zz).
En mode commande ou insertion : Ctrl-r, a : colle le contenu du registre a, Ctrl-r, = : mode calculatrice/script
En mode insertion : Ctrl-x, Ctrl-f : auto-completion des noms de fichiers.
Insérer le résultat d'une commande :r! ls

vimdiff:
---------
do - Get the version of the other file.
Between two files already opened:    :diffthis

.vimrc :
---------

" install ctrl+p

set guifont=Consolas:h11:cANSI

syn on
filetype indent on

set nocompatible
set backspace=indent,eol,start

colorscheme default
highlight Normal guibg=#f0f0f0
set background=light

filetype on             " enable file type detection
syntax on              " syntax highlighting

set ruler
set smartindent  " smart code indentation
set smarttab        " smart tabs
set ignorecase   " ignore la casse
set smartcase    " ignore la casse sauf si une majuscule est entrée
set laststatus=2 " Affiche le nom du fichier en permanence
set ic
set autowrite

set shiftwidth=4
set softtabstop=4
set tabstop=4
set cindent
set expandtab

set hls

set wildignore=*.o,*.obj,*~,*.pyc,*.aux,*.log
au BufNewFile,BufRead *.json   syn off

map j gj
map k gk
map <f4> :cl<cr>
map <f3> :cn<cr>
map <f2> :cprev<cr>
map <f9> :tabprev<cr>
map <f10> :tabnext<cr>
map <f11> :tabnew<cr>

map Q <ESC>

"Netrw config
let g:netrw_liststyle = 3

if has('gui_running')
    set guioptions=im
else
    set background=dark
end

" Use ~x on an English Windows version or ~n for French.
au GUIEnter * simalt ~n

" Run git grep with :grep
set grepprg=git\ grep\ -n

====================================================
== Apache2                                            ==
====================================================
Per-user directory with PHP
apt-get install apache2 php5 libapache2-mod-php5
a2enmod userdir

Dans /etc/apache2/mods-available/php5.conf
Commenter la ligne : php_admin_value engine Off
Dans /etc/apache2/mods-enabled/userdir.conf
et modifier la ligne AllowOverride pour autoriser les .htaccess (AllowOverride all)

====================================================
== Utilitaires                                    ==
====================================================
du -sh dossier : taille d'un dossier
du -hscL  *
/etc/rc.local : exécuter des scripts au démarrage
Réparer NTFS (The Disk contains an unclean file system) : ntfsfix (package ntfsprogs)

Programmation :
---------------
ack-grep : rechercher du code dans un répertoire de 
manière récursive (j'ai créé un alias : alias 
ack=ack-grep)
ctags : Crée un annuaire des déclarations avec la commande 
ctags -R *.
        Sous Vim : Ctrl+] pour aller à la 
déclaration du mot sous le curseur
(sous Windows avec un clavier azerty,
il faut écrire Ctrl+$
et :tag fonction pour aller à une déclaration
précise.
tidy : indenter un code HTML, le reformater

====================================================
== ctags : ajouter le langage Ada
====================================================
Dans le ~/.ctags ajouter :
--langdef=ada
--langmap=ada:.adb
--regex-ada=/(procedure|function)[ 
\t]*([a-zA-Z0-9_]+)/\2/d,definition/

Nb. on analyse uniquement les .adb, car les .ads ne 
contiennent (en principe) que les déclarations.

====================================================
== GNU Screen
====================================================
Ctrl+A,  | : Spliter la console verticalement
Ctrl+A,  S : Spliter la console horizontalement
Ctrl+A,  TAB : se déplacer entre les régions splités
Ctrl+A, Q : Garde seulement la région courante (split)
Ctrl+A, c : crée une console
Ctrl+A, K : supprime la console courante
Ctrl+A, p et Ctrl+A, n : previous ou next console

Copier coller dans le terminal :
Ctrl+A, Échappe
Déplacement avec h, j, k, l
Sélection d'un texte avec Espace, bouger, Espace
On ressort du mode copie, pour coller, il faut Ctrl+A, ]

Ctrl+A, d : détacher une session
screen -r : relancer screen sur une session en cours (attacher)


nohup
wget -c

====================================================
== Imprimer en livret sous linux   ==
====================================================
pdftops -paper A4 fichierPDF.pdf - | psbook | psnup -2 -q > mon-fichier.ps
Imprimer en recto-verso bords longs
(source: https://www.debian-fr.org/methode-pour-imprimer-un-livre-a-relier-t43124.html)

====================================================
== Eclipse                                            ==
====================================================

Pour utiliser les raccourcis de Vim sous Eclipse : Vrapper : http://vrapper.sourceforge.net/home/

====================================================
== Firefox
====================================================
A activer dans about:config : resistFingerprinting