LINUX.ORG.RU

Настройка отображения строк vim

 


2

3

Друзья и сотоварищи, не проконсультируете, как настроить vim таким образом, чтобы в режиме с переносом строк (когда в файле множество длинных строк) редактор отображал на экране не только последнюю строку которая полностью помещается (по вертикали), а показывал и следующую тоже (несмотря на то, что она будет неполной) - показывал столько, насколько хватает экрана (конечно, с несколькими переносами по окончанию каждой из экранных строк)? Конечно ожидал бы, что при соответствующих настройках и экран не будет скакать (перескакивать на несколько экранных строк за раз) при переходе на следующую строку файла. Заранее благодарен.

p.s. готов выложить иллюстрирующие картинки, но не понял, как бы это можно было сделать на данном форуме. p.p.s. поиском не наше, но позже всплыла похожая тема: vim отображение длиннющих придлинющих строк... Однако ответа в ней, похоже не найдено, и тема в архиве - так что ответ и не добавить. Так что повода удалять вопрос не вижу - может быть десятилетие спустя кто-нибудь все-таки сможет оперативно подсказать ответ. Кроме того, не уверен полностью, что в той теме вопрос совпадает с моим. Буду благодарен, если по ходу подскажете, как картинки прицепить - думаю это помогло бы исключить неоднозначность.



Последнее исправление: pipha (всего исправлений: 2)

готов выложить иллюстрирующие картинки, но не понял, как бы это можно было сделать на данном форуме

Ссылкой не пробовал? Без иллюстраций я не смог представить, чего ты хочешь.

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

r3lgar ★★★★★
()
set display+=lastline

Конечно ожидал бы, что при соответствующих настройках и экран не будет скакать (перескакивать на несколько экранных строк за раз) при переходе на следующую строку файла.

nnoremap j gj
nnoremap k gk
xnoremap j gj
xnoremap k gk
xaizek ★★★★★
()
Последнее исправление: xaizek (всего исправлений: 2)

:set nowrap

Ваш КО.

mos ★★☆☆☆
()
Ответ на: комментарий от xaizek

Спасибо большое за «set display+=lastline» - помогло с отображением и, соответственно, уже гораздо удобнее работать. И упомянутое вами переназначение клавиш тоже бывает удобным - я его уже иногда использовал. Для полноты картины еще бы при переходе на новую (как раз ту что не полностью отображалась) строку сделать чтобы не пролистывало до отображения этой строки полностью (чтобы «не прыгало»). Не подскажете?

pipha
() автор топика
Ответ на: комментарий от pipha

Могу предложить https://www.facebook.com/pipha - картинки в доступной всем пользователям facebook моей последней публикации.

Facebook - лучше место для выкладывания картинок, которые не увидят пол ЛОРа те кто на нём не зарегистрирован.

Выбирай:

Tanger ★★★★★
()
Ответ на: комментарий от pipha

Если тебе надо видеть предыдущую строчку, то просто :split'ни экран и смотри что хочешь.

А вим экономит твоё время - если уж ты перешёл на строку, то надо по-максимуму тебе её показать.

anonymous
()
Ответ на: комментарий от xaizek

Собственно все что требуется - чтобы vim повторял в общем то стандартный функционал других редакторов. Например, вот сейчас проверил поведение системного блокнота в windows 10 (со включенной опцией переноса по словам, конечно). А именно, в этом стандартном поведении, курсор может находиться на любой экранной строке, не зависимо от того, какая часть файла отображается; и отображаемая часть файла может быть сдвинута на одну экранную строку вверх или вниз. При этом, кстати, не только нижняя из отображаемых на мониторе файловая строка может отображаться частично - т.е. показываются только помещающиеся на мониторе экранные строки (чего можно добиться настройкой set display+=lastline), но может разрываться и верхняя (буду благодарен если подскажете как добавить эту возможность). Далее, курсор может находиться в любой экранной строке нижней или верхней не полностью отображаемой файловой строки. И если вызывается движение курсора на экранную строку вниз при его нахождении в нижней экранной строке, то экран проматывается на одну экранную строку вверх (и аналогично при нахождении курсора в верхней экранной строке). По-прежнему был бы благодарен за помощь в такой настройке - очень надеюсь, что можно настроить vim так чтобы он охватывал функционал базовых инструментов.

p.s. nowrap и split - это, конечно, не то, что приближает к решению задачи. p.p.s. спасибо за советы по сайтам для размещения картинок - впервые пишу на форуме, где нет встроенной поддержки соответствующего функционала. Выбор facebook - компромисс, в котором были учтены озвученные выше нюансы. p.p.p.s. конечно, просьба не советовать отказываться от vim в пользу других средств - ж).

pipha
() автор топика
Ответ на: комментарий от pipha

Я таких опций не знаю и не думаю, что они есть. У людей таких проблем нет, так как при работе с очень длинными строками проблема чаще всего в том, что строки не разбиты. Лучшее, что приходит в голову: разбить строку на части, поработать и потом вернуть как было.

xaizek ★★★★★
()
Ответ на: комментарий от xaizek

Вариант с ручным разбиением - не удобный костыль по целому ряду причин. Среди них, во-первых, нужны дополнительные действия - разбивать и соединять. Во-вторых, если изменять размер окна - то все разбиение насмарку. В-третьих, потенциальная неоднозначность, где разбиение на строки уже было, а где введено как обсуждаемое решение - ну и т.д.

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

pipha
() автор топика
Ответ на: комментарий от xaizek

Так что, неужели все-таки vim может проигрывать по удобству виндовому блокноту и прочим примитивным инструментам; и универсальной настраиваемости vim не достаточно для реализации в общем-то интуитивно очевидного решения по режиму работу? Я вот уже несколько лет регулярно сталкиваюсь с рассматриваемым вопросом - а тем временем он никому еще не приходил он в голову а тем, кому было неудобно так и не удалось в полной мере решить его? - ж).

pipha
() автор топика
Ответ на: комментарий от pipha

Все решают «проблему» (тот факт, что люди не понимают о чём речь, подсказывает, что они с ней даже не сталкиваются) разбивая строки на адекватные части. В TODO у Vim ничего про длинные строки не видно, так что да, очевидно это не проблема для пользователей. Если так нужно, то можно взять и написать в рассылку Vim и обсуждать там.

xaizek ★★★★★
()
Ответ на: комментарий от xaizek

И здесь то зарегистрировался, специально ради этой задачи. Уже довольно много потратил время - возможно, лучший вариант - зафиксировать временные потери и радоваться тому продвижению в решении, которое есть. Задача показалась потенциально умеренно сложно решаемой и достаточно актуальной. Однако буду благодарен за ссылку на рассылку vim. Хотя перспектива еще раз все подробно расписывать но уже на английском кажется не слишком заманчивой.

pipha
() автор топика
Ответ на: комментарий от pipha

Ссылки здесь: https://vim.sourceforge.io/community.php

Описать вроде довольно просто, хочется:

  • аналог lastline для 'display': firstline/topline;
  • выполнять операции над строками, которые отображаются частично (как сейчас при «display=lastline») без прокрутки;

Я не думаю, что кто-то будет возражать, но если людей не беспокоит, а добавить не тривиально, то делать сами тоже не будут (патч примут).

xaizek ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.