jak.vim
メモを取るときにカスタムの強調表示を提供するファイル時間を定義しましたが、.jak
拡張子のない一部のファイルに適用されています。具体的には、という名前のファイルprogress.jlog
。問題がその拡張子に固有のものであるかどうかをテストするために、名前progress.jlog
をprogress
(拡張子なし)に変更しましたが、同じ問題が発生しました。
私がしたこと:
jak.vim
ディレクトリに作成しました~/.vim/ftdetect
- 次の行を追加しました: "au BufRead、BufNewFile * .jak set 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
残念ながら、そのコードはこれらの2行と競合します(私のvimrcで)
au BufWinLeave *.c mkview
au BufWinEnter *.c silent loadview
vimをロードするときに、これら2つを使用して、フォールド、カーソル位置などを保存します(を参照:help lo
)。これらの2行をコメントアウトすると、nsharishの提案は魅力のように機能します。これらの2行では、どのファイルにも強調表示はありません。
結論
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に、このソリューションを思い付くのを助けてくれてありがとう。