2012-10-08 3 views
1

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

" 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> приводят к перемещению курсора вверх и вниз в окне.

ответ

2

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

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

let g:slimv_repl_wrap=0

Этот путь < Up> и < Down> (и некоторые другие) ключи не будут переназначить. Обратите внимание, однако, что длинные строки не будут завернуты, тогда отобразится только их первая часть, и вам нужно будет прокручивать экран по горизонтали, чтобы просмотреть остальные.

+0

О, вау, это первый раз, когда автор того, что я использовал, ответил на один из моих вопросов. До сих пор я не считаю, что потерять строку в REPL является проблемой. У меня есть ширина текста, равная 79, и выход может быть отформатирован. Ваш плагин действительно полезен при запуске в lisp, и прилагаемый файл doc выглядит чрезвычайно тщательно. Спасибо Тамасу! – deadghost