현재 행의 제출 ID에서 Vim을 사용하여 GiitHub의 PR을 엽니다.

7673 단어 GitHubVimtech

개시하다


며칠 전 커밋 IDgetpr에서 PR 링크를 얻을 수 있는 CLI를 제작했다.
CLI만 사용하면 사용하기가 불편해 Vim 사용이 편리하도록 플러그인을 제작했다.

사용 방법이 간단하고:GetprOpen PR 링크를 열고:GetprYank 레지스터에서 거꾸로 돌립니다.
최초 제작getpr은 버그가 발생한 행을 열고 싶은 PR이기 때문에 빔으로 쉽게 할 수 있을 것 같다.

이루어지다


실현은 매우 간단합니다. line('.') 현재 줄을 가져와서 git blame 에서 추출하여 제출할 수 있습니다.
let line = line('.')
let blame_line = system(printf('git blame -L %s,%s -- %s', line, line, file))
이 줄을 얻은 다음에 반각 공간으로 분리하여 첫 번째 제출 id를 얻는다.
let id = blame_line->split(' ')[0]
를 건네주고 getpr로 링크를 받을 수 있습니다.
let url = system(printf('%s %s', 'getpr', id))->trim()
getpr.vim는 두 개의 관건적인 지도를 제공했다. 이 설정을 사용하면 지령 없이 PR을 간단하게 열 수 있어 많은 번거로움을 줄일 수 있다.
map go <Plug>(getpr-open)
map gy <Plug>(getpr-yank)
꼭 시도해 보세요.


평소에 나는 플러그인gina.vim을 사용하는데 이 플러그인도 git blame의 기능을 가지고 있다.

다음과 같은 방법으로 사용자 정의를 하면 ginablame 버퍼 메모리에서 <C-o>를 눌러 PR의 링크를 엽니다.gina 사용자는 반드시 시도해 보십시오.
call gina#custom#mapping#nmap(
      \ 'blame', '<C-o>',
      \ ':<C-u>call GinaOpenPR()<CR>',
      \ {'silent': 1},
      \)

let s:cmd = 'open'
if has('linux')
  let s:cmd = 'xdg-open'
elseif has('win64')
  let s:cmd = 'cmd /c start'
endif

function! GinaOpenPR() abort
  let can = gina#action#candidates()
  let url = system(printf('%s %s', 'getpr', can[0].rev))->trim()
  call system(printf('%s %s', s:cmd, url))
endfunction

좋은 웹페이지 즐겨찾기