Быстрый способ открыть удаленный файл в vim в командной строке

Быстрый способ открыть удаленный файл в vim в командной строке

Предположим, у меня есть два файла со следующими путями:

~/another/project/file1.txt
~/this/is/some/very/deep/project/file2.txt

Как вы могли заметить, file1.txtи file2.txtрасположены «далеко» друг от друга в файловой системе.

Теперь предположим, что я редактирую file1.txtи хочу открыть file2.txtв vsplitокне. Самый быстрый способ, который я выбрал для открытия, file2.txtэто

:vsplit ~/this/is/some/very/deep/project/file2.txt

что, очевидно, неэффективно, даже при нечетком завершении.

Есть ли способ быстро «сохранить в закладках» или «перейти в каталог», чтобы file2.txtбыстро добраться до нужного места?

Мои первые мысли были бы о том, чтобы выполнить команду из оболочки (в командном режиме, используя !), чтобы как-то облегчить прыжок. Используя что-то вродеПрыгатьможет помочь, но я не знаю как.

решение1

Вы можете попробовать использовать глобальную метку, как описано в ответе на этот вопрос:

https://stackoverflow.com/questions/1581505/vim-create-marks-across-files

Если вы сделаете отметку заглавной буквой, например mA, вы сможете вернуться к этому файлу, перейдя к этой отметке с помощью 'A.

Это будет работать во всех сеансах, если вы .viminfoсохраняете данные правильно.

решение2

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

Создайте папку для хранения ваших ссылок.

mkdir ~/links/

свяжите свои файлы.

ln ~/another/project/file1.txt ~/links/file1.txt
ln ~/this/is/some/very/deep/project/file2.txt ~/links/file2.txt

Вы также можете назвать ссылку по-другому. Если ваш файл somereallylongname.txt, вы можете связать его с shname.txt

ln ~/this/is/some/very/deep/project/somereallylongname.txt ~/links/shname.txt

решение3

Другой ответ, предложенный мне другом, состоял в том, чтобы использоватьctrlpПлагин ctrlp упрощает поиск файла в нескольких каталогах одновременно.

EDIT: Настройки по умолчанию для ctrlp фактически начинают поиск с корня проекта; технически, чтобы все работало правильно, пришлось бы настроить корневой узел по-другому.

Связанный контент