Dans Vim, lorsque j'écris une copie du tampon actuel dans un nouveau fichier à l'aide :w [filename]
, il semble que Vim utilise les autorisations de fichier par défaut (c'est-à-dire définies par umask ou autre) pour le nouveau fichier. Si le tampon actuel a été chargé à partir d'un fichier existant, le "bon" comportement ne devrait-il pas être de dupliquer les autorisations de ce fichier? Par exemple, si j'édite un fichier exécutable et que j'écris une nouvelle copie du fichier, pourquoi Vim n'écrit-il pas un nouvel exécutable ? Existe-t-il un moyen de forcer Vim à se comporter comme je le décris, à part faire simplement quelque chose comme ! chmod --reference % [newfilename]
après avoir écrit le nouveau fichier?
unix
vim
file-permissions
Kyle Strand
la source
la source
chmod
pour vous. AFAIK, vim n'a pas cela intégré.Réponses:
Vous pourriez faire quelque chose comme ça. Commencez par capturer le nom du fichier d'origine.
Ensuite, lorsque vous enregistrez le nouveau fichier, modifiez ses autorisations pour qu'elles soient identiques à celles du fichier d'origine.
Mettez simplement ces deux commandes automatiques dans votre ~ / .vimrc.
la source
echo system(
etc. ensilent echo system(
etc. Cela évite le blocage "appuyez sur ENTRÉE pour continuer".call system(...
éviter d'imprimer quoi que ce soit sur l'écran, mais j'essayais d'éviter le problème de l'échec silencieux de la commande. Si vous ne pensez pas que cela échouera un jour, ou si vous préférez vivre avec l'échec occasionnel plutôt qu'avec l'ennuyeuxPress ENTER...
, alors je suis d'accord avec votre suggestion. Je pense qu'une meilleure solution, cependant, serait d'écrire une fonction qui capture la sortie de system () et ne l'écho que si elle n'est pas vide. Je l'ai fait dans des plugins et cela fonctionne assez bien.Press ENTER,
, donc je pense que je vais m'en tenirsilent
ou utilisercall
. Merci encore pour les suggestions!Assurez-vous qu'il n'y a pas de modifications non enregistrées dans le fichier, puis utilisez
cp
pour effectuer une copie. Cela se traduira par une copie avec les mêmes autorisations que l'original.la source