No Vim, como posso definir uma correspondência local apenas para um tipo de arquivo específico?

3

Em Vim , posso definir a configuração local como:

 setlocal number

Como posso definir uma correspondência local apenas para um tipo de arquivo específico?

Eu uso isso:

 autocmd! BufEnter *.py,.vimrc,*.sh,*.c* :match ColorColumn /\%>80v.\+/

Mas quando abro um arquivo de outro tipo de arquivo, na mesma sessão, isso me dá a correspondência ColorColumn .

    
por juanpablo 13.11.2011 / 05:36

3 respostas

3

Isso pode não ser mais útil para o autor, mas eu coloquei o seguinte em .vim/ftplugin/python.vim :

if exists('+colorcolumn')
    setlocal colorcolumn=81
else
    au! BufEnter <buffer> match ColorColumn /\%81v.*/
endif

Como está no ftplugin, ele ocorre apenas para arquivos python, e o BufEnter o mantém local no buffer em que o arquivo python está.

    
por 12.09.2012 / 20:53
1

Eu resolvi isso com isso:

augroup longLines
    autocmd! BufEnter *.py,.vimrc,*.sh,*.c* :match ColorColumn /\%>80v.\+/                      
augroup END
    
por 13.11.2011 / 05:59
1

Isso tornará o realce ativo quando Python ou C tipos de arquivos estão abertos (sinta-se livre para adicionar os outros lá. Eu não sabia o que filetype * .sh extensão pertence), e torná-lo vá embora para todos os outros.

augroup LongLines
    autocmd!
    autocmd FileType * match none
    autocmd FileType python,c,sh match ColorColumn /\%>80v.\+/
augroup END
    
por 14.11.2011 / 00:45