Почему не только используют функцию:
#!/bin/bash
logAndEcho () {
echo -e "$@" >> LOGFILE.txt
echo -e "$@"
}
var=$(logAndEcho "one\ntwo\nThis is a test"|grep one)
echo "var=$var"
Это отправит все результаты в файл журнала и затем повторит данные к stdin, где можно получить его, как Вам нужно.
Я отправил автору по почте (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
Как я сказал в комментарии, 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
Это работает над моей энергией, 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
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