5

При навигации по Vim я часто прыгаю в файл, перебираю этот файл, затем в другой файл и так далее. Наконец, я хочу вернуться к исходному файлу. Использование <CTRL-O> делает работу, но требует гораздо больше нажатий, чем мне бы хотелось.

Я знаю, что могу заранее поставить точку, но мне бы хотелось решение, которое не требует предварительного обдумывания.

Я ищу способ вернуться назад по списку переходов, останавливаясь ровно один раз для каждого файла.

3 ответа3

6

Мой плагин EnhancedJumps имеет варианты отображения <C-o> / <C-i> чтобы ограничить переходы к текущему или к другим буферам.

<Leader><CTRL-O>, <Leader><CTRL-I> Перейти к [count] более старой / более новой позиции курсора в другом буфере. Переходы внутри текущего буфера не рассматриваются. Полезно для вызова ранее посещенных буферов без прохождения всех локальных позиций. Независимо от направления перехода, последняя позиция перехода в буфере используется, когда в буфере есть несколько последующих переходов.

0

Я не уверен, правильно ли я вас понял. Вы хотите перемещаться между файлами / буферами, а не по позициям в списке переходов. (что может быть много позиций в одном файле)

Затем вы можете проверить команды, связанные с буфером. например

:ls        "list all buffers, Number, name
:b[N]      "switch to buffer N
:b <tab>   "after tab, buffer name auto-completion 

и есть много плагинов, которые помогают нам легко переключать буфер.

0

Цель этого списка не в том, чтобы помочь вам перейти из буфера в буфер: он записывает все движения, которые вы делаете. Поскольку типичное использование vim включает в себя множество переходов внутри и между буферами, было бы ошибкой использовать его для перемещения между буферами.

Если вы никогда не используете прыжковые движения, то есть. Но это было бы еще большей ошибкой.

Vim имеет список буферов, который, как следует из названия, представляет собой список всех ваших буферов и поставляется с кучей собственных навигационных команд. К сожалению, этот список является "статическим": вы можете перейти к предыдущему буферу в списке, но не к ранее полученному буферу. Вим не ведет такой список.

Я перемещаюсь по буферам с именами. Но, возможно, можно было бы написать функцию, которая создает список переходов и переходит к первому другому буферу. Я не могу сделать это на этом телефоне прямо сейчас, но я не думаю, что это будет слишком сложно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .