
Предположим, у меня есть два файла со следующими путями:
~/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 фактически начинают поиск с корня проекта; технически, чтобы все работало правильно, пришлось бы настроить корневой узел по-другому.