vim-vinegar icon indicating copy to clipboard operation
vim-vinegar copied to clipboard

g:netrw_altfile = 1 doesn't work as expected for files in subdirectories

Open smlx opened this issue 1 year ago • 3 comments

Hi, first thanks for the great plugin. It's a real game changer for my workflows and has worked well for years.

I've recently found that let g:netrw_altfile = 1 doesn't work as expected with vim-vinegar. However it does work for :Explore! Let me give some scenarios to explain.

Assume I am in a directory with a subdirectory subdir containing file1, and file2. let g:netrw_altfile = 1 is set.

Scenario 1 (:Explore works as expected):

  1. nvim subdir/file1 to open file1.
  2. :Explore to open netrw.
  3. Select file2 and hit enter to open it.
  4. Ctrl-6 takes me back to file1.

Scenario 2 (vim-vinegar doesn't work as expected):

  1. nvim subdir/file1 to open file1.
  2. - in normal mode to open netrw via vim-vinegar.
  3. Select file2 and hit enter to open it.
  4. Ctrl-6 takes me back to netrw.

I would expect that with g:netrw_altfile = 1 set, step 4 in Scenario 2 should take me back to file1.

Interestingly, if I am running nvim from the subdirectory containing the files then vim-vinegar works the same way as :Explore (i.e. as I would expect).

I'm using Neovim v0.10.0, and vim-vinegar bb1bcddf43cfebe05eb565a84ab069b357d0b3d6.

smlx avatar May 29 '24 05:05 smlx

I've run into the same issue, but this seems to be a bug in Vim...

Vinegar executes :edit %:h to open Netrw. With Vim 9.0.270 this retains the alt file, e.g. :echo expand('#') after :edit %:h shows in your case file1. With Vim 9.1.600 this changes the alt file to the directory which was opened.

mmrwoods avatar Dec 23 '24 12:12 mmrwoods

This does the job for me as a workaround...

nnoremap - :Explore<CR>:silent! call search('^' . expand('#:t'), 'wc')<CR>

Assumes you have not changed g:netrw_liststyle from the default of 0 (one file per line, filename only)

mmrwoods avatar Dec 23 '24 14:12 mmrwoods

Thanks for confirming the issue on Vim.

I've got a similar workaround on Neovim:

vim.keymap.set("n", "-", ":Explore<CR>")

smlx avatar Dec 27 '24 04:12 smlx