je fourre mon vi partout où je peux
J’ai décourvert sur le tard qu’il n’était nul besoin de s’exploser doigts et têtes à tenter de maitriser les raccourcis emacs pour éditer ses lignes de shell de facon conviviale: presque tous disposent d’un mode vi!
dans mksh et bash, par exemple: tappez
set -o vi
. Dans tcsh ou zsh, tappez
bindkey -v
. et là … tout de suite … le monde est plus beau … plus simple … plus mieux!
mais … mais … qqchose vous tracasse parceque depuis que vous avez lu mon article sur les parenthèses, vous collez du (( partout!
et bien les mappings existent aussi dans zle! le magnifique editeur intégré de zsh ! Voici un fichier sourcé par mon .zshrc qui configure mon environement d’édition :
# \ea is used to avoid recursive mappings
# vi mode
bindkey -v
bindkey -s '((' '()\ei'
bindkey -s '( (' '( )\ehhi'
bindkey -s '(((' '(\ea( ))\ehhhi'
bindkey -s '{{' '{}\ei'
bindkey -s '{ {' '{ }\ehi'
bindkey -s '{{{' '{\ea{ }}\ehhhi'
bindkey -s '[[' '[]\ei'
bindkey -s '[ [' '[ ]\ehhi'
bindkey -s '[[[' '[\ea[ ]]\ehhhi'
bindkey -s "''" "'\ea'\ei"
bindkey -s '""' '"\ea"\ei'
# the best of emacs
bindkey '^e' end-of-line
bindkey '^a' beginning-of-line
bindkey '^r' history-incremental-search-backward
# get lost ? RTFM! ( default emacs mode \eh )
alias run-help=info
bindkey '^h' run-help
# edit commandline with your favorite ($FCEDIT)
# shamely pomped on the internet!
autoload edit-command-line
zle -N edit-command-line
bindkey '^xe' edit-command-line
bindkey '^xc' _complete_helpalors? heureux? … comment ça non? arghh … un utilisateur de bash … je t’enverrais bien bouler en attendant que tu aies installé un shell correct (mksh ou zsh) mais bash a en commun avec d’autres softs d’utiliser readline … une lib que tu peux la configurer en ajoutant ça à ton ~/.inputrc:
set editing-mode vi
"''":"\C-v'\C-v'\ei"
"\C-x(":"()\ei"
"((":"\C-v(\C-v)\ei"
"{{":"\C-v{\C-v}\ei"
"\"\"":"\C-v\"\C-v\"\ei"maintenant, j’ai le même comportement dans bash, l’interpréteur python, le client en ligne de commande sqlite, … tout ce qui utilise readline (ah si zle pouvait être utilisée sans zsh …).
Afin que je puisse vraiment fourrer mon vi partout, il faudrait que kyusan se bouge pour installer ça dans la tinybox. ca tombe bien: il avait rien prévu ce soir …
Related posts: