J'ai FCEDIT
réglé sur vim
. Si j'appelle la commande fc
, elle ouvrira vim
avec un fichier temporaire et le contenu de ce fichier sera la dernière commande exécutée de l'historique.
Le problème est que même si je quitte sans enregistrer, la commande est toujours exécutée. Par exemple:
$ printf "\nHelloAskubuntu\n\n"
HelloAskubuntu
$ fc # opens vim, I do :q!
printf "\nHelloAskubuntu\n\n"
HelloAskubuntu
Comment puis-je éviter cela?
Cela se produit car le contenu est déjà stocké dans le fichier temporaire /tmp/bash-fc-*
. En le fermant directement, fc
exécutera quand même ce Shell.
Une approche de travail que j'ai pu tester dans Ubuntu 16.04.
Créer une commande proxy (nouvel éditeur)
Sudo vim /usr/local/bin/vim2
Ouvrez-le dans vim
puis videz-le sur le disque. Ainsi, le contenu est uniquement dans vim
si vous ne l'enregistrez pas, fc
ne fonctionnera rien
#!/bin/sh
sh -c "sleep 1; echo -n ''>$1" &
vim $1
Fixer l'autorisation
Sudo chmod +x /usr/local/bin/vim2
Définissez FCEDIT
sur vim2
ou temporairement pour tester export FCEDIT=vim2
Le seul espoir est que vous n'êtes pas plus rapide que moi, pour fermer vim
avant 1 seconde.