Вернуться к просмотру каталога после открытия файла в vim


123

Когда я открываю каталог в vim, я могу открыть файл, переместив курсор на имя файла и нажав Enter.

Теперь, есть ли какая-нибудь команда для возврата к предыдущему просмотру каталога?

Если нет, есть ли способ открыть файл, не закрывая режим просмотра каталогов?


2
Я не уверен, но если вам нужен действительно удобный просмотр каталогов, я рекомендую вам проверить NERDTree
Йохан Котлински

Ответы:


198

Вы можете вернуться к последнему буферу, используя :b#.

Если вы только что открыли файл, он просто вернет вас к просмотру каталогов.

Обновление : поскольку этот ответ был принят как правильный ответ и, таким образом, находится наверху, я хотел бы немного подытожить ответы, в том числе ответ @romainl, который imho является правильным.

  • :Rex[plore]: Вернуться в проводник ( от @romainl ) vimdoc.sourceforge
  • :Explorer: открывает проводник так же, как :E(если не определена другая команда, начинающаяся с E(см. stackoverflow ), или как :Ex(см. vim.wikia ) ( by @ drug_user841417) ).
  • :b#: возвращается к «ранее отредактированным буферам». См. Vim.wikia
  • :e#или Ctrl- 6(или Ctrl- ^): возвращает к «ранее отредактированному файлу» ( от @ aman-jain ). См. Vim.wikia
  • Ctrl- O: вернуться к предыдущему (более старому) местоположению, не обязательно к буферу ( от @Peyman ). См. Vim.wikia

3
Так и должно быть :b#. Я бы исправил, но односимвольные правки не летают.
echristopherson

Если я это сделаю, vim <dirname>а затем перейду к файлу и нажму Enter, это не сработает; если я открою vim, :e <dirname>выберите файл, и Enterон будет работать. В обоих случаях :buffersпоказывает только один буфер. Я не уверен, почему это так.
mcmlxxxvi 05

@mcmlxxxvi согласно vim wiki b#работает только для «ранее отредактированных буферов»: vim.wikia.com/wiki/…
ezdazuzena

3
Хорошая вещь, обобщая все остальные правильные ответы, я хочу, чтобы больше людей делали это.
LightMan

1
@veich Спасибо за ваш комментарий, но пока я не буду этого делать, поскольку речь идет только о движении назад. Это не вики-страница, я просто резюмирую другие вопросы для ясности. Надеюсь, ты это понимаешь.
ezdazuzena

88

Вы можете использовать Ctrl-, Oчтобы вернуться к предыдущему буферу.


2
В целом очень полезно (например, для возврата из gf), но в случае изучения каталогов это не возвращает меня к «строке», на которой я был при открытии файла.:Rex<Enter>, что несколько неуклюже (5 нажатий клавиш против 1), делает это. Наверное, это кандидат на картографирование ...
Томаш Гандор

34

Правильная команда для возвращения в netrw перечисления :Rex[plore]. Вы можете запустить его даже после того, как перешли к десяткам файлов и обратно.


При редактировании файла после выхода из списка netrw возвращается с :Rexploreкаким-либо отличием от возврата с :Explore?
Яша

Чтобы ответить на мой собственный вопрос, похоже, что он :Rexploreвсегда возвращает вас к тому же списку netrw, который вы просматривали раньше, тогда как :Exploreдает список для каталога любого файла, открытого в данный момент.
Яша

29

:Ex вернет вас (и покажет, что вы отредактировали и не сохранили).


1
Я поддержал КАЖДЫЙ из ответов. все они были полезны
javadba

Приятно, это немного лучше, чем Ctrl-Oпотому, что он выделяет родительский каталог ( ..) вместо верхней строки (некоторый заголовок Netrw), но это все еще не то место, где я оставил проводник (открытый файл). 4 нажатия клавиш против 1, небольшая экономия jдля перехода туда, где я был, но все же я, вероятно, сопоставлю, :Rex<Enter>если я ожидаю много навигации.
Tomasz

26

Я полагаюсь на Ctrl ^, чтобы перемещаться вперед и назад между двумя буферами.


1
Это сработало для меня с vim 7.3 на OSX от homebrew. Ctrl-O, похоже, не работает.
Гарднер Бикфорд

5
Вам даже не нужен сдвиг, можно просто Ctrl 6
mVChr

более правильно, это «редактирует альтернативный файл»: vimdoc.sourceforge.net/htmldoc/editing.html#CTRL- ^
ezdazuzena

Превосходно! Хотя он просто работает взад и вперед (как «Отмена 1 уровня»), но на самом деле он возвращается к линии, на которой я был! Похоже, я все-таки не картографирую :Rex<CR>! (Конечно, только когда я не с нетерпением жду возможности «вернуться» из вложенных навигаций (перешел к другому файлу и т. Д.).
Томаш Гандор

15

Я обычно просто использую :E. Его легко запомнить, и вы вернетесь к списку каталогов открытого файла.


2
Я удивлен, что у этого слишком мало голосов. Это определенно ответ.
TaoPR

1
Не удивляйтесь - на моем текущем vim 7.4.x :Eон неоднозначен и ничего не делает. Вам нужно напечатать минимум :E<CR>.
Tomasz

1
Это то же самое, :Exили :Explorerесли не другая команда , начиная с Eопределяется. См., Например, stackoverflow.com/a/14367507/1141095
ezdazuzena
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.