als „too much php“ hat gesagt, es gibt keinen direkten Weg zu sagen "Erstellen Sie einen Wert, der wie dieser aussieht und fett hinzufügen". Der beste Weg ist, Ihr Farbschema zu ändern. Wenn Sie kein benutzerdefiniertes Farbschema verwenden, kopieren Sie eines aus dem vim-Installationsverzeichnis in das Verzeichnis ~/.vim/colors und bearbeiten Sie es entsprechend. Alternativ können Sie auf der vim scripts-Seite suchen und einige der vielen verfügbaren ausprobieren.
Schamloser Stecker: Wenn Sie einen, der einfacher zu bearbeiten ist als das Standardformat, versuchen Sie meine "Bandit" colour scheme.
Wenn Sie wirklich möchten in der Lage sein, fett im laufenden Betrieb hinzuzufügen, benötigen Sie ein ziemlich komplexes Skript, wie das untenstehende. Beachten Sie, dass dies nicht für die nächste Sitzung gespeichert werden, wenn Sie es automatisch aufrufen, nachdem Ihr Farbschema geladen oder durch so etwas wie tun:
:autocmd ColorScheme AddBoldToGroup my_highlight_group
Das Skript in allen Ungeheuerlichkeit unten ist es. Soweit mir bekannt ist, gibt es keinen wesentlich schnelleren Weg! Natürlich könnten Sie ein paar Zeilen speichern, indem Sie weniger ausführlichen Code schreiben, aber die allgemeine Idee, redir
und silent hi
wiederholt zu verwenden, ist der einzige Weg.
" Call this with something like
"
" :AddBoldToGroup perlRepeat
"
command! -complete=highlight -nargs=1 AddBoldToGroup call AddBoldToGroup(<f-args>)
function! AddBoldToGroup(group)
" Redirect the output of the "hi" command into a variable
" and find the highlighting
redir => GroupDetails
exe "silent hi " . a:group
redir END
" Resolve linked groups to find the root highlighting scheme
while GroupDetails =~ "links to"
let index = stridx(GroupDetails, "links to") + len("links to")
let LinkedGroup = strpart(GroupDetails, index + 1)
redir => GroupDetails
exe "silent hi " . LinkedGroup
redir END
endwhile
" Extract the highlighting details (the bit after "xxx")
let MatchGroups = matchlist(GroupDetails, '\<xxx\>\s\+\(.*\)')
let ExistingHighlight = MatchGroups[1]
" Check whether there's an existing gui= block
let MatchGroups = matchlist(ExistingHighlight, '^\(.\{-}\) gui=\([^ ]\+\)\(.\{-}\)\?$')
if MatchGroups != []
" If there is, check whether "bold" is already in it
let StartHighlight = MatchGroups[1]
let GuiHighlight = MatchGroups[2]
let EndHighlight = MatchGroups[3]
if GuiHighlight =~ '.*bold.*'
" Already done
return
endif
" Add "bold" to the gui block
let GuiHighlight .= ',bold'
let NewHighlight = StartHighlight . GuiHighlight . EndHighlight
else
" If there's no GUI block, just add one with bold in it
let NewHighlight = ExistingHighlight . " gui=bold"
endif
" Create the highlighting group
exe "hi " . a:group . " " NewHighlight
endfunction
Shameless Stecker: Wenn Sie nicht wollen, ganze colorschemes in Ihrem .vim Ordner kopieren, [dieses Plugin] (http://www.vim.org/scripts/script.php?script_id=1641) ermöglicht Ihnen, kleine Anpassungen in .vim/after/colors zu setzen. Und Bravo, um diesen Code zu veröffentlichen, würde ich dir +4 geben, wenn ich könnte. –
@too viel php: Das Plugin sieht gut aus, danke für den Link (und für die Bravo!) – DrAl
Fügen Sie diesen Code vor dieser Zeile: "Extrahieren Sie die Hervorhebung Details (das Bit nach" xxx ") (Die Nazi ignoriert meine Bearbeitung für einige alt-links Grund, und sie sind falsch. Sie brauchen diesen Code oder sonst die Regex wird nicht wie erwartet funktionieren, wenn ausführlich eingeschaltet ist): "Trim verbose-Modus Highlight-Ausgabe, siehe: help highlight-worse if & verbose Lassen Sie GroupDetails = ersetzen (GroupDetails, '\ s \ + \ Zuletzt festgelegt von \ _. *', '', 'G') endif – FocusedWolf