Завершение имени файла для удаленных файлов

16

Мой друг показал мне крутой трюк на Emacs несколько дней назад, когда он мог просто открыть файл на удаленном сервере, и я сразу подумал, что «должен быть способ сделать это и в vim», и это было правдой.

Я могу просто использовать :e scp://user@server//filepathдля этого, нет проблем;). Тем не менее, он мог просто ввести имя сервера и затем заполнить пути и имена файлов (с вкладкой), чего я не смог сделать. Кто-нибудь знает, можно ли это сделать в vim?

m.ajallooeian
источник
1
Хотелось бы, чтобы ctrlp мог это поддерживать ... но, видимо, это запрос функции .
Муру

Ответы:

6

Да , но в настоящее время (2015) не из коробки, потому что встроенный файловый менеджер vim изначально не поддерживает удаленный просмотр. ,

Обновление Q3 @ 2016:

Есть несколько обходных путей, с различной степенью комфорта / совместимости / усилий. Все вместе они составляют хорошее решение, но все они также могут быть использованы индивидуально:

Если вы не можете изменить свою среду или только .vimrc: в файловом менеджере vim вы можете использовать клавиши // ?для поиска вперед / назад, и вы можете сопоставить TABс одним из них. Это мощнее, чем кажется, для быстрой навигации по файловой системе. Описание ниже.

Основной обходной путь (для стандартного vim с NetRW):

  • Не указывайте vim на удаленный файл
  • Укажите каталог "вверху", например $HOME: vim scp://files/или /:vim scp://files///
  • Плагин NetRW открывается в нужной папке верхнего уровня ( /или $HOME).
  • В NetRW вы можете перемещаться с удивительно несколькими нажатиями клавиш:
  • Для редактирования удаленного /etc/network/interfacesс NetRW на /:

    /etENTERENTER/netwENTERENTER/intENTERt

Вы всегда можете использовать ?для поиска обратно вверх, без переноса сверху.

Еще лучше , для почти имитации - TAB Завершение добавить в .vimrc:

По сравнению с «обычным» завершением табуляции, вышесказанное отличается, но очень удобно.

Примечание. Все вышеперечисленное предполагает, что соединения ~/.ssh/configс паролем на основе сертификатов ssh для пользователя, порта, сжатия, JumpHost (ProxyCommand настроены так, что требуются только имя хоста / псевдонимы).

Это также ранее обсуждалось вне офиса здесь и здесь

Алекс Страгиес
источник
1
Можете ли вы расширить трюк, суммируя ссылку? Простая ссылка не очень полезна, если сайт отключается или умирает.
Муру
Я думаю, это более или менее мое окончательное «решение», пока NetRW не сможет сделать это изначально. Я по-прежнему буду заботиться об оставшихся известных проблемах, но ожидаю найти (или указать) более тонкие ошибки, исправления и улучшения. Они будут рассмотрены / включены. Спасибо за комментарий.
Алекс Стрэги