В моем случае у меня есть ряд правил синтаксиса, определенных для того, чтобы такие вещи были легко обнаружены.
highlight ImproperSyntax ctermbg=red guibg=red
au BufWinEnter * syn match ImproperSyntax /\s\+$\| \+\ze\t/ "Spaces at the end of lines or BEFORE tabs
au Filetype cpp,c syn keyword ImproperSyntax dynamic_cast "disallowed keyword
au Filetype cpp,c syn match ImproperSyntax /[^\n]\%$/ display "Last line should be blank
au Filetype cpp,c syn match ImproperSyntax /\t/ display "No tabs!
au Filetype cpp,c syn match ImproperSyntax /,\S/ display "comma always has a space
au Filetype cpp,c syn match ImproperSyntax /\%80v.*$/ "Highlight any characters passed column 80
дополнительный прием, который можно использовать, чтобы включить все эти в функцию (или список/словарь), а также отображать их как ошибку либо на строках статуса (мое предпочтение), или к пользователю как ошибка.
Что касается проверки в CVS ... Я не уверен в CVS, но SVN и hg (и, по-видимому, большинство других систем контроля версий) могут быть проинструктированы выполнить серию «предварительных фиксаций», прежде чем разрешить вам совершать. Один из них может быть легко запрограммирован для сканирования такого же поведения (возможно, с каким-то символом переопределения).
За регистрацию CVS (мои соболезнования) вы можете открыть другой вопрос. Чтобы получить четкий ответ, постарайтесь сосредоточиться на одиночной проблеме за раз. Постскриптум И поскольку теги для CVS отсутствуют, вы не будете получать много внимания от людей, которые могут наблюдать за тегами. – Dummy00001
@Dummy: - Спасибо. Я открою новый вопрос для проверки CVS. –