मैंने हैमरस्पून
और मैपिंग के चतुर उपयोग के साथ ऐसा करने का एक तरीका निकाला ।
पहला भाग क्षैतिज रूप से स्क्रॉल करने के लिए 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+ वर्टिकल स्क्रॉल पर रीमैप करना होगा । ऐसा करने के लिए, हम निम्नलिखित स्निपेट को हैमरस्पून में रखते हैं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
वैरिएबल का निर्माण करते हैं, इसलिए कीआस्ट्रोक पर नजर रखने वाला लुआ के कचरा संग्रहकर्ता द्वारा मिटाया नहीं जाता है।
wWeE$)}
आदि) कर रहे हैं, और यदि आप तीर कुंजियों का उपयोग कर रहे हैं तो आप निश्चित रूप से गलत का उपयोग कर रहे हैं।