Vim: не перемещайте содержимое окна при открытии предварительного просмотра/quickfix
При разбиении окна Vim по горизонтали содержимое "старого" окна прокручивается, чтобы сохранить относительную позицию линии курсора. Это происходит даже для небольших "вспомогательных" буферов, таких как quickfix или окно предварительного просмотра.
Движение текста, вызванное этим, становится раздражающим, когда раздвоение многократно открывается и закрывается - например. окно предварительного просмотра, используемое плагином завершения. Можно ли отключить эту функцию и не прокручивать старое окно при расщеплении (если не требуется, чтобы линия курсора была видимой)?
Пример - текущее поведение:
+--------------+ +--------------+
| a | | b |
| b | copen | c (cursor) |
| c (cursor) | --> | d |
| d | +--------------+
| e | | (preview) |
+--------------+ +--------------+
Желаемое поведение:
+--------------+ +--------------+
| a | | a |
| b | copen | b |
| c (cursor) | --> | c (cursor) |
| d | +--------------+
| e | | (preview) |
+--------------+ +--------------+
Ответы
Ответ 1
Попробуйте что-нибудь вроде
map <F12> mcHmh:split<cr>'hzt`c
сохранить позицию в c mc
H
перейти в начало
сохраните позицию до h mh
Ваша команда здесь разделена, например,
получил значение h 'h
положите это на заглавие на верх zt
и перейдете к c
Ответ 2
Я достиг этого вопроса, когда искал решение этой проблемы сам. Я не мог найти хорошее решение, и оно действительно меня беспокоило, поэтому я написал небольшой плагин vim, который решит эту проблему.
https://github.com/gillyb/stable-windows
Я думаю, что это именно то, что вы хотите. Я написал это только недавно, поэтому, если есть какие-либо ошибки, не стесняйтесь открывать проблемы, и я постараюсь их исправить.
Надеюсь, это поможет! :)