Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
siaa4fu opened this issue Jun 15, 2023 · 1 comment
Open

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

siaa4fu opened this issue Jun 15, 2023 · 1 comment

Comments

@siaa4fu
Copy link

siaa4fu commented Jun 15, 2023

不具合の内容

ファイルタイプ 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
Copy link

iranoan commented Aug 18, 2023

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

help :syn-priority

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

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

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants