我正在尝试在VIM中编写语法高亮显示器.你如何在另一场比赛中突出显示一场比赛?
为了找到每个匹配,我创建了两syn match行,它们在匹配是分开的情况下工作.
syn match celString "^xpath=.\{-};" -> matches "xpath=.........;"
syn match celComment "\${.\{-}}" -> matches "${LIB_METADATA};"
Run Code Online (Sandbox Code Playgroud)

xpath字符串的第一行是粉红色,字符串是蓝色${..}.
xpath字符串的第二行是粉红色,但${..}忽略该字符串中包含的内容.
我试图改变syn match线的顺序,但这没有任何影响.
我很感激你的想法.
我是 Vim 的新手,很好奇如何在定义函数后突出显示函数调用。作为一个例子,在SublimeText版本,totalForArray是绿色的定义时,以及当它被称为第12行这是我的Vim的样子imgur.com/q2WMQ4d,我想知道如何使totalForArray调用时突出显示。
我已将 zenburn colorcheme 安装到 ~/.vim/colors 并尝试在 .vimrc 文件中默认启用它。
我已添加colorscheme zenburn到我的 .vimrc 文件中,但 vim 启动后未启用颜色方案。如果我手动:colorscheme zenburn设置颜色方案。
如果我在 vimrc 中启用 vi 附带的颜色方案(例如 Desert ),它会在 vim 启动时启用。
这是我的 vimrc
filetype plugin on
filetype indent on
set nocompatible
set history=500
syntax on
set expandtab
set tabstop=4
set shiftwidth=4
set softtabstop=4
set number
set autoindent
set cindent
set showmatch
set matchtime=5
set ruler
set laststatus=2
set hlsearch
set incsearch
set cursorline
set scrolloff=5
"set nowrap
set foldenable
set foldmarker={,}
set foldmethod=marker …Run Code Online (Sandbox Code Playgroud) 我跳到同事的电脑上,尝试在 vim 中打开一个 C++ 文件,并得到以下错误 -
E484: Can't open file /usr/local/share/vim/syntax/syntax.vim
Run Code Online (Sandbox Code Playgroud)
有趣的是,该位置/usr/local/share/vim/甚至不存在。看起来vim安装在/usr/share/vim
我尝试破解 ~/.vimrc,但我认为 ~/.vimrc 很好,因为我 ssh 进入另一台机器,vim 能够在那里进行语法高亮显示。
这是在 debian 7 上。另外,有趣的是,当我env从 tcsh 执行时,我没有看到那里列出了 VIMRUNTIME。
有什么建议?
我使用的是 Vim 8.0 及其syntax/markdown.vim附带的默认版本,即Tim Pope 的 vim-markdown包的 2016-08-20 版本。
这个包有一个错误,在某些文件上确实让我烦恼:它将任何由四个或更多空格缩进的行视为代码块,包括列表延续。因此,在以下内容中:
1. Agenda Item 1: Frob the Bazzit
- The bazzit is something that makes us have
very _short_ lines indeed.
- Further frobbing is necessary
Run Code Online (Sandbox Code Playgroud)
该行将very _short_ lines indeed突出显示为代码块,并且该单词short不会变为斜体。
我很高兴完全禁用代码块突出显示,至少在这些情况下,但事后我不知道如何做到这一点。我一直在测试~/.vim/after/syntax/markdown.vim调整配置,但我不知道如何,一旦
syn region markdownCodeBlock start=" \|\t" end="$" contained
Run Code Online (Sandbox Code Playgroud)
已在系统中执行,markdown.vim我可以在我的after/syntax/markdown.vim. 我该怎么做呢?
(我尝试过使用highlight link markdownCodeBlock NONE,它确实禁用了这些行上的代码块颜色,但不幸的是它们仍然被标记为代码块区域,并且仍然不突出显示其中的任何其他标记,例如_italic_内`code`联标记。)
好吧,这可能是一个愚蠢的问题,但......
我有一个专有语言的源代码文件.我想用VIM编辑所述文件,而不是他们糟糕的编辑器.我想要语言的基本语法高亮,但我不想花费大量时间来编写自己的语法文件.
因此,VIM有一个基本的源突出显示模块吗?它不需要是完美的,我只是希望它涵盖简单的事情.目前,我唯一的选择是没有语法高亮,选择随机语言,或自己滚动.
编辑:下面的源代码示例
{
function letter do
gposition 0, 0
if gender = "M" do
if language = "SPA" OR state = "PR" do
%male spanish letter
gposition .26, .75
pdfimage "MALE SPANISH.pdf", 1, .93
setcolor truewhite
setfillmode 1
%whitebox
gposition 5.25, 1.25
rectangle 2.5, .5
Run Code Online (Sandbox Code Playgroud) 我知道有一个用于vim的彩虹插件,用于打开和关闭括号的颜色,我知道vim可以突出显示匹配的括号.我希望vim强调我目前所在的括号范围内的所有内容.
例如:让| 是当前的光标位置,然后:
(a|bc (de fg))
Run Code Online (Sandbox Code Playgroud)
会强调一切.
(abc (de |fg))
Run Code Online (Sandbox Code Playgroud)
只会强调(de fg).
这甚至可能吗?
我想根据文件扩展名更改文件类型vim.
我在我的代码中有以下代码 .vimrc
autocmd BufNew,BufNewFile,BufRead *.txt,*.text,*.md,*.markdown setlocal ft=markdown
Run Code Online (Sandbox Code Playgroud)
但是当我使用扩展.md文件打开文件时,文件类型不会更改.我运行:set ft命令,它显示输出为filetype=modula2.
我做错了吗?
编辑:
我开始通过重命名我的旧.vimrc文件进行调试,并用这一行创建了一个新文件.它运作正常.然后我替换了我的旧.vimrc文件,一切似乎都运行正常.猜猜是因为我正在使用的一些插件中的一些问题.
但接受ZyX的答案,因为它认为我是另一种方法.
我正在使用现代fortran进行并行编程.我正在使用vim,我真的很讨厌fortran.vim语法文件似乎不处理像!$ omp或!dir $这样的编译器指令.这些只是在vim中呈现为注释,因此它们不会脱颖而出.在c/c ++中,这些编译器指令是使用#pragma完成的,所以一切都像预处理器代码而不是注释代码一样突出.所以我想用我的fortran语法进行类似的处理.这是我想要着色的多行指令的示例:
!$omp parallel do reduction(+: sum0) reduction(+: sum1) &
private( nn, S1, S2, Y1, Y2, rvec0, rvec1, iThreadNum)
Run Code Online (Sandbox Code Playgroud)
到目前为止我所拥有的是一个位于$ HOME/.vim/after/syntax中的新fortran.vim文件.我已经让它在一行的开头识别出'!$ omp',并为该行着色并正确地为多线条着色.我的语法文件包含:
syn region fortranDirective start=/!$omp.*/ end=/[^\&]$/
hi def link fortranDirective PreProc
Run Code Online (Sandbox Code Playgroud)
我的问题是它现在无法处理只有一行的简单情况.即:
!$omp parallel do blah blah
call foobar <-- this is coloured the same as the line above
Run Code Online (Sandbox Code Playgroud)
我需要在语法文件中使用某种正则表达式规则才能正确匹配单行和续行.有人可以帮忙吗?
我的目标是使用扩展程序对文件进行语法突出显示,*.tt到目前为止,每次都是令人沮丧的"不".
我找到了这个vim-perl插件.使用遗留方法'make install'安装,没有任何反应.尝试使用病原体.
我正在尝试启用语法突出显示的文件有扩展名*.tt,我注意到vim-perl有tt2.vim文件.
我不是VIM的专家,但我很确定我已正确安装它.假设这么多,应该改变任何一个名为VIM,Perl的文件tt2.*来tt.*工作(我已经试过了,事实并非如此)?
是什么赋予了?
vim syntax-highlighting template-toolkit vim-plugin vim-syntax-highlighting