vim-jp / issues

有志で既知のバグや要望を検討・管理し、オフィシャルへの還元をしていきます。
https://vim-jp.org/
341 stars 11 forks source link

vim のシンタックス定義がおかしい #1418

Open siaa4fu opened 1 year ago

siaa4fu commented 1 year ago

不具合の内容

ファイルタイプ vim においてシンタックスがおかしくなります。

let a = ['v!m']

例えば、上のような単純なコマンドを書くと、 'v! の部分が文字列ではなく vimMark 等でハイライトされます。 (ちなみに let a = 'v!m' ではきちんと文字列として表示されました。)

/syntax/vim.vim L368

syn match   vimMark "'[a-zA-Z0-9]\ze[-+,!]" nextgroup=vimFilter,vimMarkNumber,vimSubst

何故 vimMark が適用されるのかはよく分かりませんでした。

現象・ログ

image

Vimのバージョン

9.0.1627

OSの種類/ディストリ/バージョン

Windows 10 Home 64bit

iranoan commented 1 year ago

vimString の定義より、vimMark の定義のほうが後に記載されているので

help :syn-priority

の 1 番に書かれているのが要因ですね

正しい解決方法かどうかわかりませんが、再度 \~/.vim/after/syntax/vim.vim に次を追記してやれば、vimString が優先されます

syn region  vimString   oneline keepend start=+[^a-zA-Z>!\\@]'+lc=1 end=+'+