标签: vim-syntax-highlighting

MacVim从〜/ .vimrc获取所有设置,但不是颜色,我必须再次获取它

我在MacOS X Mavericks上使用以下〜/ .vimrc和MacVim 7.4:

set guifont=Menlo:h14
set encoding=utf8
set mouse=a
set expandtab
set ts=8
set showcmd
set nocompatible
set backspace=2
set viminfo='20,\"50
set history=50
set ruler
set si
set hlsearch
syntax on
set bg=light
hi Cursor     term=inverse   ctermfg=black                guifg=black  guibg=green
hi Visual     term=inverse   ctermfg=yellow ctermbg=black guifg=yellow guibg=black
hi Comment    term=inverse   ctermfg=grey   ctermbg=black guifg=white  guibg=black
hi Identifier term=NONE      ctermfg=black                guifg=black
hi Constant   term=underline ctermfg=darkred              guifg=red
hi Statement  term=bold      ctermfg=blue                 guifg=blue
hi PreProc    term=NONE      ctermfg=black                guifg=black  gui=underline
hi Special    term=NONE      ctermfg=black …
Run Code Online (Sandbox Code Playgroud)

vim syntax-highlighting macvim vim-syntax-highlighting

9
推荐指数
2
解决办法
2万
查看次数

Vim自定义语法仅突出显示背景

我想在Vim(GUI版本)中自定义语法突出显示.我的语言有一个现有的语法文件.我想添加到该语法,突出显示每行的背景颜色,如果该行开头>.我发现我基本上可以实现这个目标

:syntax match Output /^>.*$/
Run Code Online (Sandbox Code Playgroud)

并添加

:hi Output guibg=LightBlue
Run Code Online (Sandbox Code Playgroud)

到colourscheme.这些Output行中的文本背景以浅蓝色着色,但它也会覆盖前景色.因此大多数语法突出显示都会消失.如何在这些行中保持前景语法突出显示?

另外:有没有办法将背景的高亮显示扩展到这些线的末端(屏幕的右端)?

vim syntax-highlighting vim-syntax-highlighting

8
推荐指数
1
解决办法
690
查看次数

vim没有突出显示一些c ++关键字

我使用vim(安装cygwin)来编写c++程序,但它并不突出一些c++关键字,如new,delete,public,friend,try,但强调其他如namespace,int,const,operator,true,class,include.它也不会改变运营商的颜色.

我从未改变过它的语法文件.它出什么问题了?非常感谢.

我使用定制的配色方案; 当我将其更改为desert配色方案时,突出显示没有问题,但我需要使用该配色方案,并且无法将其更改为其他内容.

我希望它显示程序如下图(我在图片中使用了带有notepad ++的配色方案):

正确着色的例子

但现在它如下图所示: 没有正确着色的

colorscheme这里:

"Tomorrow Night Bright - Full Colour and 256 Colour
" http://chriskempson.com
"
" Hex colour conversion functions borrowed from the theme "Desert256""

 " Default GUI Colours
 let s:foreground = "eaeaea"
 let s:background = "000000"
 let s:selection …
Run Code Online (Sandbox Code Playgroud)

c++ vi vim syntax-highlighting vim-syntax-highlighting

8
推荐指数
1
解决办法
2441
查看次数

当光标线突出显示一条线时,设置列表框的可见性和/或颜色或在vim中隐藏cchar

我知道我可以使用set list listchars=...来显示NonTextSpecialKey字符,以突出显示不同类型的非文本字符.总的来说,这是直截了当的.但是它有一个视觉副作用会让我感到不安 - 当光标线设置为on时,将光标"悬停"在一条线上listchars会以不同的颜色突出显示.这个问题已经在这个线程中提到过,似乎没有一个解决方案可以解决这个问题.

作为一个结果,我开始玩隐藏功能,这给了我不一样的结果.set concealcursor=n||v||i||c让我控制隐藏字符可见的模式.我希望能够看到隐藏的字符,所以我设置了以下内容:

function! ConcealNonText()
    set conceallevel=1
    set concealcursor=nvic
    syntax match NonText / / conceal cchar=·
endfunction

augroup ConcealNonText
    autocmd!
    autocmd VimEnter * call ConcealNonText()
augroup END
Run Code Online (Sandbox Code Playgroud)

因此,无论我目前处于何种模式,它都会突出显示所有空间.但同样会产生令人不安的副作用 - 当我在视觉模式中标记线条或用我的光标线突出显示一条线条时,突出显示区域会在隐藏的地方被中断找到字符.只需看截图:

选定区域的可视模式:

Vim在视觉模式下隐藏了角色

带光标的普通模式:

Vim使用光标线在正常模式下隐藏字符

所以我想我们试试吧set concealcursor=ic.这会导致突出显示区域不间断,但会隐藏字符.

在此输入图像描述

那么是否有一个地方,并在某种程度上解决了我在本文开头提到的线程,或者有什么方法可以在使用时使光标和视觉选择区域不间断set concealcursor=nvic

vim vim-syntax-highlighting

8
推荐指数
1
解决办法
1878
查看次数

降价中的Vim语法和Latex数学

我使用ViM在markdown中编写文档,我也使用latex $$符号(我使用pandoc编译)输入数学.问题是ViM语法不会忽略_美元符号中的下划线,这非常令人讨厌.例如,如果我这样写:

$$ a_1 = 0 $$

然后,由于使用了下划线,Vim会将以下所有文本突出显示为斜体.

我怎么能改变呢?

如果我能用$不同的格式突出显示内部的内容,那也很好.

vim markdown latex pandoc vim-syntax-highlighting

8
推荐指数
1
解决办法
1927
查看次数

自定义Vim HTML语法

我有一个脚本,它读取HTML文件并用~%foo%~Perl设置的值替换出现的内容.像这样的东西:

