#에서부터 git 제출 메시지의 주석을 시작합니다.다음으로 수정

22598 단어 GitVimNeovimtech

개시하다


며칠 전,git의 제출 정보에 #부터 시작하는 줄(부득이하게 노선 케이스에서 실행된 지령을 기록하려 하였는데...)을 추가하여 제출 정보에서 그 부분이 사라지는 실태를 초래하였다.조심하지 않다.
뭐, 본인은 안 좋지만 이것만 있는 게 아니라 #부터 시작하는 줄을 쓰고 싶어요(예를 들어 Markedown으로 쓰고 싶어요?)내 생각에도 있을 것 같아. 조사해 봤는데git의 config를 만들어서 평어를 바꾸고 문자를 시작하는 것 같아서 해봤어.참고로 편집자가 정보를 제출할 때도 네오비엠의 설정을 수정할 테니 저와 사귀세요.

commentChar 변경


git의 설정 변경 자체는 매우 간단하다. .gitconfig에 다음과 같은 내용을 추가하면 된다.
~/.gitconfig
[core]
    commentChar = ";"
시작 문자는 무엇입니까?이 점에 관해서 (나는 다시는 같은 실태를 하고 싶지 않다) 내가 좀 생각해 봤는데, ; 나는 매우 좋다고 생각한다.분호의 평론이 자꾸 그립네요.
이 상태git commit에서 편집기는 다음과 같이 열립니다.좋은 평어;가 시작된다.좀 신선하지만 금방 익숙해질 것 같아요.
gitcommit

; Please enter the commit message for your changes. Lines starting
; with ';' will be ignored, and an empty message aborts the commit.
;
; On branch gitcommit
; Your branch is up to date with 'origin/gitcommit'.
;
; Changes to be committed:
;	modified:   *******
;

neovim 설정 변경


그러면 #시작된 제출 메시지는 잘 쓰여졌지만, 제출 메시지를 편집할 때 일어서는 네오임의 하이라이트 설정#은 평어로 처리했고, 반대로;는 평어로 처리하지 않았다.신경 안 쓰면 괜찮겠지만 어떻게든 신경 쓰니까 이쪽도 좀 바꿔봐요.
2022-04-03 보충
당초에 나는syntax 파일을 덮어써서 대응했지만 @4513echo선생님이 내게 준 평론은 나에게 적당한 운행 시간 파일을 알려주었기 때문에 주로 거기에 설정되었다.감사합니다.미니 모델을 직접 처리하고 싶은 사람은 아래로 스크롤하세요.

tpope/git-vim 가져오기


당신이 나에게 알려준 점심 서류 한 세트는 ↓의 것이다.자세히 보면 필가gitcommit.vim와 같은 분이다.신.기대했던 대로 움직이는 듯한 내용을 대충 읽었다.
https://github.com/tpope/vim-git
내 경우 플러그인 관리자dein.vim를 사용했기 때문에 dein.toml 파일에 다음과 같은 내용을 추가했다.눈 깜짝할 사이.내용상git에서 파일 한 세트를 가져와서 runtimepath에 넣으면 됩니다.
dein.toml
[[plugins]]
repo = 'tpope/vim-git'
주석이 문자를 시작하는 줄을 발견하면 이렇게 ↓의 느낌을 받기 때문에 대응#;뿐만 아니라 대응#;@!$%^&|:도 한다.택시를 타다.
let s:comment = escape((matchstr(getline(s:l), '^[#;@!$%^&|:]\S\@!') . '#')[0], '^$.*[]~\"/')

gitcommit.뷰 변경


!
2022-04-03 보충
보통 전항의 서류를 이용하는 것이 좋다고 생각합니다.최소값을 어떻게든 지원하고 싶다면 아래 내용을 참고하세요.
neovim에서 메시지를 편집할 때filetypegitcommit이기 때문에 하이라이트 설정은 runtimepathsyntax/gitcommit.vim에 기술하면 적용됩니다.neovim이 설치된 디렉터리에서 기본 파일을 모두 빌려주고 수정합니다.
~/.config/nvim/syntax/gitcommit.vim
" Vim syntax file
" Language:	git commit file
" Maintainer:	Tim Pope <[email protected]>
" Filenames:	*.git/COMMIT_EDITMSG
" Last Change:	2019 Dec 05

if exists("b:current_syntax")
  finish
endif

syn case match
syn sync minlines=50

if has("spell")
  syn spell toplevel
endif

syn include @gitcommitDiff syntax/diff.vim
syn region gitcommitDiff start=/\%(^diff --\%(git\|cc\|combined\) \)\@=/ end=/^\%(diff --\|$\|;\)\@=/ fold contains=@gitcommitDiff

syn match   gitcommitSummary	"^.*\%<51v." contained containedin=gitcommitFirstLine nextgroup=gitcommitOverflow contains=@Spell
syn match   gitcommitOverflow	".*" contained contains=@Spell
syn match   gitcommitBlank	"^[^;].*" contained contains=@Spell

if get(g:, "gitcommit_cleanup") is# "scissors"
  syn match gitcommitFirstLine	"\%^.*" nextgroup=gitcommitBlank skipnl
  syn region gitcommitComment start=/^; -\+ >8 -\+$/ end=/\%$/ contains=gitcommitDiff
