Quero poder iniciar facilmente o Vim em modo privado. Vamos definir um modo privado como aquele que utiliza este conjunto de comandos:
set history=0
set nobackup
set nomodeline
set noshelltemp
set noswapfile
set noundofile
set nowritebackup
set secure
set viminfo=""
Deixe-me saber se você pode pensar em algum comando adicional adequado para o modo privado.
O ponto é que não consigo pensar em nenhuma maneira curta e fácil de iniciar o Vim com essa configuração.
Aqui estão algumas idéias que eu tenho:
Carregue .vimrcprivate em vez de .vimrc
Você pode simplesmente colocar todos os comandos necessários em .vimrcprivate e iniciar o Vim assim:
vim -u .vimrcprivate
Definir e chamar uma
Private()
funçãoOutra idéia: adicione um código como este ao seu .vimrc:
function Private() " set of commands here endfunction
e então você poderá iniciar o Vim em um modo privado como este:
vim -c 'call Private()'
Use uma variável para acionar a configuração de seus comandos
É bastante semelhante à segunda solução. Basta adicionar
if exists('privatemode') " set of commands here endif
ao seu .vimrc e inicie o Vim usando
vim -c 'let privatemode=1'
o que não é inteligente nem curto.
Adicione um alias ao seu .bashrc (ou a qualquer outro arquivo. * Rc que seu shell esteja usando)
Por exemplo:
alias vimprivate="vim +\"set history=0\" +\"set nobackup\" +\"set nomodeline\"\ +\"set noshelltemp\" +\"set noswapfile\" +\"set noundofile\"\ +\"set nowritebackup\" +\"set secure\" +\"set viminfo=\"\"\""
o que é horrível. Eu não gosto disso
Use uma variável ambiental
Basta executar
VIM_PRIVATE=1 vim
e adicionarif $VIM_PRIVATE " set of commands here endif
para o seu .vimrc.
Alguns magia (de um comentário por Carpetsmoker em esta discussão )
Carpetsmoker diz neste comentário que
Eu não recomendaria o uso de um arquivo vimrc separado, pelo simples motivo> de que é tão fácil esquecer. Algo como este autocmd:
au BufRead * if &cryptmethod != "" | setlocal nobackup noundofile ... | endif
deve fazer a mágica para você e é impossível esquecer.No entanto, eu não tenho idéia de como essa mágica funciona ainda .
Você tem alguma ideia?
A solução perfeita seria vim -private
ou, vim +Private
no entanto:
- Tenho certeza que você não pode adicionar suas próprias opções de linha de comando personalizadas, como
-private
. - quando se trata,
+Private
não consegui encontrá-lo online.
command! Private set history=0 nobackup secure ...
e depois chamá-lo a partir do shell comvim +'Private'
. Em relação ao último comando automático que você mencionou, quando um buffer é lido, ele testa se o valor da'cryptmethod'
opção ou'cm'
da versão curta não está vazio. Esta opção controla o método de criptografia usado para criptografar o buffer quando ele é gravado em um arquivo com o comando Ex:X
. Se a opção não estiver vazia, o comando automático configurará várias opções.vim -Nu .vimrcprivate
.alias vimprivate='vim -u .vimrcprivate'
etc.v:progname == "vimp"
e, se verdadeiro, executar as configurações do modo privado. Veja:help v:progname
.Respostas:
Bem, um pouco tardio, mas para responder a:
Minha ideia geral era que você sempre deseja iniciar o "modo privado" se estiver usando um arquivo criptografado, portanto, esse comando automático fará isso por você:
Basicamente, toda vez que um arquivo é lido do disco, ele verifica se a
key
configuração está definida (é onde a senha está armazenada) e, se estiver, define as configurações. Veja:help autocommand
uma visão geral sobre como os comandos automáticos funcionam.A vantagem disso é que não se esqueça de usá-lo.
Obviamente, isso exige que o arquivo seja criptografado. Caso contrário, nada será feito. Mas nem tudo está perdido, podemos usar um nome de arquivo para indicar que um arquivo é privado, por exemplo:
Marcaria todos os arquivos que terminam
.private
como tal.Se você deseja abrir arquivos aleatoriamente no modo "privado", recomendo o uso de um alias simples de shell, por exemplo:
E
~/.vim/private
conteria:Por que não
-u
? Bem, desta maneira você tem suas próprias configurações e as configurações "particulares". Você também pode combinar os dois com:fonte
De acordo com a documentação do Vim (
:help -c
), só pode haver um máximo de 10+{command}
,-c {command}
e-S {file}
argumentos de opção combinados ao iniciar o Vim, e eles executam _após_ o primeiro arquivo é lido.A
--cmd {command}
opção permite que 10 comandos adicionais sejam executados antes de processar qualquer arquivo vimrc, mas lembre-se de que qualquer configuração pode ser substituída pelo vimrc.Portanto, prefiro definir as opções do Vim com antecedência e evitar qualquer necessidade de variável de ambiente ou lógica de script. Além disso, os plugins podem estar fazendo coisas desonestas, por isso é melhor não carregar nenhum.
O método de chamada mais seguro que consigo pensar é usar aliases em
~/.bashrc
um arquivo vimrcprivate simples e direto ao ponto:fonte