问题标签 [vim-syntax-highlighting]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
vim - 什么 vim 模式匹配以点结尾的数字?
在 PDP11/40 汇编语言中,以点结尾的数字被解释为十进制数。我使用以下模式,但无法匹配该表示法,例如8.
:
当我\.
用D
模式替换时可以匹配8D
没有任何问题。谁能告诉我我的“以点结尾”模式有什么问题?谢谢。
vim - vim 正则表达式和高亮语法:查找匹配项并忽略其中的子匹配项
我正在尝试在 VIM 中编写语法荧光笔。你如何在另一场比赛中突出比赛?
为了找到每个匹配项,我创建了两条syn match
线,它们在匹配项分开的地方工作。
xpath 字符串的第一行是粉红色的,字符串的第一行是蓝色的
${..}
。对于 xpath 字符串,第二行是粉红色的,但该
${..}
字符串中包含的内容将被忽略。
我试图改变syn match
线条的顺序,但这没有任何效果。
我很感激你的想法。
vim - 在没有有效文件扩展名的情况下检测 vim 中的文件类型
我正在寻找一种方法来确定 vim 中文件的文件类型并根据文件类型设置语法突出显示。唯一的问题是我不能使用文件扩展名来确定文件类型。
这是我的场景:我使用vimdiff
orgvimdiff
作为我的P4DIFF
工具,它显示了本地副本中的文件与 perforce 服务器中的文件之间的更改。Perforce 似乎将文件从 perforce 服务器引入 /tmp 目录并使用PID
来命名文件,例如:
这是针对 C++ 源文件的。
我在 perforce 存储库中遇到的最常见的文件类型是 C/C++ 源文件和头文件、Makefile、python 脚本、perl 脚本、ruby 脚本和 tcl 脚本。
我已经研究过使用
modeline
,但我们树中的大多数源都没有在文件中嵌入此信息。这篇文章提到了一种搜索和识别魔法模式的可能方法。我找不到任何能获得高成功率的一致魔法模式。
尝试
file
在我的 linux 机器上使用二进制文件来查看我得到的结果。它似乎可以很好地识别 C/C++ 源,但对于 Makefile 甚至 python 脚本(没有 hashbang)都失败了
一件好事是,在比较的 2 个文件中,右侧的文件来自我的本地副本,因此具有正确的文件名和扩展名,从而为右侧的文件正确启用了语法突出显示。
有没有办法可以利用它为左侧显示的文件设置相同的语法突出显示?
也欢迎对此问题的任何替代解决方案。
regex - 匹配分隔列表中的最后一个元素?
我有一些用冒号分隔的数据,如下所示:
我想使用正则表达式来匹配最后一个元素,在这种情况下,qux
. 列表可以是任意长度,如果只有一个元素,则根本没有冒号。
我尝试过使用 vim 的零宽度匹配结构,但我似乎无法让它做我想做的事。
vim - 为 VIM 添加 GoLang 语法高亮
我正在尝试在 ubuntu 上向 VIM 添加 Go 语言语法突出显示,并在此处提供资源和方向http://go-lang.cat-v.org/text-editors/vim/。
Go 附带一个go.vim
包含 VIM 语法设置的文件,上面的页面提供了以下说明
将 $GOROOT/misc/vim/syntax/go.vim 放入 ~/.vim/syntax/ 并将以下内容放入 ~/.vim/ftdetect/go.vim:
这或多或少与我在其他地方看到的自定义 vim 语法的过程相同(Ubuntu 12.10 上的 Vim 7.3 在任何地方都没有 'ftplugin' 目录和https://github.com/jnwhiteh/vim-golang/blob /master/readme.txt )
所以我认为我在创建目录时做对了:
~/.vim
~/.vim/syntax
~/.vim/ftdetect
并按照上述说明添加
go.vim 到 ~/.vim/syntax/ 并在 ~/.vim/ftdetect/ 中创建一个文件 go.vim,其中包含
然而语法高亮似乎没有发生。我需要做些什么来强制 VIM 查看这些新的设置文件吗?
vim - 当 cursorline 突出显示一行时,设置 listchars 的可见性和/或颜色或在 vim 中隐藏 cchar
我知道我可以使用 setlist listchars=...
来显示NonText
和SpecialKey
字符,以突出显示不同种类的非文本字符。一般来说,这是直截了当的并且有效。但它有一个让我感到不安的视觉副作用——当光标线设置为打开时,将光标“悬停”在一行上时,listchars
会以不同的颜色突出显示。该线程中已经提到了该问题,并且似乎没有解决该行为的解决方案。
结果,我开始使用隐藏功能,这给了我不同的结果。set concealcursor=n||v||i||c
让我控制隐藏字符在哪些模式下可见。我希望能够始终看到隐藏的字符,所以我设置了以下内容:
结果,无论我当前处于哪种模式,它都会突出显示始终可见的所有空间。但同样有一个令人不安的副作用 - 当我在可视模式下标记线条或用光标线突出显示线条时,突出显示区域在隐藏的地方被打断字符被找到。只需查看屏幕截图:
具有选定区域的可视模式:
带光标线的普通模式:
所以我想让我们试试set concealcursor=ic
。这导致不间断的突出显示区域,但随后字符被隐藏。
那么我在这篇文章开头提到的线程是否有某个地方和某种解决方案,或者有什么方法可以使光标线和视觉选择区域在使用时不受干扰set concealcursor=nvic
?
vim - Vim 高亮嵌套区域
我已经使用 vim 几个月了,我仍然在尝试改善我对这个伟大编辑器的体验。
我尝试做的是为香料网表(电子资料)创建一个语法高亮文件。
我试图强调以下模式:
.SUBCKT or_gate AB OUT
(*or_gate* 是该单元的单元
A、B和OUT bieng 引脚的名称)
我尝试做的是用 3 种不同的颜色突出显示它:
- 一个用于 .SUBCKT
- 一个用于 or_gate (单元格)
- 一个用于 A、B 和 OUT(引脚)
所以我正在查看以 .SUBCKT 开头的行,并试图找到一种方法来匹配该行的不同单词。
我尝试了很多不同的syn match组合或嵌套syn region但我只是觉得我做错了。
这是我尝试之一的示例:
syn region spiceCKT start ="\.SUBCKT" end ="$"包含=spiceCell,spicePins
syn region spiceCell start ="\.SUBCKT"rs=e end ="$"包含
syn region spicePins start ="\.SUBCKT\s\S*"rs=e end ="$"包含
I tried to play with the pattern (\s\S*), to add/remove the rs=e parts, or even to define the start or end patterns adding \zs and \ze.
In the end I did not manage to make it work and I just feel like I'm making it way more complicated that it should be.
Anyone could help me figuring out what are my mistakes and how to handle such pattern highlighting?
vim - 在同一个字符上叠加两个 vim 语法匹配
我在 vimscript 中定义了以下语法规则:
稍后,我想将两个高光应用到同一个角色。所以基本上,我尝试了以下方法:
但随后第二场比赛取代了第一场比赛。因此,我进一步阅读了有关 的帮助以及该问题syntax match
的答案,并尝试使用参数:syn match
但它的行为仍然完全相同。
那么,如何使用两个语法匹配来独立更改同一字符的背景和前景呢?
vim - ~/.vimrc 如何推翻 filetype.vim 对语法高亮的错误猜测?
GLSL 语法荧光笔http://www.vim.org/scripts/script.php?script_id=1002效果很好。但它不能识别通常以 .frag 或 .vert 之类的行开头的着色器文件#version 330
。(这是在 Ubuntu 12.04.2 LTS 上,一切都是最新的。)
有了这样一行,加载文件后必须手动键入set syntax=glsl
,可能是因为 /usr/share/vim/vim73/filetype.vim 有
" Generic configuration file (check this last, it's just guessing!)
if
………… getline(1)=~'^#'
_ setf conf
_
为什么这不会被 ~/.vimrc's 否决au BufNewFile,BufRead *.frag,*.vert setf glsl
?有没有在 filetype.vim 中犯错的解决方法?
syntax-highlighting - .vimrc 如何设置自己的文件类型?
针对 SuperUser 上的这个问题,我编写了一个小的 vimscript,它将检测符号链接的文件类型并更改语法突出显示:
au BufNewFile,BufRead * if &syntax == '' | 沉默的!执行 (':set filetype='.matchstr(resolve(@%),'.[^.]*$')[1:]) | 万一
因此,如果我打开一个没有扩展名的符号链接,它将查看它指向的文件的扩展名。
它可以工作,但一个意想不到的结果是,现在我的.vimrc
文件的语法高亮已经消失了。默认情况下,我的 .vimrc 文件具有 vim 语法高亮显示(:echo &syntax
返回vim
)。
但是当我添加上面的行时,:echo &syntax
返回vimrc
(无效类型)。
我不知道为什么会这样。不应该&syntax==''
评估为假,从而保持&syntax==vim
?我怀疑我的代码在语法高亮设置为vim
. 但是,语法高亮究竟是如何(以及何时)设置为vim
for 的.vimrc
?此外,我怎样才能让我的脚本按照它应该的方式运行?