답변:
에 따라 :help scroll-mouse-wheel
대답이는 Win32 GUI를 사용되지 아니하는 경우입니다.
반면, 마우스를 지원하는 X11 GUI 또는 콘솔 vim을 사용하면 휠에 키를 눌러 다시 매핑 할 수 있습니다.
그래서 당신은 당신이 묘사하는 행동을 얻을 수 있습니다
:nmap <ScrollWheelUp> h
:nmap <ScrollWheelDown> l
nmap
일반 모드에서 매핑에 사용 하고 있습니다.
다른 모드에서 유사한 동작을 얻으려면 일반 키 대신 방향으로 매핑하면됩니다. 예를 들어 삽입 모드 이동의 경우 :
:imap <ScrollWheelUp> <Left>
:imap <ScrollWheelDown> <Right>
이러한 기본값을 설정하려면 vimrc의 맨 아래에 붙입니다.
나는 Hammerspoon 과 영리한 매핑 사용법 으로 그것을 할 수있는 방법을 알아 냈습니다 .
첫 번째 부분은 Shift+ ScrollUp와
Shift+ ScrollDown를 가로로 스크롤 하도록 구성하는 것 입니다. 그렇게하기 위해서는, 당신은 당신에 다음 코드를 넣어 가지고 .vimrc
:
nnoremap <S-ScrollWheelUp> <ScrollWheelLeft>
nnoremap <S-2-ScrollWheelUp> <2-ScrollWheelLeft>
nnoremap <S-3-ScrollWheelUp> <3-ScrollWheelLeft>
nnoremap <S-4-ScrollWheelUp> <4-ScrollWheelLeft>
nnoremap <S-ScrollWheelDown> <ScrollWheelRight>
nnoremap <S-2-ScrollWheelDown> <2-ScrollWheelRight>
nnoremap <S-3-ScrollWheelDown> <3-ScrollWheelRight>
nnoremap <S-4-ScrollWheelDown> <4-ScrollWheelRight>
우리는 <S-2-ScrollWheelUp>
터미널에 키로 전송되기 때문에 등 을 사용해야 합니다. 이것에 관한 문서를 찾지 못했습니다 ( 삽입 모드에서 스크롤하는 동안 Ctrl+ V를 사용하여 이것을 알아 냈습니다
).
그런 다음 가로 스크롤을 Shift+ 세로 스크롤 로 다시 매핑해야합니다 . 이를 위해 다음 스 니펫을 Hammerspoon 's에 배치합니다.init.lua
scrollBind = hs.eventtap.new({hs.eventtap.event.types.scrollWheel}, function(e)
if is_active('iTerm2') then
local horizontalOffset = e:getProperty(hs.eventtap.event.properties.scrollWheelEventDeltaAxis2)
if horizontalOffset ~= 0 then
hs.eventtap.scrollWheel({ 0, horizontalOffset }, {"shift"}, 'pixel')
return true
end
end
return false
end):start()
function is_active(program_name)
local active_window_name = hs.window.focusedWindow():application():name()
return active_window_name == program_name
end
scrollBind
키 스트로크 감시자가 Lua의 가비지 수집기에 의해 지워지지 않도록 변수를 만듭니다 .
OS X에서 MacVim을 사용하는 경우 트랙 패드에서 작동합니다.
set mouse=n " enable mouse in normal mode
set nowrap " disable line wrapping (so there's something to scroll to)
wWeE$)}
등) 화살표 키를 사용하는 경우 확실히 Vim을 사용하는 것입니다.