usar example crear como comando archivo git vim gitignore

example - ¿Puedo hacer que vim respete mis archivos.gitignore?



gitignore example (3)

Según lo sugerido por @dwc, aquí hay una secuencia de comandos de vim:

let filename = ''.gitignore'' if filereadable(filename) let igstring = '''' for oline in readfile(filename) let line = substitute(oline, ''/s|/n|/r'', '''', "g") if line =~ ''^#'' | con | endif if line == '''' | con | endif if line =~ ''^!'' | con | endif if line =~ ''/$'' | let igstring .= "," . line . "*" | con | endif let igstring .= "," . line endfor let execstring = "set wildignore=".substitute(igstring, ''^,'', '''', "g") execute execstring endif

Tome esa fuente y ~/.vim/plugin/gitignore.vim en un archivo en su directorio de complementos, como ~/.vim/plugin/gitignore.vim . .gitignore su archivo .gitignore y lo analizará, transformando su formato en uno adecuado para wildignore , y luego configurará esa opción.

Limitaciones

  • Esto leerá el archivo .gitignore del directorio donde .gitignore vim. No se hace ningún esfuerzo para buscar otros archivos .gitignore y analizarlos. Alternativamente, puede especificar una ruta absoluta a un archivo en la primera línea.
  • La opción wildignore en vim no admite la noción de negación ignora como se puede en un archivo .gitignore . Es decir, no puede decir :set wildignore=*.html,!foo.html para que ignore todos los archivos html excepto foo.html . Por lo tanto, .gitignore líneas .gitignore que comienzan con! simplemente son ignorados.

Me preguntaba si hay una forma de que vim lea los archivos .gitignore y los use para determinar las opciones que no se presentarán cuando se completen automáticamente los nombres de los archivos.

Por ejemplo, trabajando en python, me gustaría no ver los archivos .pyc ofrecidos para editar. Creo que vim tiene su propio mecanismo para esto, me preguntaba cómo cargar información de .gitignore en él.


Vim ignorará los patrones de archivo especificados en la opción wildignore , para que pueda configurarlos de la siguiente manera:

:set wildignore=*.o,*~,*.pyc

O coloque la misma línea (sin el ":") en su archivo ~ / .vimrc. Si necesita algo más dinámico como ajustarse al .gitignore en el directorio actual, entonces necesitará hacer algunas secuencias de comandos, pero lo dejo como ejercicio para otra persona.


Escribí un complemento para esto: https://github.com/octref/RootIgnore

Puede agregar patrones .gitignore a su wildignore automáticamente.
Algunas características útiles:

  • Cuando estás en un subdirectorio, como este:

my_proj/ .gitignore .git/ sub/

Si escribe un cd en sub, y abre Vim ahí, el plugin va recursivamente hacia arriba para encontrar el .gitignore y lo agrega a wildignore .

  • Puede agregar fácilmente las reglas ~/.gitignore con let g:RootIgnoreUseHome = 1 .