Je veux pouvoir démarrer facilement Vim en mode privé. Définissons un mode privé comme celui qui utilise cet ensemble de commandes:
set history=0
set nobackup
set nomodeline
set noshelltemp
set noswapfile
set noundofile
set nowritebackup
set secure
set viminfo=""
Faites-moi savoir si vous pouvez penser à des commandes supplémentaires adaptées au mode privé.
Le fait est que je ne peux pas penser à un moyen court et facile de démarrer Vim avec cette configuration.
Voici quelques idées que j'ai trouvées:
Chargez .vimrcprivate au lieu de .vimrc
Vous pouvez simplement mettre toutes les commandes nécessaires dans .vimrcprivate et démarrer Vim comme ceci:
vim -u .vimrcprivate
Définir et appeler une
Private()
fonctionUne autre idée consiste à ajouter un code comme celui-ci à votre .vimrc:
function Private() " set of commands here endfunction
puis vous pouvez démarrer Vim dans un mode privé comme celui-ci:
vim -c 'call Private()'
Utilisez une variable pour déclencher la configuration de vos commandes
Elle est assez similaire à la deuxième solution. Ajoutez simplement
if exists('privatemode') " set of commands here endif
sur votre .vimrc, puis démarrez Vim en utilisant
vim -c 'let privatemode=1'
qui n'est ni intelligent ni court.
Ajoutez un alias à votre .bashrc (ou à tout autre fichier. * Rc que votre shell utilise)
Par exemple:
alias vimprivate="vim +\"set history=0\" +\"set nobackup\" +\"set nomodeline\"\ +\"set noshelltemp\" +\"set noswapfile\" +\"set noundofile\"\ +\"set nowritebackup\" +\"set secure\" +\"set viminfo=\"\"\""
ce qui est horrible. Je n'aime pas ça.
Utilisez une variable d'environnement
Il suffit d'exécuter
VIM_PRIVATE=1 vim
et d'ajouterif $VIM_PRIVATE " set of commands here endif
à votre .vimrc.
Un peu de magie (d'après un commentaire de Carpetsmoker dans ce fil )
Carpetsmoker dit dans ce commentaire que
Je ne recommanderais pas d'utiliser un fichier vimrc séparé, pour la simple raison> qu'il est si facile d'oublier. Quelque chose comme cet autocmd:
au BufRead * if &cryptmethod != "" | setlocal nobackup noundofile ... | endif
devrait faire la magie pour vous, et il est impossible d'oublier.Cependant , j'ai aucune idée comment cette magie fonctionne encore .
Tu as une idée?
La solution parfaite serait vim -private
ou vim +Private
cependant:
- Je suis sûr que vous ne pouvez pas ajouter vos propres options de ligne de commande personnalisées comme
-private
. - en ce qui concerne
+Private
je n'ai pas pu le trouver en ligne.
command! Private set history=0 nobackup secure ...
puis l'appeler à partir du shell avecvim +'Private'
. Concernant la dernière autocommande que vous avez mentionnée, quand un buffer est lu, il teste si la valeur de l''cryptmethod'
option, ou'cm'
pour la version courte, n'est pas vide. Cette option contrôle la méthode de chiffrement utilisée pour chiffrer le tampon lorsqu'il est écrit dans un fichier avec la commande Ex:X
. Si l'option n'est pas vide, la commande automatique définit différentes options.vim -Nu .vimrcprivate
.alias vimprivate='vim -u .vimrcprivate'
etc.v:progname == "vimp"
et, si cela est vrai, à exécuter vos paramètres en mode privé. Tu vois:help v:progname
.Réponses:
Eh bien, un peu tard mais pour répondre à:
Mon idée générale était que vous vouliez toujours démarrer le "mode privé" si vous utilisez un fichier crypté, donc cette autocommande le fera pour vous:
Fondamentalement, chaque fois qu'un fichier est lu sur le disque, il vérifie si le
key
paramètre est défini (c'est là que votre mot de passe est stocké), et s'il l'est, il vous définit les paramètres. Voir:help autocommand
pour un aperçu général du fonctionnement des autocommandes.L'avantage est que vous ne pouvez pas oublier de l'utiliser.
Bien sûr, cela nécessite que le fichier soit crypté. Si ce n'est pas le cas, rien n'est fait. Mais tout n'est pas perdu, nous pouvons utiliser un nom de fichier pour indiquer qu'un fichier est privé, par exemple:
Marquerait tous les fichiers se terminant
.private
comme tels.Si vous souhaitez ouvrir des fichiers de manière aléatoire en mode "privé", je vous recommande d'utiliser un simple alias de shell, par exemple:
Et
~/.vim/private
contiendrait:Pourquoi ne pas
-u
? Eh bien, de cette façon, vous avez vos propres paramètres et les paramètres "privés". Vous pouvez également combiner les deux avec:la source
Selon la documentation de Vim (
:help -c
), il ne peut y avoir qu'un maximum de 10+{command}
,-c {command}
et des-S {file}
arguments d'option combinés au démarrage de Vim, et ils exécutent _après_ le premier fichier est lu.L'
--cmd {command}
option permet d'exécuter 10 commandes supplémentaires avant de traiter tout fichier vimrc, mais gardez à l'esprit que tous les paramètres peuvent être remplacés par vimrc.Par conséquent, je préfère définir les options Vim tôt et éviter tout besoin de variable d'environnement ou de logique de script. En outre, les plugins peuvent faire des choses louches, il est donc préférable de ne pas en charger.
La méthode d'invocation la plus sûre à laquelle je peux penser est d'utiliser des alias
~/.bashrc
avec un fichier vimrcprivate simple et précis:la source