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 exceptofoo.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
conlet g:RootIgnoreUseHome = 1
.