Vim, длинные строки и прокрутка - PullRequest
9 голосов
/ 29 марта 2012

Я использую Vim для редактирования текстовых файлов на английском языке с> 10.000 слов и длинными абзацами.Файлы отформатированы в виде простого текста, и каждый абзац представляет собой длинную строку.Я использую опцию wrap и привязываю j и k к gj и gk соответственно, чтобы я мог перемещаться по отображаемым строкам.

Если мой курсор находится в верхней частиэкран (но не начало документа), и я перемещаю курсор вверх (используя gk), экран прокручивается вверх, чтобы отобразить всю длинную строку (абзац из 300 слов).Проблема в том, что из-за длины линии экран прокручивается на половину экрана.Это сбивает с толку, потому что я не знаю заранее, сколько экран будет двигаться.У прокрутки с помощью ^Y есть та же проблема.

Есть ли способ сделать прокрутку Vim всего одной строкой дисплея при использовании gk и его аналогах?Это более естественно для редактирования не исходного кода и поведения по умолчанию в большинстве текстовых редакторов, а также в текстовых редакторах, но не в Vim.Я думаю, это будет означать, что Vim придется перестать настаивать на показе всей строки, которую я редактирую.

Ответы [ 2 ]

2 голосов
/ 02 августа 2014

Я лично исправил эту проблему, переключившись на жестко оформленные прозаические документы. Я не верю, что есть какое-то другое решение. Вот одна из статей, которая впервые подтолкнула меня к идее: http://alols.github.io/2012/11/07/writing-prose-with-vim/

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

setlocal formatoptions=wat

Кроме того, вот одна удобная функция, которую я обнаружил, чтобы в любое время вернуться к мягкому переносу, которая может оказаться полезной: Развернуть текст в vim

0 голосов
/ 29 марта 2012

Я предлагаю вам определить макрос для прокрутки вашей страницы.Если у вас высота экрана 50, вы можете использовать что-то вроде:

map zp 48gj
...