Сделайте энергию / завихрение распознает https://ссылки

Почему не только используют функцию:

#!/bin/bash
logAndEcho () {
    echo -e "$@" >> LOGFILE.txt
    echo -e "$@"
}
var=$(logAndEcho "one\ntwo\nThis is a test"|grep one)
echo "var=$var"

Это отправит все результаты в файл журнала и затем повторит данные к stdin, где можно получить его, как Вам нужно.

5
09.02.2012, 11:07
2 ответа

Я отправил автору по почте (drchip), вот его ответ:

Здравствуйте,

Netrw v144b уже поддерживает https (можно получить его из http://drchip.0sites.net/astronaut/vim/index.html#NETRW).

Спасибо, Charles Campbell

Веб-сайт с тех пор переместился и может в настоящее время находиться по http://www.drchip.org/astronaut/vim/index.html#NETRW

Для установки его я просто должен был загрузить .vba.gz файл, распаковать его, открыть его с энергией, затем следовать инструкциям (получите файл с :so %).

Мой .vim является объектом управления версиями, Вы видите фиксацию здесь: https://github.com/greg0ire/dotvim/commit/bfbe569ce070383c9f0a7b966ad23a35eefb651f

3
27.01.2020, 20:38

Как я сказал в комментарии, netrw плагине, который обрабатывает http://, не обрабатывает https:// (это от рассмотрения сменного кода). Я вошел в код и добрался https:// при работе (никакие гарантии это без ошибок, но это работало на сайты пары, которые я попробовал). Я создал пару патчей, для netrw.vim и netrwPlugin.vim. Вот то, как применить их, сохранив оригиналы нетронутыми и исправленные версии в Вашей локальной конфигурации:

  • Удостоверьтесь, что у Вас есть a ~/.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

Это работает над моей энергией, 7.3, надо надеяться, Ваша также. В противном случае используйте изменения в качестве руководства и посмотрите, можно ли взломать его.


В случае, если pastebins исчезают, здесь они:

netrwPlugin.patch

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>"))

netrw.patch

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
4
27.01.2020, 20:38
  • 1
    netrwPlugin.patch не удается применяться на мою версию файла. Я использую Fedora, который поставляет энергию 7.3, и я пытался применить патч "вручную" путем редактирования файла, но я получаю странные ошибки: Erreur détectée en traitant function netrw#Nread..netrw#NetRead..<SNR>35_NetrwMethod : ligne 86 : E121: Variable non définie : httpsurm E116: Arguments invalides pour la fonction match(a:choice,httpsurm) == 0 E15: Expression invalide : match(a:choice,httpsurm) == 0 "NetrwMessage" --Le tampon est vide-- Я отправил по почте об этом потоке к адресу, который я нашел здесь: github.com/vim-scripts/netrw.vim –  greg0ire 09.02.2012, 00:04
  • 2
    Получил ту же проблему на работе с Ubuntu, но с другой ошибкой: завихрение жалуется на dav, не включаемый. Вот содержание моего netrwPlugin файла: hastebin.com/jibenaluwi.xml –  greg0ire 09.02.2012, 11:11
  • 3
    , сменный автор ответил мне, он сказал мне, что последняя версия имела поддержку https://, я должен найти его здесь: drchip.0sites.net/astronaut/vim/index.html#NETRW и попытка это позже. –  greg0ire 09.02.2012, 18:51

Теги

Похожие вопросы