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 :
---------
syn on
filetype indent on

colorscheme default
set background=light

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

" display invisibles caracters (to check indent)
set listchars=tab:>-,trail:~,extends:>,precedes:<
set list

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

map  jzz
map  kzz

map j gj
map k gk

set shiftwidth=4
set softtabstop=4
set tabstop=4
set cindent
set expandtab "Use spaces instead of tabs :retab permet de remettre les tabulations du fichier suivant la configuration de vim

au BufNewFile,BufRead *.tex           set spell
au BufNewFile,BufRead *.tex           set spelllang=en
au BufNewFile,BufRead *.lus,*.lv6,*.lv4,*.scade  set filetype=ada

"ignore certains fichiers pour l'autocompletion
set wildignore=*.o,*.obj,*~,*.pyc,*.aux,*.log

map j gj
map k gk
map  :make run
map  :make run_iss
map  :make
map  :cl
map  :cn
map  :cprev
map  :prev
map  :n

"disable Ex-mode
map Q 

====================================================
== 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 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/

====================================================
== HubiC : bug sous Fedora
====================================================
Solution: https://forums.hubic.com/showthread.php?270-beta-Linux-ligne-de-commande
export DBUS_SESSION_BUS_ADDRESS=`dbus-daemon --session --fork --print-address`