如何在vim中禁用加粗字体?

13

我已经从颜色语法文件slate.vim中删除了所有加粗的引用(gui=bold, cterm=bold, term=bold),但我仍然看到一些粗体文本。例如,在Python文件中,关键字class、def、try、except、return等仍以粗体蓝色字体显示。

还有就是如何禁用状态消息中的粗体字,比如“recording”或“Press ENTER or type command..”?


2
http://www.pixelbeat.org/settings/.gvimrc - devskii
7个回答

9

不要删除=bold的引用,而是应该将其替换为

gui=NONE
cterm=NONE
term=NONE

不确定为什么,但这几乎让我在macvim中的所有东西都崩溃了。 - f1lt3r
@AlistairMacDonald 您确定只是在 slate.vim 文件中将 =bold 引用替换为 =NONE 吗? - Tassos
1
不,我是在我的.vimrc文件中完成的。我在颜色文件中做了这个,现在它可以工作了。谢谢!你可以更明确地解释一下,这样你的回答就会得到我的点赞。 - f1lt3r
3
因为90%的vim命令需要写入.vimrc文件,但这篇文章没有提到,所以我会给你点个踩。请注意,在文章中不应该省略这一点。 - dwanderson
@dwanderson 只是提供信息,这些是 highlight 命令的参数,这是由问题所暗示的。 - Tassos

8
将以下行放入 .vimrc 文件中。
set t_md=

这是最简单的解决方案。不会影响其他任何东西的正常运行。 - Gustavo Pinsard
对我来说,在 Windows 上的 gVim 上无法工作。只是说一下。 - Armen Michaeli

4

如果有人在MacOS上使用iTerm并且也遇到了这个问题(因为在Ubuntu下相同的颜色方案和vimrc设置从未给我带来这个问题),则在iTerm的Preference->Profiles->text选项中有一个选项可以停止iTerm渲染任何粗体文本。这是一个更简单和更快速的解决方法。


3

请尝试删除standout的出现。

您可以通过以下方式找到高亮显示组:

:sp $VIMRUNTIME/syntax/hitest.vim | source %

您可以通过以下方式找到定义颜色和字体选项的位置:

:verbose highlight ModeMsg

(将ModeMsg替换为您的高亮组)


1
在vim中,:scriptnames会显示在vim启动时加载的所有脚本列表。
在bash中,grep -rl "=bold" $VIM会显示您vim文件夹中包含该字符串的所有文件列表。如果未设置$VIM,或者文件名中有空格(Windows用户),请cd到您的vim目录并使用.代替$VIM运行该命令。
您可以比较这两个列表以找到需要编辑的文件。按照Tassos之前的回答,将=bold替换为=NONE
另外注意::hi会显示所有当前的高亮格式,并提供示例以演示实际呈现的语法。在我的情况下,standout对字体是否加粗没有影响。
以下是最简单的方法:
  1. 进入 /colors 目录,输入 sed -i 's/=bold/=NONE/g' *.vim

  2. 进入 /syntax 目录,输入 sed -i 's/=bold/=NONE/g' *.vim

这将替换所有 *.vim 文件中的每个实例。


2
在Windows中,粗体对我来说是个问题。自从转换到Ubuntu后,在vim和gvim中,粗体变得很漂亮。(在Ubuntu中,似乎所有应用程序的字体都看起来更好。) - codingcoding

0

0

@devskii的评论中的答案对我非常有效。我将在这里特别包含取消加粗部分并维基化答案。(如果@devskii想把它作为答案,我会删除这个...如果我可以删除维基答案的话。)


把以下代码放进你的 .gvimrc 文件里,然后享受吧:
" Steve Hall wrote this function for me on vim@vim.org
" See :help attr-list for possible attrs to pass
function! Highlight_remove_attr(attr)
    " save selection registers
    new
    silent! put

    " get current highlight configuration
    redir @x
    silent! highlight
    redir END
    " open temp buffer
    new
    " paste in
    silent! put x

    " convert to vim syntax (from Mkcolorscheme.vim,
    "   http://vim.sourceforge.net/scripts/script.php?script_id=85)
    " delete empty,"links" and "cleared" lines
    silent! g/^$\| links \| cleared/d
    " join any lines wrapped by the highlight command output
    silent! %s/\n \+/ /
    " remove the xxx's
    silent! %s/ xxx / /
    " add highlight commands
    silent! %s/^/highlight /
    " protect spaces in some font names
    silent! %s/font=\(.*\)/font='\1'/

    " substitute bold with "NONE"
    execute 'silent! %s/' . a:attr . '\([\w,]*\)/NONE\1/geI'
    " yank entire buffer
    normal ggVG
    " copy
    silent! normal "xy
    " run
    execute @x

    " remove temp buffer
    bwipeout!

    " restore selection registers
    silent! normal ggVGy
    bwipeout!
endfunction
autocmd BufNewFile,BufRead * call Highlight_remove_attr("bold")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接