vim/curl이 https:// 링크를 인식하도록 허용

vim/curl이 https:// 링크를 인식하도록 허용

저는 최근 vim/vimdiff가 링크를 열 수 있다는 사실을 발견했습니다(curl을 사용하는 것 같습니다). 이는 훌륭한 기능입니다. 오늘은 다음과 같이 사용하고 싶습니다.

vimdiff 종속성https://raw.github.com/symfony/symfony-standard/v2.0.10/deps

하지만 https://이 멋진 메커니즘도 작동되지 않는 것 같습니다. 이 페이지에는 인증이 없으며 https://데이터 암호화만 제공하는 것 같습니다. vim이 이 프로토콜을 인식하도록 강제하는 방법은 무엇입니까 https://?

답변1

내가 댓글에서 말했듯이, 이것을 처리하는 netrw 플러그인은 http://그렇지 않습니다 https://(플러그인 코드를 보면 알 수 있습니다). 코드를 입력하고 https://작업을 시작했습니다(버그가 없다고 보장할 수는 없지만 시도해 본 몇몇 사이트에서는 작동합니다). 나는 다음을 위해 한 쌍의 패치를 만들었습니다.netrw.vim그리고netrwPlugin.vim. 이를 적용하는 방법은 다음과 같습니다. 이때 원래 버전은 그대로 두고 패치 버전은 로컬 구성에 둡니다.

  • ~/.vim/autoload및 디렉토리가 있는지 확인하십시오 ~/.vim/plugin.
  • ~/.vim/patches/netrw.patch패치를 다운로드하고 저장한 위치를 기억하세요( 및 에 있다고 가정합니다 ~/.vim/patches/netrwPlugin.patch).
cp /usr/share/vim/vimcurrent/autoload/netrw.vim ~/.vim/autoload
cp /usr/share/vim/vimcurrent/plugin/netrwPlugin.vim ~/.vim/plugin
patch ~/.vim/autoload/netrw.vim ~/.vim/patches/netrw.patch
patch ~/.vim/plugin/netrwPlugin.vim ~/.vim/patches/netrwPlugin.patch

이것은 내 vim 7.3에서 작동합니다. 여러분의 vim에서도 작동하길 바랍니다. 그렇지 않은 경우 이러한 변경 사항을 가이드로 사용하여 해킹할 수 있는지 확인하세요.


붙여넣기 상자가 사라진 경우 다음과 같습니다.

netrw 플러그인.패치

56c56
<  au BufReadCmd   ftp://*,rcp://*,scp://*,http://*,dav://*,davs://*,rsync://*,sftp://* exe "silent doau BufReadPre ".fnameescape(expand("<amatch>"))|call netrw#Nread(2,expand("<amatch>"))|exe "silent doau BufReadPost ".fnameescape(expand("<amatch>"))
---
>  au BufReadCmd   ftp://*,rcp://*,scp://*,http://*,https://*,dav://*,davs://*,rsync://*,sftp://*   exe "silent doau BufReadPre ".fnameescape(expand("<amatch>"))|call netrw#Nread(2,expand("<amatch>"))|exe "silent doau BufReadPost ".fnameescape(expand("<amatch>"))

네트워크 패치

682c682
<    if choice =~ "^.*[\/]$" && b:netrw_method != 5 && choice !~ '^http://'
---
>    if choice =~ "^.*[\/]$" && b:netrw_method != 5 && choice !~ '^http://' && choice !~ '^https://'
835c835
<    elseif     b:netrw_method  == 5
---
>    elseif     b:netrw_method  == 5 || b:netrw_method  == 50
850c850,854
<       exe s:netrw_silentxfer."!".g:netrw_http_cmd." ".shellescape("http://".g:netrw_machine.b:netrw_fname,1)." ".g:netrw_http_xcmd." ".shellescape(tmpfile,1)
---
>       if b:netrw_method  == 5
>        exe s:netrw_silentxfer."!".g:netrw_http_cmd." ".shellescape("http://".g:netrw_machine.b:netrw_fname,1)." ".g:netrw_http_xcmd." ".shellescape(tmpfile,1)
>       else 
>        exe s:netrw_silentxfer."!".g:netrw_http_cmd." ".shellescape("https://".g:netrw_machine.b:netrw_fname,1)." ".g:netrw_http_xcmd." ".shellescape(tmpfile,1)
>       endif
853c857,861
<       exe s:netrw_silentxfer."!".g:netrw_http_cmd." ".shellescape(tmpfile,1)." ".shellescape("http://".g:netrw_machine.b:netrw_fname,1)
---
>       if b:netrw_method == 5 
>        exe s:netrw_silentxfer."!".g:netrw_http_cmd." ".shellescape(tmpfile,1)." ".shellescape("http://".g:netrw_machine.b:netrw_fname,1)
>       else 
>        exe s:netrw_silentxfer."!".g:netrw_http_cmd." ".shellescape(tmpfile,1)." ".shellescape("https://".g:netrw_machine.b:netrw_fname,1)
>       endif
865c873,877
<      exe s:netrw_silentxfer."!".g:netrw_http_cmd." ".shellescape(tmpfile,1)." ".shellescape("http://".g:netrw_machine.netrw_html,1)
---
>      if b:netrw_method == 5
>       exe s:netrw_silentxfer."!".g:netrw_http_cmd." ".shellescape(tmpfile,1)." ".shellescape("http://".g:netrw_machine.netrw_html,1)
>      else 
>       exe s:netrw_silentxfer."!".g:netrw_http_cmd." ".shellescape(tmpfile,1)." ".shellescape("https://".g:netrw_machine.netrw_html,1)
>      endif
1565a1578
>   let httpsurm = '^https://\([^/]\{-}\)\(/.*\)\=$'
1598a1612,1618
>   " Method#5.5: https://user@hostname/...path-to-file {{{3
>   elseif match(a:choice,httpsurm) == 0
> "   call Decho("https://...")
>    let b:netrw_method = 50
>    let g:netrw_machine= substitute(a:choice,httpsurm,'\1',"")
>    let b:netrw_fname  = substitute(a:choice,httpsurm,'\2',"")
> 
7075c7095
<   if w:netrw_method == 2 || w:netrw_method == 5
---
>   if w:netrw_method == 2 || w:netrw_method == 5 || w:netrw_method == 50

답변2

나는 저자(drchip)에게 이메일을 보냈고 그의 답변은 다음과 같습니다.

안녕하세요,

Netrw v144b는 이미 https를 지원합니다(다음에서 다운로드할 수 있습니다). http://drchip.0sites.net/astronaut/vim/index.html#NETRW).

고마워요, 찰스 캠벨

홈페이지가 이전되어 현재 다음 주소에서 확인하실 수 있습니다.http://www.drchip.org/astronaut/vim/index.html#NETRW

설치하려면 .vba.gz 파일을 다운로드하고 압축을 푼 다음 vim으로 열고 지침을 따랐습니다( Get the File 사용 :so %).

내 .vim은 버전 제어를 받고 있으며 여기에서 커밋을 볼 수 있습니다.https://github.com/greg0ire/dotvim/commit/bfbe569ce070383c9f0a7b966ad23a35eefb651f

관련 정보