vim-jp / issues

有志で既知のバグや要望を検討・管理し、オフィシャルへの還元をしていきます。
https://vim-jp.org/
341 stars 11 forks source link

netrw x ウィンドウズ のフォルダを開いていたのですが 開いてくれません。vim82 #1437

Closed roverttattsuo7 closed 1 month ago

roverttattsuo7 commented 1 month ago

質問の内容![Uploading Vim74_netrw_x.jpg…]()

vim74香りや では netrw で フォルダの上で x  とすると ウィンドウズ のフォルダを開いていたのですが vim82香りや では netrw でフォルダを移動す ![Uploading Vim74_netrw_x.jpg…]() るだけです。

ウィンドウズ のフォルダ を開きたいのですが、 netrw.vim を解読するのは 自分には難しかったです。 ご存じの方はいらっしゃらないでしょうか。 宜しくお願い致します。

Vimのバージョン

8.2 7.4

Milly commented 1 month ago

Kaoriya版は Vim 8.2 で更新が停止しており、これはかなり古いものになります。 Vim 本体や(netrw を含む)プラグインのメンテナンスは最新版の 9.1 で行われていますので、もし不具合などがあったとしてもここまで古い版では対応が難しいこともあります。

たとえば8.2版の netrw プラグインに不具合があったとして、プラグインだけを9.1版に置き換えても動かない可能性があります。(8.2版には存在しない Vim 本体の新機能を使っている場合など。)

いったん Vim を最新版にして、そこで使いずらい点や不具合をご相談いただくのをお勧めしたいです。

v9.1.0 の正式版は以下からダウンロードできます。 https://www.vim.org/download.php

Shougo commented 1 month ago

https://github.com/vim/vim/blob/master/runtime/autoload/netrw.vim#L6565C4-L6565C108

最新版の netrw を見ると確かに一部マッピングがデフォルトで無効化されているようです。手動でマッピングする必要があると思います

autocmd FileType netrw nmap <buffer> <silent> <nowait> X    <Plug>NetrwLocalExecute
k-takata commented 1 month ago

v7.4 の頃と現在の netrw のコードを確認しましたが、 x のマッピングに関しては変更ありません。 https://github.com/vim/vim/blob/7baa014d0f73c3b2c6831471d047220633651238/runtime/autoload/netrw.vim#L6628

netrw v167 で netrw#BrowseX() の実装に変更が入って、norm! gf を実行した後に return してしまうようになったことでシステムの関連付け実行処理がスキップされるようになっていました。 https://github.com/vim/vim/commit/91359014b359cf816bf943fe2c7d492996263def#diff-39baf27d8f62071617bbef12f874cc[…]0ebd02ec99e7b119474ca870c636a3R5223 意図した動作なのかはよく分かりません。

本家でも同様の指摘があったのですが、未解決のままになっています。 https://github.com/vim/vim/issues/13687

mattn commented 1 month ago

差分見てもバグにしか見えないw

roverttattsuo7 commented 1 month ago

ご対応ありがとうございます。 to k-takata さん

-> netrw#BrowseX() の実装に変更が入って、norm! gf を実行した後に return してしまうようになったことでシステムの関連付け実行処理がスキップされるようになっていました。

自分もやっと見つけました。

fun! netrw#BrowseX(fname,remote) if a:remote == 0 && isdirectory(a:fname) exe "e ".a:fname return

ディレクトリーなら netrw で開いて戻れ という命令が追加されていました。

.\vim82\autoload\netrw.vim で :/fun! netrw#BrowseX(fname,remote)/;+15s/exe/"exe/ge :/fun! netrw#BrowseX(fname,remote)/;+15s/return/"return/ge

こんな感じで fun! netrw#BrowseX(fname,remote) から15行程度の exe と return をコメントアウトすれば、 ウインドウズ のエクスプローラーで フォルダ が 開きました。

ご対応ありがとうございました。

roverttattsuo7 commented 1 month ago

有難うございました

k-takata commented 3 weeks ago

Vim の本体にも取り込まれました。 https://github.com/vim/vim/commit/9f32069b8c4f74aa6af47e2f0ec07f2745feac57 Vim 9.1.0823 以降であれば含まれています。

roverttattsuo7 commented 3 weeks ago

役に立ったと思っていいのでしょうか???? 役に立ったと思い込んでおきます。!

k-takata commented 3 weeks ago

はい!この報告が無ければそのままずっと放置していました。