나는 한 textwidth
80 자로 설정하고, 나는 75 개 문자로 설정된 gitcommit
파일입니다.
문제는 우리 회사의 git 커밋에는 항상 커밋에 대한 일부 메타 데이터를 나타내는 마지막 줄이 있습니다 (버전 번호, 관련 티켓 등을 범프하는지 여부). 내가하고 싶은 것은이 마지막 줄의 텍스트 너비를 끄는 것입니다. 이 마지막 줄은 항상 "(patch)", "(minor)"또는 "(major)"(semver 자동 게시의 경우)로 시작합니다.
현재 내 구문 파일에서 다음을 사용하여이 메타 데이터 줄이 강조 표시되도록합니다.
syn match autoPublishLine "^\((patch)\|(minor)\|(major)\).*"
hi def link autoPublishLine Special
이 작품은 난에 기대하지만, 내가 정말 좋아 할 것입니다 것은으로 도 그것은이 한 줄에 대한 단어를 포장하지 않도록,이 라인에 대한 textwidth 설정을 해제합니다.
내가 어떻게 할 수 있을지 아십니까?
빠른 해킹으로 'textwidth'
커서가 움직일 때마다 값을 조정할 수 있습니다 .
:autocmd CursorMoved,CursorMovedI <buffer> let &l:textwidth = (getline('.') =~# '^\((patch)\|(minor)\|(major)\)' ? 0 : 75)
~/.vim/ftplugin/gitcommit_textwidth.vim
Git 커밋 메시지에 자동으로 적용되도록 해당 명령을에 넣을 수 있습니다 .
패턴의 중복을 방지하기 위해 내 OnSyntaxChange 플러그인을 사용하면 :autocmd
기본 구문 그룹의 변경 사항에 반응 하는를 설정할 수 있습니다 . 기본적으로 위의 솔루션처럼 작동하지만 훨씬 더 정교한 수준에서 작동합니다.
call OnSyntaxChange#Install('AutoPublish', '^autoPublishLine$', 1, 'a')
autocmd User SyntaxAutoPublishEnterA setlocal textwidth=0
autocmd User SyntaxAutoPublishLeaveA setlocal textwidth=75
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다