Я визначив час файлу, jak.vim
щоб запропонувати спеціальне підсвічування, коли я роблю нотатки, однак він застосовується до деяких файлів, які не мають .jak
розширення. Зокрема, файл з назвою progress.jlog
. Просто щоб перевірити, чи проблема була специфічною для цього розширення, я перейменований progress.jlog
на progress
(без розширення), але зазнав тієї ж проблеми.
Що я зробив:
- Я створив
jak.vim
у довіднику~/.vim/ftdetect
- Я додав цей рядок: "au BufRead, BufNewFile * .jak встановив filetype = jak" вгору, як описано у посиланні vim
- Я перезапустив vim (: x, а потім знову відкрив)
Ось як ~/.vim/ftdetect/jak.vim
виглядає:
~/.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
І лише у випадку, коли вам потрібно знати, ось як .vimrc
виглядає моє :
~/.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
Примітка: я доповнив усі цитати (коментарі), щоб полегшити читання
Оновлення
Я вважав, що пост nsharish є дуже корисним. Вони запропонували мені додати це до свого vimrc:
au BufRead,BufNewFile *.jak set filetype=jak
і додати мій jak.vim
файл у~/.vim/syntax
На жаль, цей код суперечить цим двом рядкам (у моєму vimrc)
au BufWinLeave *.c mkview
au BufWinEnter *.c silent loadview
Я використовую ці два для збереження моїх складок, розташування курсору тощо при завантаженні vim (див. :help lo
). Якщо я прокоментую ці два рядки, пропозиція nsharish працює як шарм. З цими двома рядками немає жодного підсвічування жодного з моїх файлів.
Висновок
Я відзначив відповідь nsharish як найкращу відповідь (адже це як мені найбільше допомагає). Однак ось як я вирішив проблему:
Nsharish мав рацію, мені потрібен був цей рядок у моєму .vimrc
:
syntax enable
au BufRead,BufNewFile *.jak set filetype=jak
І мені потрібно було перемістити свій jak.vim
файл до ~/.vim/syntax
.
Однак, як зазначалося вище, був конфлікт із цими рядками:
au BufWinLeave * mkview
au BufWinEnter * silent loadview
Коли коментували ці рядки, підсвічування спрацювало.
Що мені потрібно було зробити, це змінити ...set filetype...
це:
au BufWinEnter,BufRead,BufNewFile *.jak set filetype=jak
Я думаю, що BufWinEnter викликається після файлу BufRead / BufNew, тож виділення було перезаписане форматуванням, збереженим минулого разу.
Ще раз дякую nsharish, що допомогли мені знайти це рішення.