回答:
よると、:help scroll-mouse-wheel
あなたはWin32のGUIを使用している場合、答えはノーです。
一方、X11 GUIまたはマウスをサポートするコンソールvimを使用すると、ホイールはキーの押下を送信して、再マッピングできます。
だから、あなたはあなたが記述した行動を得ることができます
:nmap <ScrollWheelUp> h
:nmap <ScrollWheelDown> l
nmap
通常モードでのマッピングに使用していることに注意してください。
他のモードで同様の動作を得るには、通常のキーの代わりに方向にマップできます。例:挿入モードの移動:
:imap <ScrollWheelUp> <Left>
:imap <ScrollWheelDown> <Right>
これらをデフォルトにするには、vimrcの下部に貼り付けます。
私はハマースプーン とマッピングの賢い使い方でそれを行う方法を見つけました。
最初の部分は、水平方向にスクロールするように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の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を間違って使用している。