He definido un tiempo de archivo jak.vim
para ofrecer resaltado personalizado cuando tomo notas, sin embargo, se aplica a algunos archivos que no tienen la .jak
extensión. Específicamente un archivo llamado progress.jlog
. Sólo para probar si el problema era específico para esa extensión Retitulé progress.jlog
a progress
(sin extensión), pero experimentó el mismo problema.
Lo que hice:
- Creé
jak.vim
en el directorio~/.vim/ftdetect
- Agregué esta línea: "au BufRead, BufNewFile * .jak set filetype = jak" en la parte superior como se describe en la referencia de vim
- Reinicié vim (: x, y luego volví a abrir)
Así es ~/.vim/ftdetect/jak.vim
como se ve mi :
~/.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
Y en caso de que necesites saber, así es .vimrc
como se ve mi :
~/.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: /superuser/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
Nota: Completé todas las citas (comentarios) para que sea más fácil de leer.
Actualizar
La publicación de nsharish me pareció muy útil. Sugirieron que agregue esto a mi vimrc:
au BufRead,BufNewFile *.jak set filetype=jak
y agrego mi jak.vim
archivo a~/.vim/syntax
Desafortunadamente, ese código entra en conflicto con estas dos líneas (en mi vimrc)
au BufWinLeave *.c mkview
au BufWinEnter *.c silent loadview
Utilizo estos dos para guardar mis pliegues, la ubicación del cursor, etc. al cargar vim (ver :help lo
). Si comento esas dos líneas, la sugerencia de nsharish funciona a las mil maravillas. Con esas dos líneas no hay resaltado en ninguno de mis archivos.
Conclusión
Marqué respuesta de nsharish como la mejor respuesta (ya que como más útil para mí). Sin embargo, así es como resolví el problema:
Nsharish tenía razón, necesitaba esta línea en mi .vimrc
:
syntax enable
au BufRead,BufNewFile *.jak set filetype=jak
Y necesitaba mover mi jak.vim
archivo a ~/.vim/syntax
.
Sin embargo, como se señaló anteriormente, hubo un conflicto con estas líneas:
au BufWinLeave * mkview
au BufWinEnter * silent loadview
Cuando se comentaron estas líneas, el resaltado funcionó.
Lo que tenía que hacer era cambiar ...set filetype...
esto a esto:
au BufWinEnter,BufRead,BufNewFile *.jak set filetype=jak
Creo que se llama al BufWinEnter después del archivo BufRead / BufNew, por lo que el formato se sobrescribió con el formato guardado la última vez.
Gracias nuevamente a nsharish por ayudarme a encontrar esta solución.