Quiero poder iniciar Vim fácilmente en un modo privado. Definamos un modo privado como uno 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=""
Avíseme si puede pensar en algún comando adicional adecuado para el modo privado.
El punto es que no puedo pensar en ninguna forma corta y fácil de iniciar Vim con esta configuración.
Aquí hay algunas ideas que se me ocurrieron:
Cargue .vimrcprivate en lugar de .vimrc
Simplemente puede poner todos los comandos necesarios en .vimrcprivate e iniciar Vim de esta manera:
vim -u .vimrcprivate
Definir y llamar a una
Private()
función.Otra idea agrega un código como este a tu .vimrc:
function Private() " set of commands here endfunction
y luego puedes iniciar Vim en un modo privado como este:
vim -c 'call Private()'
Use una variable para activar la configuración de sus comandos
Es bastante similar a la segunda solución. Solo agrega
if exists('privatemode') " set of commands here endif
a su .vimrc y luego inicie Vim usando
vim -c 'let privatemode=1'
que no es inteligente ni corto.
Agregue un alias a su .bashrc (o a cualquier otro archivo. * Rc que esté usando su shell)
Por ejemplo:
alias vimprivate="vim +\"set history=0\" +\"set nobackup\" +\"set nomodeline\"\ +\"set noshelltemp\" +\"set noswapfile\" +\"set noundofile\"\ +\"set nowritebackup\" +\"set secure\" +\"set viminfo=\"\"\""
lo cual es horrible No me gusta
Use una variable ambiental
Solo corre
VIM_PRIVATE=1 vim
y agregaif $VIM_PRIVATE " set of commands here endif
a tu .vimrc.
Algo de magia (de un comentario de Carpetsmoker en este hilo )
Carpetsmoker dice en este comentario que
No recomendaría usar un archivo vimrc separado, por la simple razón de que es tan fácil de olvidar. Algo así como este autocmd:
au BufRead * if &cryptmethod != "" | setlocal nobackup noundofile ... | endif
debería hacer la magia por ti, y es imposible de olvidar.Sin embargo, todavía no tengo idea de cómo funciona esta magia .
¿Tiene usted alguna idea?
La solución perfecta sería vim -private
o vim +Private
sin embargo:
- Estoy bastante seguro de que no puede agregar sus propias opciones de línea de comandos personalizadas como
-private
. - cuando se trata de no
+Private
pude encontrarlo en línea.
command! Private set history=0 nobackup secure ...
y luego llamarlo desde el shell convim +'Private'
. Con respecto al último autocomando que mencionó, cuando se lee un búfer, prueba si el valor de la'cryptmethod'
opción, o'cm'
para la versión corta, no está vacío. Esta opción controla el método de cifrado utilizado para cifrar el búfer cuando se escribe en un archivo con el comando Ex:X
. Si la opción no está vacía, el comando automático configura varias opciones.vim -Nu .vimrcprivate
.alias vimprivate='vim -u .vimrcprivate'
etc.v:progname == "vimp"
y, si es verdadero, ejecutar la configuración de modo privado. Ver:help v:progname
.Respuestas:
Bueno, un poco tardío pero para responder a:
Mi idea general era que siempre desea iniciar el "modo privado" si está utilizando un archivo cifrado, por lo que este comando automático lo hará por usted:
Básicamente, cada vez que se lee un archivo desde el disco, comprueba si la
key
configuración está establecida (aquí es donde se almacena la frase de contraseña), y si es así, establece la configuración. Consulte:help autocommand
para obtener una descripción general sobre cómo funcionan los comandos automáticos.La ventaja de esto es que no puede olvidarse de usarlo.
Por supuesto, requiere que el archivo esté encriptado. Si no es así, no se hace nada. Pero no todo está perdido, podemos usar un nombre de archivo para indicar que un archivo es privado, por ejemplo:
Marcaría todos los archivos que terminan
.private
como tal.Si desea abrir archivos al azar en modo "privado", le recomendaría usar un alias de shell simple, por ejemplo:
Y
~/.vim/private
contendría:¿Por qué no
-u
? Bueno, de esta manera tiene su propia configuración y la configuración "privada". También puedes combinar los dos con:fuente
De acuerdo con la documentación de Vim (
:help -c
) solo puede haber un máximo de 10+{command}
,-c {command}
y los-S {file}
argumentos de opción combinados al iniciar Vim, y se ejecutan _después_ se lee el primer archivo.La
--cmd {command}
opción permite ejecutar 10 comandos adicionales antes de procesar cualquier archivo vimrc, pero tenga en cuenta que cualquier configuración puede ser anulada por vimrc.Por lo tanto, prefiero configurar las opciones de Vim temprano y evitar cualquier necesidad de variables de entorno o lógica de secuencias de comandos. Además, los complementos pueden estar haciendo cosas poco fiables, por lo que es mejor no cargar ninguno.
El método de invocación más seguro que se me ocurre es usar alias
~/.bashrc
con un archivo vimrcprivate simple y directo:fuente