Vim сохраняет положение курсора при прокрутке - PullRequest
48 голосов
/ 25 марта 2009

Есть ли способ сохранить расположение экрана вне экрана в Vim / gVim при прокрутке? Подобно многим редакторам Windows.
Я знаю о знаках и использую их. Я также знаю "." mark (последнее место редактирования), но ищем другие идеи. Я спрашиваю об этом, потому что иногда я хочу удерживать курсор в каком-то месте, прокручивать его в другое место с помощью колесика мыши, а затем просто нажать клавишу со стрелкой или что-нибудь, чтобы вернуть меня в это место.

Ответы [ 6 ]

33 голосов
/ 25 марта 2009

Нет. vim является консольным приложением, поэтому нет смысла выводить курсор за пределы экрана (это возможно, но это может сбить с толку)

Альтернативное решение, перефразировать сообщения из этой ветки от comp.editors :

Ctrl+o переходит к предыдущему местоположению курсора, Ctrl+i переходит к следующему (например, отмена / повтор для движений)

Знаки кажутся другим решением ..

Кроме того, используйте знаки. Марки обозначаются буквами. Например, набрав ма помнит текущее местоположение под знаком а. Чтобы перейти к строке, содержащей знак a, наберите "А. Для точного местоположения используйте `a.

Буквы в нижнем регистре для каждого файла. Буквы в верхнем регистре являются глобальными; `A переключится на файл, содержащий метку A, на точное местоположение.

В основном ma, двигайтесь, затем `a, чтобы отскочить назад.

Другой вариант, который предложил Павел,

Команда

gi переключает Vim в режим вставки и устанавливает курсор в то же положение, в котором режим вставки был остановлен в прошлый раз.

17 голосов
/ 25 марта 2009

Почему бы вам не разбить окно, не посмотреть, что вы хотели посмотреть, а затем закрыть разделение?

:split

или

:vsplit (if you want to split vertically)
11 голосов
/ 25 марта 2009

Иногда вы можете избежать перехода к меткам перед вводом текста - команда gi переключает Vim в режим вставки и устанавливает курсор в то же положение, в котором режим вставки был остановлен в прошлый раз.

10 голосов
/ 08 января 2015

Единственное подобное поведение, которое я обнаружил в Vim:

z t"прокрутить экран вниз насколько возможно без перемещения курсора"

z b"прокрутить как можно выше".

Ctrl + E"прокрутите одну строку вниз, если возможно"

Ctrl + Y"прокрутить на одну строку вверх, если возможно"

4 голосов
/ 28 марта 2009

Также очень полезны '' (2x одинарные кавычки) и `` (2x обратные кавычки). Первый переходит обратно на строку, которой вы были до последнего прыжка (например, на страницу вниз). Последний возвращается к столбцу строки и , которым вы были до последнего прыжка.

3 голосов
/ 25 марта 2009

Google говорит, что курсор (и, следовательно, текущая строка) должен быть виден в Vi, поэтому вам придется использовать метки.

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