- Étape 1 :
afin que vim lise le fichier des alias j’ai utilisé ce tuto alias-et-vim en remplaçant .bashrc par .bash_aliases
…
The~/.bashrc
file is only read for interactive shell sessions, and the shell that you start from Vim is not interactive. Furthermore, thebash
shell does not expand aliases in non-interactive shells by default.
…
To use the$BASH_ENV
« trick », make sure that your~/.vimrc
file (or equivalent) sets this environment variable to the pathname of a file that contains the necessary setup code:let $BASH_ENV = "~/.vim_bash_env"
Then create
~/.vim_bash_env
to sayshopt -s expand_aliases source ~/.bashrc
This would enable the expansions of aliases even though the shell session is non-interactive, and then it would read your
~/.bashrc
file where presumably your aliases are defined.You may then use your aliases with Vim’s
!
command.
- Étape 2
La commande à lier à un alias clip est :call system(‹ xclip ›, @0) . Elle doit s’effectuer lorsque je vais écrire , après la sélection et son enregistrement par y ( yank) , :!clip . Cette commande , écrite à la main , fonctionne bien et je récupère le texte sélectionné dans un fichier par xclip -o >fichier . Pas facile à mémoriser , alors un alias s’impose .
Le problème qui me bloque est la présentation à vim de cet alias qui doit être rendu compréhensible par bash pour pouvoir s’effectuer et si je fais simplement alias clip=’:call system(‹ xclip ›, @0)’ ça ne marche pas car , je l’interprète ainsi , la commande entre ’ ’ ne peut pas être lue par bash . J’ai essayé
clip=‹ echo :call system(‹ xclip ›, @0) › mais ça ne va pas . Une idée sur une solution ?