Как использовать несколько вкладок при пометке функции в Vim
Я использую ctags с моим Vim, и я сильно полагаюсь на C-] и C-T, чтобы тегировать назад и пениться между различными функциями в моем проекте.
Но если функция находится в другом файле, я бы хотел, чтобы Vim автоматически открывал ее на новой вкладке вместо текущей вкладки. Если я вытащил свой стек тегов с помощью C-T, я бы хотел, чтобы он вернулся к исходной вкладке, где я нажал C-] вместо изменения файла на текущей вкладке. Мне не нравится, чтобы один и тот же файл открывался на нескольких вкладках в Vim. Это нормальное поведение для большинства IDE, и мне интересно, есть ли способ сделать это в Vim?
Ответы
Ответ 1
nmap <C-Enter> <C-w><C-]><C-w>T
Помогает ли это? Вероятно, вы могли бы найти что-то подобное для обратного пути.
Ну, нам нужно решить, каково будет желаемое поведение. Мы можем вернуться к исходной вкладке (не уверенный, как, все еще исследуя), но затем приведенное выше сопоставление откроет новую вкладку в следующий раз. Таким образом, через некоторое время вы получите много вкладок.
Или мы можем сделать <C-w>C
, который закроет открытую вкладку и вернет нас к исходной. Я лично предпочитаю этот способ работы (таким образом, я не теряю свою позицию в файле)
Я перехожу к функции, которую хочу, внеся свои исправления, а затем вернусь к исходному файлу, с которого я начал.
Дайте мне знать, что бы вы хотели (это не соответствовало комментариям, поэтому я поставил здесь ответ).
Ответ 2
Это может указывать на правильное направление:
http://vim.wikia.com/wiki/Open_every_buffer_in_its_own_tabpage
Ответ 3
Итак, это функция, которую я тоже хотел бы видеть.
Я не уверен, возможно ли это.
То, что я обычно делаю, это
: tabnew
: tag somepartsoffunction *
и нажмите вкладку, чтобы использовать globbing, чтобы легко найти тег.
Конечно, это не идеальное решение, но оно работает большую часть времени.
К сожалению, с VIM tabbing не полностью интегрирован, так как это новая функция с 7.0. Большинство людей, которых я знаю, используют VIM, даже не подозревая о вкладах, пока я им не сказал, поэтому я чувствую, что сейчас нет способа сделать это.
(Я хотел бы, чтобы меня доказали неправильно)