Как вы возвращаетесь из "gf" в Vim
Вопрос
Я использую Vim для Windows, установленной в режиме Unix.Благодаря этому сайту я теперь пользуюсь gf
команда для перехода к файлу под курсором.
Я ищу команду либо для того, либо для другого:
- возврат к предыдущему файлу (аналог к Ctrl+T для ctags), или
- переназначение
gf
для автоматического запуска нового файла в новом окне.
Решение
Я использую Ctrl-O
Другие советы
Я часто использую Ctrl-6 для этого.
Это удобно, потому что позволяет мне быстро переключаться между двумя файлами.
Возможно, вы захотите использовать CTRL-W gf
чтобы открыть файл на новой вкладке.
Вы можете закрыть только что открытый файл, как всегда, с помощью :bd
, или использовать CTRL-6
и другие обычные способы изменения буферов.
Используйте gf для перехода в файл и используйте:bf для возврата
Просто используй :e#
за которым следует Войти - это в основном говорит о необходимости отредактировать последний (самый последний) файл.
Ctrl-Shift-6 - это один.
:e#↲
это другое.
Я не знаю ответа на часть 2 вашего вопроса, но я могу помочь с частью 1.Использование
:e#
Vim поддерживает список файлов (буферов), которые он редактирует.Если вы наберете
:buffers
в нем будут перечислены все файлы, которые вы в данный момент редактируете.Файл в этом списке с % рядом с ним является текущим файлом.Тот, рядом с которым стоит #, является альтернативным файлом.: e# переключит между текущим и альтернативным файлом.Вместо того, чтобы вводить так много, я сопоставляю F2 с :e #, чтобы я мог легко переключаться между текущим и альтернативным файлами.Я сопоставляю команду с F2, добавив это в .vimrc
nmap `<F2> :e#<CR>`
Я заставил CTRL-W f сработать.
Довольно удручающе, что я потратил так много времени на совершенствование карт для этих команд только для того, чтобы обнаружить, что существуют встроенные версии.
Видишь :альтернативный файл справки.
Когда вы открываете новый файл (с гф или :n или другая команда) старый файл остается в списке буферов.Вы можете перечислить открытые файлы с помощью :ls
Если вы хотите легко перемещаться между буферами в vim, вы можете создать сопоставление, подобное этому:
nmap <M-LEFT> :bN<cr>
nmap <M-RIGHT> :bn<cr>
Теперь вы можете переключаться между буферами с помощью клавиш Alt + стрелка влево или Alt + стрелка вправо.
Полная документация по сопоставлениям находится здесь:
:help map.txt
Я еще не смотрел на твой гф команда, но я предполагаю, что она использует :e или :найти команда.
Предполагая, что это правильно, просто замените :e или :найти с :новый (или :vnew для вертикального разделения), и файл откроется в новом окне вместо прежнего.
например ,
"Switch between header and cpp nmap ,s :find %:t:r.cpp<CR> nmap ,S :new %:t:r.cpp<CR> nmap ,h :find %:t:r.h<CR> nmap ,H :new %:t:r.h<CR> nmap ,F :new =expand("<cfile>:t")<CR><CR> nmap ,d :new =expand("<cfile>")<CR><CR>