Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@beckorz
Copy link
Contributor

@beckorz beckorz commented Aug 3, 2018

…are included in the file path.

Fixed bug that can not be recognized correctly if illegal characters are included in the file path.

This pull request #86 .

\a や \repo のファイルパスの場合、コントロールコードと認識され正しく開けなかったので修正しました。ファイルプロトコルも付ける事で、\ではなく、/でも確実に開くように対応。

(付近のコードが冗長になってきてまとめれそうな気がしますが、cygwin環境とか不明です・・・)

@mattn
Copy link
Member

mattn commented Oct 5, 2018

たぶん Windows だと動かないと思います。

@beckorz
Copy link
Contributor Author

beckorz commented Dec 1, 2018

shellslash, noshellslashの関係性+Firefoxの組み合わせなのか当方で現象が出ています。再現性を確認して再度報告します。

@beckorz
Copy link
Contributor Author

beckorz commented Dec 17, 2018

レスポンスが遅くすいません。色々試したのですが、 shellslash, noshellslashは関係なかったようです。

当方、Windows 10 + GVim(8.1 kaoriya) + 標準関連付けブラウザがIE11で、別ブラウザのFirefoxで起動したく、

let g:previm_open_cmd = 'C:/~/Firefox.exe'

の設定をvimrcに入れておりました。
この状態で、:PrevimOpen すると、Firefoxのブラウザ上で二つタブが一度に開く状態になります。
その新しく開いたブラウザのURLを確認すると、

  1. 空URLのタブ
  2. epos/github.com/kannokanno/previm/preview/8d1fc971474a16f8-3892/index.html のタブ

の二つのタブが同時に開き、結果的にその2つ目のURLは www.epos.com に解釈されて正しいURLで開かない状態の不具合がありました。
今回その不具合を直した形です。

上記ケースだと、
C:\Users\user\vimfiles\.cache\dein\repos\github.com\kannokanno\previm\preview\a599736d977f992b-3892\index.html
が正しいファイルパスになり、手動でブラウザのURLに入れる分には正しく開くのですが、
↑ですと \r と \a の箇所ファイルパスがコントロールコードとして解釈されてるような動作のようです。

以下と関連していそうです。

@mattn
Copy link
Member

mattn commented Dec 17, 2018

autoload/previm.vim の L91 に

let s:base_dir = fnamemodify(expand('<sfile>:p:h') . '/../preview', ':p')

と書いてある箇所があり、これが

C:\Users\user\vimfiles\.cache\dein\repos\github.com\kannokanno\previm\preview

を指しているはずなのですが、どうも期待と異なる値が格納されている気がしますね。この行のすぐ下で

let s:base_dir = fnamemodify(expand('<sfile>:p:h') . '/../preview', ':p')
let g:deadbeef = s:base_dir

等として起動、一度 previm を動かして頂いたあと

echo g:deadbeef

とすると s:base の値が確認できるのでお手数ですが確認頂けますか。

@beckorz
Copy link
Contributor Author

beckorz commented Dec 17, 2018

やってみました。
C:\Users\user\vimfiles\.cache\dein\repos\github.com\kannokanno\previm\preview\
の値が入っています。

@mattn
Copy link
Member

mattn commented Dec 17, 2018

ありがとうございます。

call s:system(g:previm_open_cmd . ' "' . substitute(a:preview_html_file,'\/','\\','g') . '"')

ここの箇所で /\ に置換しているんですが、逆に / のまま、つまり

C:/Users/user/vimfiles/.cache/dein/repos/github.com/kannokanno/previm/preview/a599736d977f992b-3892/index.html

のままだと何か問題でますでしょうか?

@mattn
Copy link
Member

mattn commented Dec 17, 2018

↑の行を

call s:system(g:previm_open_cmd . ' "'  . a:preview_html_file . '"') 

もしくは

 call s:system(g:previm_open_cmd . ' "'  . substitute(a:preview_html_file,'\','/','g') . '"') 

で試して貰えますと助かります。

@beckorz
Copy link
Contributor Author

beckorz commented Dec 17, 2018

前者の方はダメで、後者の方は正しく開きます。

@mattn
Copy link
Member

mattn commented Dec 17, 2018

ありがとうございます。すみません理解が遅くようやく原因が分かりました。

@mattn mattn merged commit 03b472f into previm:master Dec 17, 2018
@mattn
Copy link
Member

mattn commented Dec 17, 2018

Thanks

@beckorz
Copy link
Contributor Author

beckorz commented Dec 17, 2018

こちらこそ、わざわざ確認ありがとうございます。
Vim script力を鍛えて、ここらへんの環境ごとの作りをもうちょっと奇麗に出来れば思います。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants