Gestionnaire de plugins pour VIM

Alors suite à une embuscade, j’ai du faire un article sur l’installation de la dernier version d’emacs et maintenant mon blog me semble tout déprimé c’est sensible ces petite bête. Donc pour lui remonter le moral,  je fais un article sur l’éditeur de texte vim.

Et pour un premier article sur ce logiciel,  je vous propose de vous présenter un anneau plugin pour les gouverner tous. Il a pour petit nom vundle, la version courte de  Vimbundle et il va nous être très pratique pour mettre en place une configuration complète de vim. En effet si vous êtes un utilisateur de vim vous avez plein de plugins installés dans votre dossier ~/.vim ou à partir du gestionnaire de paquet de votre distribution. Et la ça devient rapidement le bordel pour mettre à jour et savoir ce qui est activé.

Vundle va donc gérer

  • l’installation
  • la mise à jour
  • la suppression
  • la recherche

de vos plugins.

Vous vous dites mais c’est excellent (ou pas :/).

Installation de vundle:

On le retrouve sur le site github pour l’installer c’est tout simple

<code>git clone http://github.com/gmarik/vundle.git ~/.vim/bundle/vundle

(bon bien sur vous avez git sur votre machine )

Exemple de configuration de vimrc:

set rtp+=~/.vim/bundle/vundle/
call vundle#rc()

" original repos on github
Bundle 'tpope/vim-fugitive'
Bundle 'lokaltog/vim-easymotion'
Bundle 'rstacruz/sparkup', {'rtp': 'vim/'}
" vim-scripts repos
Bundle 'L9'
Bundle 'FuzzyFinder'
Bundle 'rails.vim'
" non github repos
Bundle 'git://git.wincent.com/command-t.git'

J’ai piqué l’exemple de l’auteur car il y a plus de cas d’utilisation que dans mon vimrc.
On voit trois type de dépôt

  • dépôt github l’url de la page de présentation sans https://github.com
  • l’annuaire "officiel" de vim (mais c’est aussi du github https://github.com/vim-scripts/ :) ), c’est le nom du plugin tout simplement (voir  le lien au dessus ou utiliser les outils de vundle pour avoir la liste des plugins)
  • autre dépot git, l’url du dépot

Les commandes:

Installation des plugins configurés dans votre .vimrc:

 :BundleInstall

Installation du plugin donnés en argument (ça ne le rajoute pas dans votre vimrc, pensez à le rajouter)

:BundleInstall html5.vim

Mise à jour:

:BundleInstall!

Recherche des plugins en rapport avec l’html (par exemple):

:Bundles html

Mode interactive

:Bundle! html

Mise à jour de l’ annuaire (besoin du paquet curl)

:Bundles!

Nettoyage suppression des plugins présents dans votre dossier bundle mais pas présent dans votre vimrc:

:BundleClean

Je pense que j’ai fais le tour de ce plugin, vous avez la tous les outils pour l’utiliser.

Commentaires (3)

Installation d’emacs 24

Cette version d’emacs est en développement donc pour l’installer il faut faire une petite compilation voila les étapes

Installation des dépendances

sudo apt-get install build-essential xorg-dev libgtk2.0-dev libjpeg-dev libgif-dev libtiff-dev libm17n-dev libpng12-dev librsvg2-dev libotf-dev texinfo

ça devrait être suffisant.

Téléchargement des sources

mkdir ~/Source
cd Source
git clone git://git.sv.gnu.org/emacs.git

C’est long donc c’est l’occasion d’aller faire une pause café ;-) (ou coca)

Configuration

cd emacs
./autogen.sh

La vous devez avoir quelque chose comme

