Чи існує налаштування, яка дозволить vim запам’ятати стовпець, на якому він був, навіть якщо проходить рядок, у кого EOL менший?


1

Чи існує налаштування, яка дозволить vim запам’ятати стовпець, на якому він був, навіть якщо проходить рядок, у кого EOL менший?

Розглянемо наступні рядки:

foo bar
foo
foo bar

Скажіть, моя позиція курсору - це підкреслення:

foo b_r
foo
foo bar

Якщо я натиснув jj, курсор закінчується тут:

foo bar
foo
fo_ bar

Але я хочу, щоб він пам’ятав, де він знаходиться на лінії 1, і їхати туди на лінію 3, оскільки вона доступна.

foo bar
foo
foo b_r

EDIT: Коли я відключаю minibufexpl.vim, проблема відходить, тому проблема з цим плагіном. Хтось знає, що сталося?


Ви пробували set virtualedit=all?
Ehtesh Choudhury

Так, але це включає деякі речі, які я не хочу, як, наприклад, ваш курсор минулого EOL.
Метт Олександр

Ви впевнені, що це не так? Vim намагається тримати курсор у тому ж стовпці.
Раймонді

Відповіді:


1

За замовчуванням воно повинно перейти до того ж стовпця. Ви спробували запустити Vim як

$ vim -N -u NONE

або

$ gvim -N -u NONE

і знову виконувати свій експеримент?

Одне, що може спричинити таку поведінку, - це плагін, який використовує автокоманду CursorHold. Якщо така автокоманда виконує певні дії під час її виконання, вона призведе до переміщення курсору, як ви описуєте. Ви можете перевірити наявність таких автокоманд за допомогою

:au CursorHold

minibufexpl.vim - винуватець. Тепер, щоб розібратися, у чому проблема ...
Метт Олександр

Я написав плагін, який використовував подію автокоманди CursorHold і у мене була проблема зі стовпцем курсору. Vim скидає запам’ятований стовпець курсора до поточного стовпця курсора кожного разу, коли встановлюється параметр, тож я змінив код, на який посилається подія CursorHold, щоб встановити параметри лише за потреби. Плагін minibufexpl може мати ті ж проблеми.
garyjohn
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.