Страницы

Поиск по вопросам

вторник, 24 декабря 2019 г.

Vim - Перенос кода между двумя окнами

#vim


Делаю :vsplit в vim, хотелось бы, чтобы второе содержало продолжение буфера с последней
отображаемой строки в первом окне - как две страницы открытой книги. Можно ли такое
сделать, и как?
    


Ответы

Ответ 1



можно синхронизировать листание в нескольких окнах с помощью команды :set scb (scb — это сокращённо, полностью — scrollbind). выполнить её нужно в каждом синхронизируемом окне (чтобы отключить окно от синхронизации, добавьте no — :set noscb). можно выполнить сразу во всех открытых окнах командой :windo set scb для реализации задуманного вами надо после разбиения на два окна пролистать одно из них на одну страницу. например, нажав z+ в нормальном режиме, а затем включить синхронизацию окон командой :windo set scb при желании можете эти действия свести в макрос и добавить его в ~/.vimrc.

Ответ 2



В коммандной строке: :exe 'right vsplit'|exe 'normal z+' Лучше замапить клавишу: :map :right vsplitz+ Т.к. в книге страницы нумеруются слева на право и читаем мы сверху вниз, а Vim создаёт новые окна поумолчанию слева и вверху, рекомендую это поправить в vimrc: set splitbelow set splitright Тогда нет необходимости right перед vsplit.

Комментариев нет:

Отправить комментарий