You can now run `./configure'.

si vous avez autre chose il doit manquer quelque chose sur votre machine

./configure --prefix=/opt/emacs

Pour l’installation d’un logiciel compilé je préfère les mettre dans le dossier /opt
Le résultat devrait ressembler à quelque chose comme ça

configure: creating ./config.status
config.status: creating Makefile
config.status: creating lib/Makefile
config.status: creating lib-src/Makefile
config.status: creating oldXMenu/Makefile
config.status: creating doc/emacs/Makefile
config.status: creating doc/misc/Makefile
config.status: creating doc/lispintro/Makefile
config.status: creating doc/lispref/Makefile
config.status: creating src/Makefile
config.status: creating lwlib/Makefile
config.status: creating lisp/Makefile
config.status: creating leim/Makefile
config.status: creating test/automated/Makefile
config.status: creating src/config.h
config.status: src/config.h is unchanged
config.status: executing depfiles commands
config.status: executing mkdirs commands
config.status: executing epaths commands
creating src/epaths.h
[ -r "/home/tyrus/Source/emacs/src/config.in" ] || ( cd /home/tyrus/Source/emacs && autoheader )
config.status: executing gdbinit commands

si c’est pas le cas vous devez avoir un probléme de dépendance :/ bonne chasse pour trouver le bon paquet.
Si vous avez des soucis, indiquer le dans les commentaires.

Compilation

Tout simplement

make -j 2

La c’est encore très long surtout si vous avez une machine pas très rapide. Je n’ai pas les dernière ligne du make sans erreur mais je crois que c’est assez claire.

Installation

sudo make install

Test

/opt/emacs/bin/emacs

Ça devrait ouvrir emacs euh la je vous laisse vous débrouiller car moi et emacs ça fait 2. Ouai c’est le comble de faire un article sur l’installation d’un programme qu’on utilise pas.

Poster un commentaire

Liste de bons liens pour apprendre html/css/js

Poster un commentaire

SQL dans Firefox

Pour remettre un petit peu de vie dans ce blog, je vous propose un article de pure bidouille. On va tripatouiller les fichiers de configuration de firefox pour obtenir des informations telles que l’historique, les marques page …

Quand on fait une recherche  sur l’amélioration des performances de  firefox, on tombe souvent sur ce type d’article par exemple (j’aurais pu choisir un autre site, il y a une foule d’articles sur le sujet). Ça parle d’appliquer l’action vacuum sur les fichiers de configuration de firefox. Ok c’est cool on a un firefox plus speed (je suis pas sur que ça change grand chose) mais c’est pas très fun. Le plus intéressant, les fichiers de configuration sont des basses de données tournant avec sqlite. Donc ça devient super simple de récupérer ces informations pour les utiliser dans une autre application par exemple.

Enfin on arrive aux ligne de commande. Je vous laisse vous débrouiller pour installer sqlite3 sur votre système et je vous conseille de sauvegarder les fichiers sqlite que vous manipulez, on est jamais trop prudent. (même si je n’ai pas suivi mon propre conseil )

Pour commencer, on va aller dans le dossier de votre profil firefox.

$cd ~/.mozilla/firefox/
$ls
mci61le1.default  profiles.ini  se1rptc9.Default User
$cd mci61le1.default

Rien de compliqué ! Voyons voir les fichiers sqlite qu’on peut explorer

 $ls *.sqlite
addons.sqlite           downloads.sqlite    messages.sqlite     signons.sqlite               ubiquity_suggestion_memory.sqlite
chromeappsstore.sqlite  extensions.sqlite   permissions.sqlite  startup.sqlite               urlclassifier3.sqlite
content-prefs.sqlite    formhistory.sqlite  places.sqlite       ubiquity_ann.sqlite          webappsstore.sqlite
cookies.sqlite          jetpack_ann.sqlite  search.sqlite       ubiquity_skin_memory.sqlite

Oui chez moi il y a de quoi s’amuser. Il y a une bonne partie des fichiers sqlite qui viennent d’extensions comme ubiuity, jetpack .…
On va s’intéresser au fichier places.sqlite qui gère l’historique et les marques pages. D’après la doc voila les tables disponibles

  • moz_anno_attributes – Annotation Attributes
  • moz_annos – Annotations
  • moz_bookmarks – Bookmarks
  • moz_bookmarks_roots – Bookmark roots i.e. places, menu, toolbar, tags, unfiled
  • moz_favicons – Favourite icons – including URL of icon
  • moz_historyvisits – A history of the number of times a site has been visited
  • moz_inputhistory – A history of URLS typed by the user
  • moz_items_annos – Item annotations
  • moz_keywords – Keywords
  • moz_places – Places/Sites visited – referenced by moz_historyvisits

On va se connecter pour voir ça.

$sqlite3 places.sqlite

Maintenant on se trouve dans la ligne de commande de sqlite.
J’ai trouvé 3 commandes intéressantes pour commencer
.help listant l’ensemble des commandes.
.tables listant la liste des tables
.schema affiche le schéma de la table donnée en argument.

sqlite&gt; .schema moz_places
CREATE TABLE moz_places (id INTEGER PRIMARY KEY, url LONGVARCHAR, title LONGVARCHAR, rev_host LONGVARCHAR, visit_count INTEGER DEFAULT 0, hidden INTEGER DEFAULT 0 NOT NULL, typed INTEGER DEFAULT 0 NOT NULL, favicon_id INTEGER, frecency INTEGER DEFAULT -1 NOT NULL, last_visit_date INTEGER, guid TEXT);
CREATE INDEX moz_places_faviconindex ON moz_places (favicon_id);
CREATE INDEX moz_places_frecencyindex ON moz_places (frecency);
CREATE UNIQUE INDEX moz_places_guid_uniqueindex ON moz_places (guid);
CREATE INDEX moz_places_hostindex ON moz_places (rev_host);
CREATE INDEX moz_places_lastvisitdateindex ON moz_places (last_visit_date);
CREATE UNIQUE INDEX moz_places_url_uniqueindex ON moz_places (url);
CREATE INDEX moz_places_visitcount ON moz_places (visit_count);

Voila deux exemples d’extraction :
pour afficher les 20 sites les plus visités dans votre historique. Si vous connaissez sql c’est tout simple pour les autres la doc est facile à trouver.

sqlite&gt; select url  from moz_places order by visit_count DESC limit 20;

Attention: quand vous lancez une requête n’oubliez pas le ; à la fin.

la liste des sites en marque page que vous avez le plus visités

select url, visit_count from moz_bookmarks t1
inner join moz_places t2 on t1.fk = t2.id
order by visit_count DESC limit 10;

Je vous laisse maintenant trouver des idées d’utilisation de cette bidouille.

Bonne soirée et à la prochaine

Commentaires (2)

Liste de bons liens pour apprendre python

Après une pause de plusieurs mois, je vous propose un micro article pour regrouper quelques bons liens pour apprendre python.
Cet article sera mis-à-jour suivant mes découvertes.
Débutant :
La Doc(en) : La base des bases (c’est la puissance de python) une bonne documentation donc si vous avez besoin de faire quelque chose faites un tour avant de recoder la roue.

Initiation à python 3(fr) : Une très bonne doc pour commencer même si c’est écrit pour la version 3, 99% du code fonctionne sur python 2.6

Dive into python(fr) : Une des docs les plus connues pour python même si cette version commence à dater. On ne parle pas par exemple des new class (plus d’informations sur ça un peu plus loin)

Dive into python 3(en) : La mise à jour de la doc précédente. Je n’ai pas encore pris le temps de la lire mais ça doit être du même tonneau que la première version.

Bonnes pratiques de la programmation en python: Si on programme en python, on doit lire cet article, vous êtes débutant vous devez lire cet article pour écrire du python et non pas écrire du pseudo java en python.

Acire: Petit logiciel permettant d’avoir accès à une liste d’exemples pour effectuer différentes tâches sous python. Je trouve l’idée intéressante pour démarrer un projet.

PEP by exemple(en):  Très bonne idée donne des exemples sur le zen python (import this)

Des notes: une sympathique page regroupant des astuces, des articles , des résumés pratique

Avancé :
Design pattern dans python (en) : Très intéressant mais je l’admets pas très utile pour un débutant. À lire pour améliorer son code.

Python Types and Objects(en) : Comprendre le fonctionnement des objets (new class) dans python : c’est la doc à lire.
et la suite :
Python Attributes and Methods(en)

Merci à nesthib pour la correction ;-)

Commentaires (5)

Test de Blogit

Test d’un article ecrit à partir de vim

Commentaires (2)

Auto-Completion dans l’interpréteur Python

Et oui Madame Monsieur aujourd’hui deux articles pour le prix d’un .. vue la fréquence de nouveau article sur le blog je suis d’accord ça va pas changer grand chose. Alors pour commencer nous allons voir comment ajouter l’auto-complétion à l’ interpréteur python. Tout programmeur python connaît l’interpréteur qui est extrêmement utile pour faire des essai de code. Mais on a la mauvaise surprise de voir que notre cher touche tabulation sert seulement à tabuler oui ok c’est son but premier mais un peu inutile dans le cas présent. J’arrête de blablater pour vous donner les instruction qui sont facile à mettre en place.

Premièrement nous allons rajouter une variable d’environnement (pour info je donne les instruction pour un système GNU/Linux pour les autre je pense que ça ne doit pas être compliqué à importer les instruction sur votre système.)

 echo 'export PYTHONSTARTUP=/home/kanor/.config/pythonConfig.py' >> /home/kanor/.bashrc

Avec une petit connaissance des ligne de commande sur linux vous devrez facilement la comprendre En résumé on rajoute la variable PYTHONSTARTUP contenant le chemin vers un programme en python dans le fichier de configuration bashrc qui est lancé à chaque démarrage d’un terminal. La vous devez vous poser la question tu l’a inventé ou le PYTHONSTARTUP bah c’est dans la doc. Ce qui permet au final de lancer au démarrage de l’interpréteur le programme python que nous avons définie dans le variable.
La deuxième étapee est donc de définir le programme dans pythonConfig.py voila la ligne du programme

import rlcompleter
import readline
readline.parse_and_bind("tab: complete")

Pour plus d’info sur ce module voir la doc.  Si vous voulez tester, ouvrer un nouveau terminal lancer la commande python Et maintenant quand vous utilisez la touche tabulation vous devez avoir la liste des commandes possible. Sympathique non ?

Commentaires (2)

Older Posts »
Suivre

Recevez les nouvelles publications par mail.