Eu defini um tempo de arquivo jak.vim
para oferecer realce personalizado quando faço anotações, mas ele está sendo aplicado a alguns arquivos que não têm a extensão .jak
. Especificamente, um arquivo chamado progress.jlog
. Apenas para testar se o problema era específico para essa extensão, renomei progress.jlog
para progress
(sem extensão), mas experimentei o mesmo problema.
O que eu fiz:
- Eu criei
jak.vim
no diretório ~/.vim/ftdetect
- Eu adicionei esta linha: "au BufRead, BufNewFile * .jak definir filetype = jak" para o topo, conforme descrito na referência vim
- reiniciei o vim (: xe reabri o)
É assim que meu ~/.vim/ftdetect/jak.vim
se parece:
~/.vim/ftdetect][505]% cat jak.vim
au BufRead, BufNewFile *.jak set filetype=jak
syn region JakeSubtitle start=+==+ end=+==+
highlight JakeSubtitle ctermbg=black ctermfg=DarkMagenta
syn region JakeTitle start=+===+ end=+===+
highlight JakeTitle ctermbg=black ctermfg=yellow
syn region JakeMasterTitle start=+====+ end=+====+
highlight JakeMasterTitle cterm=bold term=bold ctermbg=black ctermfg=LightBlue
syn region emphasis start=+<em>+ end=+</em>+
highlight emphasis ctermbg=black ctermfg=yellow
" makes all of the numbered items bold."
" (this works I just don't like the effect. Decided to change to just highlight the "number)
"syn region numberedItem start=+^\t*\d*)+ end=+\n+"
syn match numberedItem +^\t*\d*)+
highlight numberedItem cterm=bold
E apenas caso você precise saber isso é o que meu .vimrc
se parece:
~/.vim/ftdetect][508]% cat ../../.vimrc
"on will override defaults set. Enable will allow you to set defaults."
" also turns on filetype"
"syntax on"
syntax enable
set nocompatible
" ???"
set backspace=2
"Auto indent"
set ai
"Map jj to Esc so that you do not have to reach for the Esc button"
imap jj <Esc>
"do not allow the search to wrap around the screen, must stop at the bottom."
set nowrapscan
"when doing a search highlight all occurances"
":set hlsearch"
"stop text from wrapping on the screen"
set nowrap
"turn the mouse on while in insert mode"
set mouse=i
"attempting to highlight specific keywords so it is easy to see in code."
"see help e410 for more info."
"see this post I created: https://superuser.com/questions/110054/custom-vim-highlighting"
"Legal colors: Black, DarkBlue, DarkGreen, DarkCyan, DarkRed, DarkMagenta,"
"Brown, DarkYellow, LightGray, LightGrey, Gray, Grey, DarkGray, DarkGrey,"
"Blue, LightBlue, Green, LightGreen, Cyan, LightCyan, Red, LightRed, Magenta,"
"LightMagenta, Yellow, LightYellow, White"
syn keyword JakeKeywords Question TODO Answer JAKEHTTPS PossibleProblem
highlight JakeKeywords cterm=bold term=bold ctermbg=black ctermfg=Blue
"for case-insensitve searches"
set ignorecase
"Override the 'ignorecase' option if the search pattern contains upper"
"case characters. Only used when the search pattern is typed and"
"'ignorecase' option is on."
set smartcase
"use indents as the folding method"
set foldmethod=indent
"make vim save and load the folding of the document each time it loads"
"also places the cursor in the last place that it was left."
au BufWinLeave * mkview
au BufWinEnter * silent loadview
Observação: eu completei todas as citações (comentários) para facilitar a leitura
Atualizar
Eu achei o post do nsharish muito útil. Eles sugeriram que eu adicionasse isso ao meu vimrc:
au BufRead,BufNewFile *.jak set filetype=jak
e adicione meu arquivo jak.vim
a ~/.vim/syntax
Infelizmente esse código está em conflito com essas duas linhas (no meu vimrc)
au BufWinLeave *.c mkview
au BufWinEnter *.c silent loadview
Eu uso esses dois para salvar minhas dobras, localização do cursor, etc. ao carregar o vim (consulte :help lo
). Se eu comentar essas duas linhas, a sugestão do nsharish funciona como um encanto. Com essas duas linhas, não há destaque em nenhum dos meus arquivos.
Conclusão
Marquei a resposta do nsharish como a melhor resposta ( porque é mais útil para mim). No entanto, é assim que resolvi o problema:
Nsharish estava certo Eu precisava dessa linha no meu .vimrc
:
syntax enable
au BufRead,BufNewFile *.jak set filetype=jak
E eu precisei mover meu arquivo jak.vim
para ~/.vim/syntax
.
No entanto, conforme observado acima, houve um conflito com essas linhas:
au BufWinLeave * mkview
au BufWinEnter * silent loadview
Quando estas linhas foram comentadas, o destaque funcionou.
O que eu precisava fazer era mudar o ...set filetype...
para isso:
au BufWinEnter,BufRead,BufNewFile *.jak set filetype=jak
Eu acho que o BufWinEnter é chamado após o arquivo BufRead / BufNew, então o realce estava sendo sobrescrito pela formatação salva da última vez.
Agradeço novamente por me ajudar a criar essa solução.