J'ai défini un temps de fichier jak.vim
pour offrir une surbrillance personnalisée lorsque je prends des notes, mais il est appliqué à certains fichiers qui n'ont pas l' .jak
extension. Plus précisément un fichier nommé progress.jlog
. Juste pour vérifier si le problème était spécifique à cette extension , je retitré progress.jlog
à progress
(pas d' extension) , mais a connu le même problème.
Ce que j'ai fait:
- J'ai créé
jak.vim
dans l'annuaire~/.vim/ftdetect
- J'ai ajouté cette ligne: "au BufRead, BufNewFile * .jak set filetype = jak" en haut comme décrit dans la référence vim
- J'ai redémarré vim (: x, puis rouvert)
Voici à quoi je ~/.vim/ftdetect/jak.vim
ressemble:
~/.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
Et au cas où vous auriez besoin de savoir à quoi .vimrc
ressemble mon apparence:
~/.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
Remarque: j'ai rempli toutes les citations (commentaires) pour en faciliter la lecture
Mise à jour
J'ai trouvé le post de nsharish très utile. Ils ont suggéré que j'ajoute ceci à mon vimrc:
au BufRead,BufNewFile *.jak set filetype=jak
et ajouter mon jak.vim
fichier à~/.vim/syntax
Malheureusement, ce code entre en conflit avec ces deux lignes (dans mon vimrc)
au BufWinLeave *.c mkview
au BufWinEnter *.c silent loadview
J'utilise ces deux pour enregistrer mes plis, l'emplacement du curseur, etc. lors du chargement de vim (voir :help lo
). Si je commente ces deux lignes, la suggestion de nsharish fonctionne comme un charme. Avec ces deux lignes, il n'y a pas de surbrillance dans aucun de mes fichiers.
Conclusion
J'ai marqué la réponse de nsharish comme la meilleure réponse (car elle m'a été la plus utile). Cependant, voici comment j'ai résolu le problème:
Nsharish avait raison, j'avais besoin de cette ligne dans mon .vimrc
:
syntax enable
au BufRead,BufNewFile *.jak set filetype=jak
Et je devais déplacer mon jak.vim
fichier vers ~/.vim/syntax
.
Cependant, comme indiqué ci-dessus, il y avait un conflit avec ces lignes:
au BufWinLeave * mkview
au BufWinEnter * silent loadview
Lorsque ces lignes ont été commentées, la mise en évidence a fonctionné.
Ce que je devais faire était de changer ...set filetype...
cela en ceci:
au BufWinEnter,BufRead,BufNewFile *.jak set filetype=jak
Je pense que le BufWinEnter est appelé après le fichier BufRead / BufNew, de sorte que la surbrillance était écrasée par le formatage enregistré la dernière fois.
Merci encore à nsharish de m'avoir aidé à trouver cette solution.