저는 최근 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