Saya telah menetapkan waktu file jak.vim
untuk menawarkan penyorotan khusus ketika saya membuat catatan, namun itu sedang diterapkan ke beberapa file yang tidak memiliki .jak
ekstensi. Khususnya sebuah file bernama progress.jlog
. Hanya untuk menguji apakah masalah itu khusus untuk ekstensi yang saya berganti nama progress.jlog
untuk progress
(tanpa ekstensi) tetapi mengalami masalah yang sama.
Apa yang saya lakukan:
- Saya buat
jak.vim
di direktori~/.vim/ftdetect
- Saya menambahkan baris ini: "au BufRead, BufNewFile * .jak set filetype = jak" ke atas seperti yang dijelaskan dalam referensi vim
- Saya memulai kembali vim (: x, dan kemudian dibuka kembali)
Seperti inilah ~/.vim/ftdetect/jak.vim
penampilan saya :
~/.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
Dan hanya memetikan Anda perlu tahu seperti inilah .vimrc
penampilan saya :
~/.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
Catatan: Saya melengkapi semua kutipan (komentar) untuk membuatnya lebih mudah dibaca
Memperbarui
Saya menemukan posting nsharish sangat membantu. Mereka menyarankan agar saya menambahkan ini ke vimrc saya:
au BufRead,BufNewFile *.jak set filetype=jak
dan tambahkan jak.vim
file saya ke~/.vim/syntax
Sayangnya kode itu bertentangan dengan dua baris ini (di vimrc saya)
au BufWinLeave *.c mkview
au BufWinEnter *.c silent loadview
Saya menggunakan keduanya untuk menyimpan lipatan, lokasi kursor, dll saat memuat vim (lihat :help lo
). Jika saya berkomentar dua baris saran nsharish bekerja seperti pesona. Dengan dua baris itu tidak ada highlight di salah satu file saya.
Kesimpulan
Saya menandai jawaban nsharish sebagai jawaban terbaik (karena ini sangat membantu saya). Namun demikian, inilah cara saya memecahkan masalah:
Nsharish benar aku membutuhkan baris ini di .vimrc
:
syntax enable
au BufRead,BufNewFile *.jak set filetype=jak
Dan saya perlu memindahkan jak.vim
file saya ke ~/.vim/syntax
.
Namun seperti yang disebutkan di atas ada konflik dengan garis-garis ini:
au BufWinLeave * mkview
au BufWinEnter * silent loadview
Ketika baris-baris ini dikomentari, penyorotan berhasil.
Yang perlu saya lakukan adalah mengubah ...set filetype...
ini:
au BufWinEnter,BufRead,BufNewFile *.jak set filetype=jak
Saya pikir BufWinEnter dipanggil setelah file BufRead / BufNew sehingga penyorotan ditimpa oleh format yang disimpan dari terakhir kali.
Sekali lagi terima kasih kepada nsharish karena telah membantu saya menemukan solusi ini.