134 liens privés
Pour remplacer tous les liens vers des images dans un article, on utilise cette commande dans (neo)vim :
:%s/(images\//(\.\.\/images\/photos\/blog\//g
Pour supprimer une chaine de caractère :
:%s/CHAINE//g
MiniVim est un "simple" fichier .vimrc mais il fait ~450 lignes (!!) et comporte pas mal de choses intéressantes. Ça ne remplacera pas certains plugins mais pour faire une installation rapide, ça le fait!
(via http://korben.info/minivim-chainon-manquant-entre-vim-sublimetext.html )
J'oublie toujours comment bien gérer les "splits" sous Vim/NeoVim.
Je copie/colle l'article ci-dessous. J'ai aussi ajouté quelques trucs et modifié la mise en page :
| ==========
a) lors du lancement de vim
$ vim -o foo bar = ouvre foo et bar en split
$ vim -O foo bar = ouvre foo et bar en vsplit
b) lorsque vim est déjà lancé (^ est la touche CTRL)
^w s ou :split = partage l'écran en deux horizontalement
^w v ou :vsplit := partage l'écran en deux verticalement
Se déplacer dans les splits :
^w j = sélectionne le split d'en bas
^w k = sélectionne le split d'en haut
^w + = agrandit le split actif d'une ligne
^w - = réduit le split actif d'une ligne
Et dans les vsplits :
^w h = sélectionne le vsplit de gauche
^w l = sélectionne le vsplit de droite
^w > = agrandit le vsplit actif d'une colonne
^w < = réduit le vsplit actif d'une colonne
^w w = basculer au split suivant
Se déplacer avec HJKL ou les flèches directionnelles :
^w H ou ^w ← = déplacement vers la gauche
^w L ou ^w → = déplacement vers la droite
^w K ou ^w ↑ = déplacement vers le haut
^w J ou ^w ↓ = déplacement vers le bas
(note: Neovim permet aussi de sélectionner le split qu'on veut à la souris...)
Fermer les splits :
^w q ou :q = fermer le split courant
^w o ou fermer tous les splits sauf le split courant
:qa = fermer tous les splits en demandant confirmation si pas sauvegardé
:qa! = fermer tous les splits sans sauvegarder
| ==========
Autre source : https://appendrelibrement.wordpress.com/2011/03/04/vim-split/
À force de voir passer des articles vantant Neovim, j'ai eu envie d'essayer.
Quelques détails pendant l'installation :
Je suis passé à vim-plug pour la gestion des plugins. C'est vraiment pas mal du tout! Vim-plug télécharge lui-même les plugins via Github.
J'ai eu des soucis avec les plugins utilisant Python (Gundo et NERDTree dans mon cas). On peut tester le fonctionnement de python en tapant dans neovim ":python print 1" (par exemple). Si ça ne renvoie pas "1", on peut trouver de l'aide en tapant ":help nvim-python" directement dans Neovim.
L'aide conseille de faire :
$ sudo pip install neovim
Les plugins ont fonctionné ensuite.
Je vais essayer de faire un article un peu plus détaillé sur mon blog... Si je trouve le temps.
Un looong article sur Vim avec pas mal d'explications intéressantes. J'ai beau utiliser Vim très régulièrement, je suis toujours surpris du nombre de choses que je ne connais pas ou n'utilise pas correctement...
Encore un tutoriel sur Vim, propre et clair avec des astuces que je ne connaissais pas.
Procédure pour changer l'éditeur par défaut sur une Debian :
| ========
update-alternatives --config editor
Il existe 4 choix pour l'alternative editor (qui fournit /usr/bin/editor).
Sélection Chemin Priorité État
- 0 /bin/nano 40 mode automatique
1 /bin/nano 40 mode manuel
2 /usr/bin/vim.basic 30 mode manuel
3 /usr/bin/vim.nox 40 mode manuel
4 /usr/bin/vim.tiny 10 mode manuel
Appuyez sur <Entrée> pour conserver la valeur par défaut[*] ou choisissez le numéro sélectionné :2
update-alternatives: utilisation de « /usr/bin/vim.basic » pour fournir « /usr/bin/editor » (editor) en mode manuel
| ========
Un plugin pour Vim.
Suite à mon problème d'encodage ( voir http://links.simonlefort.be/?6HjX8A ), je me suis retrouvé avec un fichier qui ne passe plus dans la moulinette de Pelican (pour mon blog). L'erreur renvoyée par Pelican :
| ========
ERROR: Could not process ./article.md
| 'utf8' codec can't decode byte 0xe9 in position 208: invalid continuation byte
| ========
Voici comment convertir le fichier en forçant l'utf-8 :
| ========
$ vim article.md
:set bomb
:set fileencoding=utf-8
:wq
| ========
Pelican fonctionne parfaitement après ça. Je n'ai pas bien compris ce que fait la commande "set bomb" mais pas eu le temps de chercher.
J'ai eu un problème de "locales" sur mon serveur. Vim écrivait "é " à la place de "é", tous les accents merdaient ( "élé", ...)
J'ai modifié le fichier "/etc/environment" :
| ========
$ cat /etc/environment
LANGUAGE=fr
LC_ALL=fr_BE.UTF-8
LANG=fr_BE.UTF-8
| ========
J'ai ensuite lancé un "dpkg-reconfigure locales" pour tout régénérer.
| ========
$ sudo dpkg-reconfigure locales
(j'ai retiré toutes les locales sauf "fr_BE.UTF-8")
| ========
Dernière étape : Un redémarrage.
| ========
$ sudo reboot
| ========
Le problème est maintenant réglé. Pas compris comment c'est arrivé, je n'avais pas le soucis précédemment...
Une astuce pour se passer de l'IDE d'Arduino qui n'est vraiment pas terrible...
Encore une autre vidéo d'hackademy. Cette fois, ça parle d'OpenSSH et il y a des choses que je n'utilisais pas.
Une fois la configuration d'un serveur faite dans dans "~/.ssh/config", on peut éditer directement un fichier avec vim (ou autre).
Je cite l'article sous la vidéo :
| ========
Éditer un fichier distant
$ vim scp://webserver/myfile
| ========
Au boulot, j'utilise beaucoup rdesktop pour me connecter de ma Debian vers des serveurs windows. J'utilise des alias pour me faciliter la vie ( alias rd_SERVEUR = "rdesktop -u USER ...&" ) Mais je n'avais pas jusqu'à présent redirigé les sorties de rdesktop (STDOUT et STDERR) pour ne plus les voir.
J'ai rajouté ça aujourd'hui.
| ========
alias rd_SERVEUR = "rdesktop -u USER -d DOMAINE -x lan -g 1280x1000 IP_SERVEUR > /dev/null 2>&1 &"
| ========
Pour éditer mes nombreux alias, j'ai fait un "rechercher/remplacer" avec vim. (J'ai des alias rdesktop entre la ligne 115 et la ligne 156).
| ========
:115,156s/&\"/> \/dev\/null 2>\&1 \&\"/g
| ========
[Edit 06/08/2015 :
J'ai modifié mes alias pour utiliser screen afin de n'avoir vraiment aucun retour sur la commande :
| ========
alias rd_SERVEUR="screen -S NOM-SERVEUR -d -m rdesktop -u USER -d DOMAINE -x lan -g 1280x1000 IP_SERVEUR
| ========
Avec ça, je n'ai aucun retour dans le terminal, je peux lancer plusieurs sessions RDP à la chaine, etc... :-)
Je recopie ici un paragraphe sur l'édition en mode "bloc" qui permet d'ajouter un début de ligne pour tout un bloc.
| ========
Pour le plaisir, le troisième mode visuel est le mode "bloc" accessible par Control-v. Très pratique pour supprimer des colonnes de texte mais pas seulement. Pour le fun, passez en mode insertion et saisissez trois mots, un par ligne. Revenez en mode normal par Esc, allez sur le premier caractère du premier mot puis pressez Control-v. Sélectionnez ainsi les 3 premiers caractère de vos trois mots et pressez I (majuscule) puis Mot:, puis enfin Esc. Magie, vos trois mots sont maintenant précédés par ce que vous venez de taper.
| ========
Je résume :
On se place au début du bloc et on tape "Control + v" ( "-- VISUEL BLOC --" apparait en bas de l'écran).
On sélectionne les lignes où l'ont veut ajouter quelque chose (juste avec les touches directionnelles et/ou HJKL.
Quand on a sélectionné, on tape sur "I" (i majuscule) pour éditer le début de la ligne, on tape le texte qu'on veut rajouter et puis "ESC".
Un gros résumé des fonctions essentielles de Vim.
Tellement puissant... Je devais éditer un fichier .xml et je n'avais pas encore configuré le pliage dans Vim.
On rajoute dans le fichier ~/.vimrc :
| ========
$ vim ~/.vimrc
(...)
" pliage/dépliage
:set foldmethod=expr
:set foldexpr=indent(v:lnum)+1
(...)
| ========
Pour déplier : Juste se mettre sur la ligne de la "pliure" et appuyer sur la flèche droite du clavier.
Pour replier : se mettre où on veut plier et appuyer sur "z+a"
J'ai mis en place une bonne partie dans mon dernier article si tu ne l'as pas vu passer. ;-)
(voir http://links.simonlefort.be/?mD6T8g )
Content que ça te plaise ainsi qu'à Biniou. :-)
J'essaye de mettre le maximum de détails pour que ce soit accessibles à un débutant. Je me souviens d'avoir râgé pas mal de fois devant des tutoriels qui sautent des étapes clés en imaginant que "c'est connu" ou "c'est évident". Rien n'est évident quand on ne sait pas...
J'ai aussi envie de faire un petit script "vim-install.sh" qui téléchargerait toutes les dernières versions des plugins que j'ai présenté et ferait la bonne config dans "~/.vimrc". Pas encore eu le temps...
J'ai pas mal parlé de Vim ces derniers jours parce que j'ai remis à neuf ma config. Voici un petit résumé sur l'installation de quelques plugins que je trouve essentiels. ;-) N'hésitez pas si vous avez des remarques. (Les commentaires ne fonctionnent pas encore, j'ai pas fini de configurer Isso... Donc passez par Shaarli et je verrai vos réponses sur Shaarli.fr )
Si vous avez suivi mes derniers Shaarlinks, vous savez que je viens de réinstaller une Debian 8 et que je me recolle à la configuration de vim. Un détail que je n'avais jamais regardé de près : la possibilité d'avoir la même configuration pour root (sudo donc) et l'utilisateur.
Toute la configuration de vim se fait dans votre home, soit "/home/simon/" dans mon cas. Il y a le fichier .vimrc et le dossier .vim qui sont importants. C'est là qu'on va faire la configuration, installer des plugins, etc... Pour pouvoir utiliser la même configuration avec root ou avec sudo, il suffit de faire un lien symbolique vers les dossiers de votre home !
//sauvegarde éventuelle de votre config vim root/sudo :
$ sudo mv /root/.vimrc{,.bak}
$ sudo mv /root/.vim{,.bak}
//création des liens symboliques
$ sudo ln -s /home/simon/.vimrc /root/
$ sudo ln -s /home/simon/.vim /root/
(Remplacer "simon" par votre nom d'utilisateur, évidemment!)
Tout simple mais il fallait y penser. :-)
Cerise sur le gâteau, si vous avez configuré gundo ( voir http://links.simonlefort.be/?U-7aJw ), vous aurez un historique de toutes les modifications que vous faites sur vos fichiers sensibles ! ;-)