ฉันคิดหาวิธีที่จะทำเช่นนั้นกับ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'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
เราสร้างscrollBind
ตัวแปรเพื่อที่ผู้ติดตามการกดแป้นพิมพ์จะไม่ถูกลบโดยตัวเก็บขยะของ Lua
wWeE$)}
ฯลฯ ) และถ้าคุณกำลังใช้ปุ่มลูกศรคุณแน่นอนใช้เป็นกลุ่มที่ไม่ถูกต้อง