else
  syn match gitcommitFirstLine	"\%^[^;].*" nextgroup=gitcommitBlank skipnl
  syn match gitcommitComment	"^;.*"
endif

syn match   gitcommitHead	"^\%(;   .*\n\)\+;$" contained transparent
syn match   gitcommitOnBranch	"\%(^; \)\@<=On branch" contained containedin=gitcommitComment nextgroup=gitcommitBranch skipwhite
syn match   gitcommitOnBranch	"\%(^; \)\@<=Your branch .\{-\} '" contained containedin=gitcommitComment nextgroup=gitcommitBranch skipwhite
syn match   gitcommitBranch	"[^ ']\+" contained
syn match   gitcommitNoBranch	"\%(^; \)\@<=Not currently on any branch." contained containedin=gitcommitComment
syn match   gitcommitHeader	"\%(^; \)\@<=.*:$"	contained containedin=gitcommitComment
syn region  gitcommitAuthor	matchgroup=gitCommitHeader start=/\%(^; \)\@<=\%(Author\|Committer\):/ end=/$/ keepend oneline contained containedin=gitcommitComment transparent
syn match   gitcommitNoChanges	"\%(^; \)\@<=No changes$" contained containedin=gitcommitComment

syn region  gitcommitUntracked	start=/^; Untracked files:/ end=/^;$\|^;\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitUntrackedFile fold
syn match   gitcommitUntrackedFile  "\t\@<=.*"	contained

syn region  gitcommitDiscarded	start=/^; Change\%(s not staged for commit\|d but not updated\):/ end=/^;$\|^;\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitDiscardedType fold
syn region  gitcommitSelected	start=/^; Changes to be committed:/ end=/^;$\|^;\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitSelectedType fold
syn region  gitcommitUnmerged	start=/^; Unmerged paths:/ end=/^;$\|^;\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitUnmergedType fold


syn match   gitcommitDiscardedType	"\t\@<=[[:lower:]][^:]*[[:lower:]]: "he=e-2	contained containedin=gitcommitComment nextgroup=gitcommitDiscardedFile skipwhite
syn match   gitcommitSelectedType	"\t\@<=[[:lower:]][^:]*[[:lower:]]: "he=e-2	contained containedin=gitcommitComment nextgroup=gitcommitSelectedFile skipwhite
syn match   gitcommitUnmergedType	"\t\@<=[[:lower:]][^:]*[[:lower:]]: "he=e-2	contained containedin=gitcommitComment nextgroup=gitcommitUnmergedFile skipwhite
syn match   gitcommitDiscardedFile	".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitDiscardedArrow
syn match   gitcommitSelectedFile	".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitSelectedArrow
syn match   gitcommitUnmergedFile	".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitSelectedArrow
syn match   gitcommitDiscardedArrow	" -> " contained nextgroup=gitcommitDiscardedFile
syn match   gitcommitSelectedArrow	" -> " contained nextgroup=gitcommitSelectedFile
syn match   gitcommitUnmergedArrow	" -> " contained nextgroup=gitcommitSelectedFile

syn match   gitcommitWarning		"\%^[^;].*: needs merge$" nextgroup=gitcommitWarning skipnl
syn match   gitcommitWarning		"^[^;].*: needs merge$" nextgroup=gitcommitWarning skipnl contained
syn match   gitcommitWarning		"^\%(no changes added to commit\|nothing \%(added \)\=to commit\)\>.*\%$"

hi def link gitcommitSummary		Keyword
hi def link gitcommitComment		Comment
hi def link gitcommitUntracked		gitcommitComment
hi def link gitcommitDiscarded		gitcommitComment
hi def link gitcommitSelected		gitcommitComment
hi def link gitcommitUnmerged		gitcommitComment
hi def link gitcommitOnBranch		Comment
hi def link gitcommitBranch		Special
hi def link gitcommitNoBranch		gitCommitBranch
hi def link gitcommitDiscardedType	gitcommitType
hi def link gitcommitSelectedType	gitcommitType
hi def link gitcommitUnmergedType	gitcommitType
hi def link gitcommitType		Type
hi def link gitcommitNoChanges		gitcommitHeader
hi def link gitcommitHeader		PreProc
hi def link gitcommitUntrackedFile	gitcommitFile
hi def link gitcommitDiscardedFile	gitcommitFile
hi def link gitcommitSelectedFile	gitcommitFile
hi def link gitcommitUnmergedFile	gitcommitFile
hi def link gitcommitFile		Constant
hi def link gitcommitDiscardedArrow	gitcommitArrow
hi def link gitcommitSelectedArrow	gitcommitArrow
hi def link gitcommitUnmergedArrow	gitcommitArrow
hi def link gitcommitArrow		gitcommitComment
"hi def link gitcommitOverflow		Error
hi def link gitcommitBlank		Error

let b:current_syntax = "gitcommit"
이처럼'행수의#'(정규적 표현의/^#/와'행수의# 이외의(정규적 표현의/^[^#]/'등) 부분을 대략적으로;로 바꿨다.이 파일을 홈 페이지 아래 ~/.config/nvim/syntax/gitcommit.vim 에 설정하면 이 파일을 우선적으로 사용합니다.vim 이런 데 좋은데.

끝말


네오비엠의 하이라이터도 예뻐져서 스트레스 없이 메일을 보낼 수 있어요.대단히 기쁘다.

좋은 웹페이지 즐겨찾기