VIM Mapping не работает с плагином SlimV

Следующие сопоставления находятся в моем.vimrc и используются для быстрой навигации между вертикальными разделенными панелями, созданными с помощью:vsp, и разделенными панелями, созданными с помощью:sp.

" Smart way to move between windows
map <up> <C-w><up>
map <down> <C-w><down>
map <left> <C-w><left>
map <right> <C-w><right>

Похоже, это не очень хорошо с плагином SlimV. Когда я нажимаю ,c открыть REPL в горизонтальной панели, <down> а также <up> не работать в рамках REPL; тем не мение, <left> а также <right> работать как положено.

Из исходного окна я могу перемещаться по всем четырем направлениям и в окно REPL. Только из REPL <left> а также <right> работает. <up> а также <down> привести к перемещению курсора вверх и вниз в пределах окна.

1 ответ

Решение

Slimv пытается смоделировать консольный вывод в буфере REPL, установив Vim's wrap вариант. Таким образом, линии длиннее, чем textwidth будет отображаться в нескольких строках экрана. Клавиши перемещения курсора Vim (j, k, , ) обычно позиционируют курсор по строкам буфера, а не по строкам экрана. Slimv имитирует движение курсора на экране, переопределяя эти клавиши курсора (например, от "k" до "gk", от "j" до "gj").

Вы можете отключить wrap опцию для буфера REPL в Slimv, добавив эту строку в ваш .vimrc:

let g:slimv_repl_wrap=0

Таким образом, клавиши "Вверх" и "Вниз" (и некоторые другие) не будут переназначаться. Тем не менее, обратите внимание, что длинные строки не будут перенесены, будет отображаться только их первая часть, и вам нужно будет прокрутить экран по горизонтали, чтобы просмотреть остальные.

Другие вопросы по тегам