<span class="~%classname%~">~%hi_mom%~</span>
Run Code Online (Sandbox Code Playgroud)

会在浏览器中产生这样的东西:

<span class="classyclass">Hello World</span>
Run Code Online (Sandbox Code Playgroud)

是的,所以我想使用Vim语法高亮来区分~%foo%~HTML中的出现.默认情况下,HTML语法突出显示将生成HTML元素的属性值Magenta,我希望该~%foo%~部分是DarkMagenta.我在正确的轨道上,因为如果我注释掉tokenQuoted线(或标记线),我会得到所需的结果,但是两个匹配和突出显示未注释,令牌突出显示会覆盖tokenQuoted突出显示.

syntax match token       containedin=ALLBUT,htmlString,htmlValue '\~%[^%]\+%\~'
syntax match tokenQuoted containedin=htmlString,htmlValue        '\~%[^%]\+%\~'
" tokenQuoted assumes htmlString/htmlValue (:highlight String) is Magenta
highlight token          term=none ctermfg=White       guifg=White
highlight tokenQuoted    term=none ctermfg=DarkMagenta guifg=DarkMagenta
Run Code Online (Sandbox Code Playgroud)

我正在使用的文件是在默认html.vim通过 autocmd *.html ~/.vim/syntax/html.vimin 来源后获取的.vimrc.

html vim syntax-highlighting vim-syntax-highlighting

7
推荐指数
1
解决办法
690
查看次数

如何部分“链接”突出显示组?

我正在尝试在我的.vimrc

hi link SyntasticErrorLine SignColumn
hi link SyntasticErrorSign SignColumn
hi SyntasticErrorSign guifg=red ctermfg=red
Run Code Online (Sandbox Code Playgroud)

我想要的是具有SyntasticErrorSign与背景相同SignColumn但具有自定义前景色的突出显示组。

Vim 文档说:

- 只要你对一个链接的组使用 ":highlight" 命令,链接就会被删除。

所以,我这样做的方式无论如何都行不通,有没有办法实现这一目标?

vim syntax-highlighting vim-syntax-highlighting

7
推荐指数
2
解决办法
1593
查看次数

如何从Vim中的语法高亮中排除C++原始字符串文字?

老实说,原始字符串文字是C++语言的一个很好的补充.但是(正如预期的那样)编辑们很难正确地展示这些文字.

我正在使用Vim 7.4和开箱即用的原始字符串文字完全打破语法高亮.例如在

char const txt[] = R"(printf(")";
Run Code Online (Sandbox Code Playgroud)

第二个'('在vim中突出显示为红色.

就像是

char const txt2[] = R"(  "{{"  )";
Run Code Online (Sandbox Code Playgroud)

打破花括号的突出显示和基于语法的自动识别 - 依此类推.

首先,我很乐意让Vim忽略语法高亮之间R"(和之间的所有)"内容.

但请注意,原始字符串文字是灵活的 - 在第一个/最后一个双引号/括号对之间允许任意匹配字符串,例如

R"abcd()")")abcd"
Run Code Online (Sandbox Code Playgroud)

也是一个有效的原始字符串文字编码

)")"

另请参阅cppreference链接以获取语法的一般定义.

因此,我的问题是如何配置Vim,以便正确识别C++原始字符串文字.

Vim似乎已经包含了一些正确的synatx功能,突出了嵌入在宿主语言中的语言片段(例如,对于编译器 - 编译器源文件).也许它们也可以用于原始字符串文字案例?

c++ vim rawstring c++11 vim-syntax-highlighting

7
推荐指数
2
解决办法
1236
查看次数

在vim上将项目设置为更高的突出显示优先级

我希望非ascii字符显示在这里讨论,但是当非ascii字符在注释中时,语法高亮消失.稍微调查一下这个问题,我在vim-manual上发现,先前启动的项目具有更高的优先级(第3项).来自help :syn-priority:

当多个语法项可能匹配时,将使用以下规则:

  1. 当多个匹配或区域项目在同一位置开始时,最后定义的项目具有优先级.

  2. 关键字优先于匹配和区域项.

  3. 从较早位置开始的项目优先于在以后位置开始的项目.

我目前正在使用这个:

syntax match nonascii "[^\x00-\x7F]" 
highlight nonascii cterm=underline ctermfg=red ctermbg=none term=underline
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下选项给nonascii匹配项更高优先级nextgroup:

syntax match nonascii "[^\x00-\x7F]" nextgroup=Comment
Run Code Online (Sandbox Code Playgroud)

contains选项:

syntax match nonascii "[^\x00-\x7F]" contains=ALL
Run Code Online (Sandbox Code Playgroud)

但它不起作用.我还尝试暂时禁用评论(highlight clear Comment)而没有达到预期的效果(我的评论没有突出显示,但是nonascii继续没有突出显示).我错过了什么?

vim vim-syntax-highlighting

7
推荐指数
1
解决办法
1356
查看次数

停止在Vim中突出显示Go文件的尾随空格

出于某种原因,似乎带有Go文件的vim的默认设置是用红色突出显示尾随空格.在某种程度上这很好,但大多数情况下我发现它很烦人,因为每次我输入一个空格时它都会以红色突出显示.有没有办法阻止这种行为?我只用Go文件体验过这个.下面是我的vimrc,但我认为我没有放任何会影响它的东西.

set nocompatible
syntax on
set autoindent
set tabstop=4 softtabstop=0
autocmd FileType go set tabstop=8 softtabstop=0
set formatoptions=tcroql
set relativenumber
set incsearch
set hlsearch
set smartindent
filetype indent on
Run Code Online (Sandbox Code Playgroud)

vim go vim-syntax-highlighting

7
推荐指数
1
解决办法
1136
查看次数