Ich habe einen Weg gefunden, dies mit Hammerspoon
und der cleveren Verwendung von Mapping zu tun .
Der erste Teil konfiguriert Shift+ ScrollUpund
Shift+ so ScrollDown, dass sie horizontal scrollen. Dazu haben Sie das folgende Code-Snippet in Ihr Verzeichnis eingefügt .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>
Beachten Sie, dass wir <S-2-ScrollWheelUp>
und dergleichen verwenden müssen, da sie auch als Schlüssel an das Terminal gesendet werden. Ich habe keine Dokumentation dazu gefunden (ich habe dies mit Ctrl+ herausgefunden, Vwährend ich
im Einfügemodus gescrollt habe).
Danach müssen wir horizontale Schriftrollen Shift+ vertikalen Schriftrollen neu zuordnen . Dazu platzieren wir den folgenden Ausschnitt in Hammerspoon'sinit.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
Wir erstellen die scrollBind
Variable nur, damit der Tastendruck-Watcher nicht vom Garbage Collector der Lua gelöscht wird.
wWeE$)}
usw.), und wenn Sie Pfeiltasten verwenden, verwenden Sie Vim definitiv falsch.