Optimisation du profile .bashrc
# make bash autocomplete with up arrow bind '"\e[A":history-search-backward' bind '"\e[B":history-search-forward'
# make bash autocomplete with up arrow bind '"\e[A":history-search-backward' bind '"\e[B":history-search-forward'
Si jamais vous commencez à découvrir la chose super pratique qu’est un shortcode alors voici une petite astuce, si vous êtes sur Linux : comment lister les shortcodes présents.
Il suffit dans le shell
, d’aller dans votre répertoire WordPress et de taper cette ligne de commande :
find . -type f -print0 | grep -z php$ | xargs -0 grep 'add_shortcode' | more
Et vous aurez le listing de tous les endroits où on appelle cette fonction. Il ne vous reste plus qu’à regarder ce qu’ont fait les personnes ! Il existe même des shortcodes cachés dans certains thèmes, que les auteurs ont dû faire pour eux, mais qu’ils n’ont pas documenté ! Très pratique !
Exemple :
...ygen/library/functions/shortcodes.php: add_shortcode( 'entry-title', 'hybrid_entry_title_shortcode' );
...ygen/library/functions/shortcodes.php: add_shortcode( 'entry-author', 'hybrid_entry_author_shortcode' );
...ygen/library/functions/shortcodes.php: add_shortcode( 'entry-terms', 'hybrid_entry_terms_shortcode' );
...ygen/library/functions/shortcodes.php: add_shortcode( 'entry-comments-link', 'hybrid_entry_comments_link_shortcode' );
...ygen/library/functions/shortcodes.php: add_shortcode( 'entry-published', 'hybrid_entry_published_shortcode' );
...ygen/library/functions/shortcodes.php: add_shortcode( 'entry-edit-link', 'hybrid_entry_edit_link_shortcode' );
...ygen/library/functions/shortcodes.php: add_shortcode( 'entry-shortlink', 'hybrid_entry_shortlink_shortcode' );
...ygen/library/functions/shortcodes.php: add_shortcode( 'entry-permalink', 'hybrid_entry_permalink_shortcode' );
...ygen/library/functions/shortcodes.php: add_shortcode( 'post-format-link', 'hybrid_post_format_link_shortcode' );
...ygen/library/functions/shortcodes.php: add_shortcode( 'comment-published', 'hybrid_comment_published_shortcode' );
...ygen/library/functions/shortcodes.php: add_shortcode( 'comment-author', 'hybrid_comment_author_shortcode' );
...ygen/library/functions/shortcodes.php: add_shortcode( 'comment-edit-link', 'hybrid_comment_edit_link_shortcode' );
...ygen/library/functions/shortcodes.php: add_shortcode( 'comment-reply-link', 'hybrid_comment_reply_link_shortcode' );
...ygen/library/functions/shortcodes.php: add_shortcode( 'comment-permalink', 'hybrid_comment_permalink_shortcode' );
...gelines/includes/class.shortcodes.php: add_shortcode( $shortcode, array( &$this, $data['function']) );
...b/library/shortcodes.php:add_shortcode('gallery', 'gallery_shortcode_tbs');
...b/library/shortcodes.php:add_shortcode('button', 'buttons');
...b/library/shortcodes.php:add_shortcode('alert', 'alerts');
...b/library/shortcodes.php:add_shortcode('block-message', 'block_messages');
...b/library/shortcodes.php:add_shortcode('blockquote', 'blockquotes');
...ean-retina/library/shortcodes/cleanretina-shortcodes.php: * Creates new shortcodes for use in any shortcode-ready area. This function uses the add_shortcode()
...ean-retina/library/shortcodes/cleanretina-shortcodes.php: * @uses add_shortcode() to create new shortcodes.
...ean-retina/library/shortcodes/cleanretina-shortcodes.php: add_shortcode( 'the-year', 'cleanretina_the_year_shortcode' );
...ean-retina/library/shortcodes/cleanretina-shortcodes.php: add_shortcode( 'site-link', 'cleanretina_site_link_shortcode' );
...ean-retina/library/shortcodes/cleanretina-shortcodes.php: add_shortcode( 'wp-link', 'cleanretina_wp_link_shortcode' );
...ean-retina/library/shortcodes/cleanretina-shortcodes.php: add_shortcode( 'th-link', 'cleanretina_themehorse_link_shortcode' );
...ntra/includes/theme-shortcodes.php:add_shortcode('mantra-site', 'mantra_site_link_fn');
...ntra/includes/theme-shortcodes.php:add_shortcode('mantra-author', 'mantra_the_author_fn');
...ntra/includes/theme-shortcodes.php:add_shortcode('mantra-tag-cloud', 'mantra_tag_cloud_fn');
...ntra/includes/theme-shortcodes.php:add_shortcode('mantra-multi', 'mantra_multi_column_fn');
...ntra/includes/theme-shortcodes.php:add_shortcode('mantra-column', 'mantra_column_fn');
...ntra/includes/theme-shortcodes.php:add_shortcode( 'mantra-pullquote', 'mantra_pullquote_fn' );
...ntra/includes/theme-shortcodes.php:add_shortcode( 'mantra-button-light', 'mantra_button_light_fn' );
...ntra/includes/theme-shortcodes.php:add_shortcode( 'mantra-button-dark', 'mantra_button_dark_fn' );
...ntra/includes/theme-shortcodes.php:add_shortcode( 'mantra-button-color', 'mantra_button_color_fn' );
...ntra/includes/theme-shortcodes.php:add_shortcode('cryout-site', 'mantra_site_link_fn');
...ntra/includes/theme-shortcodes.php:add_shortcode('cryout-author', 'mantra_the_author_fn');
...ntra/includes/theme-shortcodes.php:add_shortcode('cryout-tag-cloud', 'mantra_tag_cloud_fn');
...ntra/includes/theme-shortcodes.php:add_shortcode('cryout-multi', 'mantra_multi_column_fn');
...ntra/includes/theme-shortcodes.php:add_shortcode('cryout-column', 'mantra_column_fn');
...ntra/includes/theme-shortcodes.php:add_shortcode( 'cryout-pullquote', 'mantra_pullquote_fn' );
...ntra/includes/theme-shortcodes.php:add_shortcode( 'cryout-button-light', 'mantra_button_light_fn' );
...ntra/includes/theme-shortcodes.php:add_shortcode( 'cryout-button-dark', 'mantra_button_dark_fn' );
...ntra/includes/theme-shortcodes.php:add_shortcode( 'cryout-button-color', 'mantra_button_color_fn' );
...artupwp/functions.php:add_shortcode('wp_caption', 'fixed_img_caption_shortcode');
...artupwp/functions.php:add_shortcode('caption', 'fixed_img_caption_shortcode');
...p:add_shortcode('wp_caption', 'img_caption_shortcode');
...p:add_shortcode('caption', 'img_caption_shortcode');
...p:add_shortcode('gallery', 'gallery_shortcode');
...p:add_shortcode( 'audio', 'wp_audio_shortcode' );
...p:add_shortcode( 'video', 'wp_video_shortcode' );
...-embed.php: add_shortcode( 'embed', '__return_false' );
...-embed.php: * @uses add_shortcode()
...-embed.php: add_shortcode( 'embed', array( $this, 'shortcode' ) );
...es.php: * add_shortcode('footag', 'footag_func');
...es.php: * add_shortcode('bartag', 'bartag_func');
...es.php: * add_shortcode('baztag', 'baztag_func');
...es.php:function add_shortcode($tag, $func) {
mysqldump -u root -pmysql wordpresslocal > 2013.12.19.wordpresslocal.sql
mysql -u root -pmysql -e "DROP DATABASE IF EXISTS wordpresslocal;" mysql -u root -pmysql -e "CREATE DATABASE wordpresslocal DEFAULT CHARACTER SET utf8;" mysql -u root -pmysql -e "USE wordpresslocal ; GRANT ALL PRIVILEGES ON wordpresslocal TO 'v69a6YK614454xA'@'localhost' IDENTIFIED BY 'nQ1e7NfDRXG2q6H';" mysql -u root -pmysql -e "USE wordpresslocal ; GRANT ALL PRIVILEGES ON wordpresslocal.* TO 'v69a6YK614454xA'@'localhost' IDENTIFIED BY 'nQ1e7NfDRXG2q6H';" mysql -u root -pmysql wordpresslocal < 2013.12.19.wordpresslocal.sql
Voici ce qu’il m’est arrivé : on a changé mon serveur d’endroit et de là, j’avais le message :
Agent admitted failure to sign using the key.
La solution trouvée qui a fonctionné est ici.
Je mets en gras les ordres shell à faire pour que ça fonctionne :
olivier@local-host$ ssh-agent $SHELL
olivier@local-host$ ssh-add -L
The agent has no identities.
olivier@local-host$ ssh-add
Identity added: /home/jsmith/.ssh/id_rsa (/home/jsmith/.ssh/id_rsa)
olivier@local-host$ ssh-add -L
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAsJIEILxftj8aSxMa3d8t6JvM79DyBV
aHrtPhTYpq7kIEMUNzApnyxsHpH1tQ/Ow== /home/olivier/.ssh/id_rsa
olivier@local-host$ ssh-copy-id -i remote-host
olivier@remote-host's password:
Now try logging into the machine, with "ssh 'remote-host'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
[Note: This has added the key displayed by ssh-add -L]
Peut être avez-vous déjà rencontré ce problème : vous faites toute une base de données en utf-8.
En suivant les recommandations ici, c’est facile. Le seul problème, et ils ne donnent pas de solution, c’est que lorsqu’on fait les requêtes, les résultats sont bien renvoyés en utf-8 mais il y a un décalage s’il y a des accents :
Comment faire pour éviter ce décalage ? Facile. La solution ici.
En fait dans votre fichier de configuration, il faut aussi configurer le client, pas uniquement le serveur.
Il faut ajouter la directive « default-character-set = utf8 » dans le fichier de configuration :
sudo vim /etc/mysql/my.cnf [client] port = 3306 socket = /var/run/mysqld/mysqld.sock default-character-set = utf8
Et puis relancer le service :
sudo service mysql restart
Et voici le résultat : tout est rentré dans l’ordre :
Tout est dans le titre.
J’ai souvent ce problème : je fais copier coller de code dans un article WordPress que je veux publier, je mets le code entre <code></code> mais le problème, c’est que les espaces de début sont ignorés et l’indentation est perdue.
Voici donc l’astuce, sous vi, pour remplacer tous les espaces uniquement au début de la ligne par .
C’est à dire que :
extend: 'Ext.panel.Panel',
devient :
extend: 'Ext.panel.Panel',
Ce que je ne veux pas bien évidemment.
J’ai posé la question ici : vim-regexp-help-change-spaces-to-nbsp.
Et je vous laisse y lire les réponses, mais la solution que j’ai retenue :
:%s/^ \+/\=repeat(" ",strlen(submatch(0)))
Site des vimgolfers : http://vimgolf.com/.
Vous en avez marre des espaces en fin de code qui ne servent à rien ?
Vous voulez vous conformer à beaucoup de pratiques classiques (Apache, horde, etc.) ?
Voici le petit truc qu’il vous manque, à ajouter dans votre fichier vim
:
" Ce code mettra en surbrillance rouge vif " tous les espaces inutiles après la fin de code : highlight WhitespaceEOL ctermbg=red guibg=red match WhitespaceEOL /\s\+$/
Ce code de configuration vim va mettre en rouge tous les espaces inutiles en fin de code.
Fabuleux non ? 😉
Merci à ce site.
J’ai été plus loin dans l’automatisation de Gimp.
J’ai voulu reprendre mes deux articles qui parlaient de Script-fu : le premier pour débuter ici, et le second qui passe à peine à la vitesse supérieure, qui explique l’assignation des variables ici.
Mais comme je suis un grand fan de Python et que tout a été fait pour pousser Python en avant dans Gimp, j’en ai profité.
Trois heures de travail avant d’y arriver.
On parle de script Python, mais ce sont des plugins.
Donc, lorsqu’on les installe, il faut les mettre dans le répertoire ~/.gimp/plug-ins/
et non pas ~/.gimp/scripts/
.
Ils doivent être exécutables. Donc :
chmod +x ~/.gimp/plug-ins/monscript.py
Enfin, allez chercher des exemples ici : http://registry.gimp.org/
Vous les installez et vous les lancez à partir de là vous avez tout ce qu’il vous faut.
Si vous avez lu ces trois informations avant de vous lancez dans l’aventure je vous aurais probablement fait gagner au moins une demi-journée.
Enfin, pour que la ligne de commande fonctionne sur les dernières versions de Gimp (2.6.8) à l’heure de l’écriture de cet article, il y a plein d’articles obsolètes sur le net. Je vais encore vous faire gagner des heures de recherche :
Voici un exemple complet d’un lancement en ligne de commande qui fonctionne :
gimp -i --batch '(python-fu-batch-to-transparent-indexed RUN-NONINTERACTIVE "/home/olivier/Bureau/france.php.png" "/home/olivier/Bureau/france.2.php.png")' -b '(gimp-quit 0)'
Et voici mon plugin tout simple que j’ai codé en 15 minutes, mais avant d’arriver là j’ai cherché pendant six heures…
Cliquez ici pour le télécharger.
Ce plugin transforme une image PNG en la même image, mais en transparente et en couleurs indexée.
Il n’est pas 100% terminé, car la couleur de transparence est codée en dur, mais il fonctionne très bien pour peu que votre couleur soit le blanc 🙂
Pour ce qui est de la méthode, je me suis très fortement inspiré de ce site.
Si je vous ai aidé n’hésitez pas à me laisser un message !
Il arrive parfois que lorsqu’on fait un scp, ça ne fonctionne pas, et on peut lire quelque chose comme :
>> scp root@olivierpons.fr:/var/www/html/pysoko.tar.bz2 .
root@olivierpons.fr's password:
C0644 129502 pysoko.tar.bz2
>>
Dans cet exemple, je veux récupérer le fichier :
pysoko.tar.bz2
qui est sur le PC distant dans le répertoire
/var/www/html/
sachant que le PC distant est nommé :
olivierpons.fr
.
En fait le problème est super simple : lorsque le programme scp
se connecte pour faire la copie, un shell du distant nommé olivierpons.fr
est ouvert, et par conséquent tout ce qu’il y a dans la configuration du shell est exécuté, donc tout ce qu’il y a dans le fichier de configuration du shell .bashrc
.
Pour faire simple, si vous avez fait un « echo
» quelque part dans le fichier de configuration du shell .bashrc
, changez le par tty -s && echo "
.
L’explication est dans ce site génial, qui explique tout sur le SCP, encore mieux que mon article, qui sort pourtant numéro un sur google France lorsqu’on tape scp linux
…
Le monde est injuste !
Super facile : l’outil tr
.
Exemple concret : je veux lister les fichiers d’un répertoire et tous les passer à vim
, par exemple pour y appliquer une macro.
Je les liste à la main du genre :
~/ # find ws -type f
ws/jsDecision.php
ws/jsDossierDocuments.php
ws/jsInfosEmprunt.php
ws/jsInternetDocumentDossierEditer.php
ws/jsListeFormulesGaranties.php
ws/jsLogin.php
Il suffit d’ajouter | tr '\r\n' ' '
(qui signifie « transforme tous les retours chariots en espaces ») :
~/ # find ws -type f | tr '\r\n' ' '
ws/jsDecision.php ws/jsDossierDocuments.php ws/jsInfosEmprunt.php ws/jsInternetDocumentDossierEditer.php ws/jsListeFormulesGaranties.php ws/jsLogin.php