jak.vim
Not aldığımda özel vurgulama sunmak için bir dosya zamanı tanımladım , ancak .jak
uzantısı olmayan bazı dosyalara uygulanıyor . Özellikle adlı bir dosya progress.jlog
. Sorunun yeniden adlandırdığım uzantıya özel olup olmadığını test etmek progress.jlog
içinprogress
(hiçbir uzantı) ama aynı sorunla karşılaştı.
Ben ne yaptım:
- Oluşturduğum
jak.vim
dizinde~/.vim/ftdetect
- Bu satırı ekledim: "au BufRead, BufNewFile * .jak set filetype = jak" vim başvurusunda açıklandığı gibi en üste
- Vim'i yeniden başlattım (: x ve sonra tekrar açtım)
Bu benim ~/.vim/ftdetect/jak.vim
gibi görünüyor:
~/.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
Ve sadece bu benim .vimrc
gibi görünüyor bilmeniz gerekir :
~/.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
Not: Okumayı kolaylaştırmak için tüm alıntıları (yorumları) tamamladım
Güncelleme
Nsharish'in gönderisini çok yardımcı buldum . Bunu vimrc'ime eklememi önerdiler:
au BufRead,BufNewFile *.jak set filetype=jak
ve dosyamı jak.vim
şuraya ekle~/.vim/syntax
Ne yazık ki bu kod bu iki satırla çakışıyor (benim vimrc'imde)
au BufWinLeave *.c mkview
au BufWinEnter *.c silent loadview
Vim yüklerken bu ikisini kıvrımlarımı, imleç konumunu vb. Kaydetmek için kullanıyorum (bkz. :help lo
). Ben bu iki satır yorum nsharish'in önerisi bir cazibe gibi çalışır. Bu iki satırla hiçbir dosyamda vurgulama yok.
Sonuç
Nsharish'in cevabını işaretledim en iyi olarak (çünkü benim için en yararlı olduğu gibi). Ancak ben sorunu şu şekilde çözdü:
Nsharish haklıydı bu satırda ihtiyacım vardı .vimrc
:
syntax enable
au BufRead,BufNewFile *.jak set filetype=jak
Ve dosyamı şu konuma jak.vim
taşımam gerekiyordu:~/.vim/syntax
.
Bununla birlikte, yukarıda belirtildiği gibi, bu çizgilerle bir çatışma vardı:
au BufWinLeave * mkview
au BufWinEnter * silent loadview
Bu satırlar yorumlandığında vurgulama işe yaradı.
Ne yapmak için bunu değiştirmek oldu ...set filetype...
:
au BufWinEnter,BufRead,BufNewFile *.jak set filetype=jak
BufWinEnter BufRead / BufNew dosya sonra çağrıldığını düşünüyorum, bu yüzden vurgulama son kez kaydedilen biçimlendirme tarafından üzerine yazılıyor.
Bu çözümü bulmama yardımcı olduğu için nsharish'e tekrar teşekkür ederim.