Ich habe diese Materialien einmal erhalten, damit dieser Helfer vim
eine Art vertikale Linie anzeigen kann, um die Durchsetzung der PEP8-Regeln zur Begrenzung der Zeilenlänge in Spalte 80 zu unterstützen:
" Long lines highlighting.
nnoremap <Leader>H :call<SID>LongLineHLToggle()<cr>
hi OverLength ctermbg=none cterm=none
match OverLength /\%>80v/
fun! s:LongLineHLToggle()
if !&diff
if !exists('w:longlinehl')
let w:longlinehl = matchadd('ErrorMsg', '.\%>80v', 0)
echo "Long lines highlighted"
else
call matchdelete(w:longlinehl)
unl w:longlinehl
echo "Long lines unhighlighted"
endif
endif
endfunction
In Aktion:
Ich benutze all dies, um die 80. Spalte zu markieren.
Bei genügend Zeit und Mühe könnte ich eine ähnliche Möglichkeit haben vim
, Text weit über Spalte 72 hinaus nur dann zu markieren, wenn ich ihn kommentiere. Ich denke, es wurde schon irgendwann irgendwo von jemandem codiert. Wissen Sie bereits, wo Sie dieses Snippet finden können?
synID()
und markiert istsynIDattr()
. So etwas wie:if ((synIDattr(synID(line("."), 72, 0), "name") =~ 'comment\c')
nnoremap
oderautocmd
oder etwas verknüpfen ? Schreiben Sie das auf die:
Konsole warfE110
undE15
🙁.Antworten:
Versuchen Sie es mit einem enthaltenen Syntaxbereich:
50
Verwenden Sie stattdessen80
oder72
oder eine beliebige Spalte, die Sie bevorzugen.quelle
vim
Version ist das?vim --version
präsentierenVIM - Vi IMproved 8.0.586 ...
? Ich bin mir nicht sicher, was ich tue, aber ich denke, es funktioniert nicht für mich als Ihre. Meins sagtVIM - Vi IMproved 7.4 (2013 Aug 10, compiled Mar 10 2017 00:54:29) ...
, das ist das Vanille-VIM von Debian Jessie.containedin=pythonComment
. Wenn Sie einen anderen Dateityp verwenden, müssen Sie den Syntaxbereich für Kommentare nachschlagen und diesen stattdessen verwenden.vimrc
funktioniert nicht, da später geladene Syntaxdateien wahrscheinlich alle aktuellen Regeln löschen würden. Verwenden Sie ein Autocmd oder~/.vim/after/syntax/python.vim
.