Empêcher Vim d'enregistrer des événements pour certains types de fichiers

12

Pour ajouter à cette question de stackoverflow , que faut-il y mettre .vimrcpour assurer une «édition privée» de certaines extensions de fichiers (par exemple des .gpgfichiers).

Sans compromettre l'efficacité de la session, aucune information sur le travail effectué ne doit être enregistrée, y compris les registres, l'historique des recherches, l'historique des commandes, les vues, les échanges, etc. Pour les gpgfichiers, on peut utiliser ce plugin vim , mais en plus de modifier le plugin, comment étendre ces idées discutées à des types de fichiers arbitraires?

Nous utiliserons probablement les commandes suivantes,

if <ft in privacy_ext_list>
  set noswapfile
  set noundofile
  set viminfo=
endif 

mais à part l'énoncé conditionnel approprié, qu'est-ce qui manque?

De plus, existe-t-il un moyen avec Vimscript de créer un tableau d'extensions de fichiers et d'évaluer ensuite si le type de fichier actuel se trouve dans le tableau?

HAL 9001
la source
6
@Carpetsmoker Je pense que cette question est plus large. L'auteur ne demande pas seulement comment définir les paramètres dans un tampon d'un type de fichier particulier, mais dans une certaine mesure quels paramètres définir pour garantir la confidentialité. Ce n'est certainement pas évident ni rassemblé dans un endroit central, donc je pense que cela pose une bonne question.
Andrew Ferrier

Réponses:

6

Voici la liste complète des paramètres qui devraient être ajoutés à votre .vimrcsi vous souhaitez éviter toute fuite de fichiers sensibles.

set nobackup
set nowritebackup
set noundofile
set noswapfile
set viminfo=""
set noshelltemp
set history=0
set nomodeline
set secure

Je vous recommande de créer un nouveau fichier de configuration appelé .vimrc_secureet d'exécuter Vim avec vim -u ~/.vimrc_secure(ou de créer un script / alias) lorsque vous souhaitez modifier votre fichier sensible. Cela minimisera le risque d'un plugin malveillant ou d'une fonctionnalité de buggy.

Ben
la source
J'aime cela dans le sens qui .vimrc_secureest indépendant du .vimrc(car faire comme vous le dites permet alors à l'utilisateur de :e private file[garder ainsi le fichier hors de l'historique du shell]), mais utiliser vim -u ~/.vimrc-incognitone sera pas source ~/.vimrcdu tout, n'est-ce pas ? Les joies de la vie privée ne devraient pas se faire au détriment du confort réduit (sauf si le confort est fondamentalement vicié via un plugin malveillant ou une fonctionnalité de buggy). Bien que l'accent devrait être mis sur le risque d'inconnues, il doit sûrement y avoir un moyen d'envelopper conditionnellement votre solution ...
HAL 9001
1
Je ne recommanderais pas d'utiliser un fichier vimrc séparé, pour la simple raison qu'il est si facile à oublier. Quelque chose comme cet autocmd: au BufRead * if &key != "" | setlocal nobackup noundofile ... | endifdevrait faire la magie pour vous, et il est impossible d'oublier.
Martin Tournoij
@Carpetsmoker, de quoi s'agit- &l:cm != ""il?
Wildcard
1
@Wildcard Ehm .... On dirait que je voulais &cryptmethod, ce qui fait référence à ce paramètre. La l:partie était une erreur (j'ai utilisé mes pouvoirs spéciaux pour modifier mon commentaire). Merci d'avoir fait remarquer cela!
Martin Tournoij
@Carpetsmoker, pourriez-vous développer votre commentaire? J'ai créé un fil ici: vi.stackexchange.com/questions/6195/…
Mateusz Piotrowski