摘要:由于已經厭倦了機械鍵盤,又實在無法抵擋的顏值,入手了一枚。我并不是黨,想來想去還是把上下左右的快捷鍵設置成比較直觀。原來是因為運行于管理員權限,而運行于普通用戶權限。解決方法是禁用。
由于已經厭倦了機械鍵盤,又實在無法抵擋 HHKB 的顏值,入手了一枚 hhkb pro2。
入手之后立刻傻眼,方向鍵不僅需要按 Fn 鍵才能觸發,那憋屈的鍵位讓我這用方向鍵與 Ctrl+C 一樣多的程序猿情何以堪!好在我是程序猿,天生不怕折騰,在經過設置 DIP 開關、使用 Autohotkey 改鍵、設置 Win10 系統權限等一系列的折騰之后,終于可以舒服的使用這款 HHKB 寫代碼了,效率更超之前的機械鍵盤。
設置 DIP 開關SW1 on、SW2 off = Lite ext 模式,既 ◇ 鍵為 Win 鍵。
SW3 on = Delete 鍵改為退格鍵。
SW4 on = 左側 ◇ 鍵為 Fn 鍵。
SW5 off = 不交換 ◇ 與 Alt 鍵。
SW6 on = 啟用喚醒功能。
首先要解決方向鍵問題。我并不是 Emacs/Vim 黨,想來想去還是把“上下左右”的快捷鍵設置成 Ctrl + I、K、J、L 比較直觀。另外,編代碼時跳到行首、行尾的操作也很多,所以可以再加上 Ctrl + H 跳到行首,Ctrl + " 跳到行尾的快捷鍵。腳本也很簡單:
^j::Send,{Left} ^l::Send,{Right} ^i::Send,{Up} ^k::Send,{Down} ^h::Send,{Home} ^"::Send,{End}
但是,僅僅這樣并沒有比原來方便,既然進入了雙手不離開主鍵盤區的領域,就要盡可能減少使用鼠標才能提高效率,畢竟現在要實現按方向鍵已經必須使用兩只手了。編代碼選中變量名的操作很多,我們已經實現了 Ctrl + I、K、J、L 上下左右移動光標,如果能實現 Ctrl + ◇ + I、K、J、L 上下左右選中文本就非常方便而且直觀了!觀察一下 HHKB 的鍵盤,正好 ◇ + I、K、J、L 等價于 PrintScreen、Home、小鍵盤的除號、PageUp 鍵,所以就再增加如下腳本代碼:
^PrintScreen up::Send,{RShift down}{Up}{RShift up} ^Home up::Send,{RShift down}{Down}{RShift up} ^NumpadDiv up::Send,+{Left} ^PgUp up::Send,{RShift down}{Right}{RShift up}
注意在每個快捷鍵后面都加上了 “up”。這是因為在測試時發現,如果 Ctrl + ◇ + J 按住的話,也就是希望光標以最快速度往左側選中文本的時候,每選中5、6個字母,選中的字母就會被一個 “/” 字母替換掉!也就是本來應該連續輸出 Shift + Left,卻偶爾直接輸出了 “/”。而快捷鍵后面加上 “up” 的意思是不允許按住,只允許一下一下按快捷鍵。這樣雖然不會出錯了,但是這一下一下按效率實在太低了。經過反復嘗試,我找到一個秘技:先使用 “NumpadDiv::CtrlBreak” 和 “PgUp::CtrlBreak” 把要輸出的快捷鍵改為不會實際輸出字符的“CtrlBreak”鍵,就不怕鍵沖突了。實際腳本這個樣子:
NumpadDiv::CtrlBreak PgUp::CtrlBreak ^NumpadMult up::Send,{RShift down}{Home}{RShift up} ^NumpadDiv::Send,+{Left} ^Home up::Send,{RShift down}{Down}{RShift up} ^PgUp::Send,{RShift down}{Right}{RShift up} ^PrintScreen up::Send,{RShift down}{Up}{RShift up} ^Right up::Send,{RShift down}{End}{RShift up} ^NumpadSub up::Send,{RControl down}{Left}{RControl up}{RControl down}{RShift down}{Right}{RControl up}{RShift up} ;select whole word left to right ^End up::Send,{RControl down}{RShift down}{Left}{RControl up}{RShift up} ;select whole word left ^PgDn up::Send,{RControl down}{RShift down}{Right}{RControl up}{RShift up} ;select whole word right ^NumpadAdd up::Send,{Home}+{End}
上面的腳本還同時實現了 Ctrl + M 選中單詞,Ctrl + N 選中行,Ctrl + < 向左按單詞擴選,Ctrl + > 向右按單詞擴選。最棒的還是可以允許按住 Ctrl + ◇ + J 和 Ctrl + ◇ + L 來快速擴選了,代價是犧牲了小鍵盤除號和PageUp鍵,不過可以接受。
另外像把變量首字母由大寫改為小寫這樣的功能,雖然不是很常用,但也能有效提升效率,我把快捷鍵設置為 Ctrl + 反引號,實現起來稍稍有點復雜但也不難。使用一段時間,做了些優化和微調,最終的Autohotkey腳本:
NumpadDiv::CtrlBreak PgUp::CtrlBreak ^j::Send,{Left} ^l::Send,{Right} ^i::Send,{Up} ^k::Send,{Down} ^h::Send,{Home} ^"::Send,{End} ^NumpadMult up::Send,{RShift down}{Home}{RShift up} ^NumpadDiv::Send,+{Left} ^Home up::Send,{RShift down}{Down}{RShift up} ^PgUp::Send,{RShift down}{Right}{RShift up} ^PrintScreen up::Send,{RShift down}{Up}{RShift up} ^Right up::Send,{RShift down}{End}{RShift up} ^NumpadSub up::Send,{RControl down}{Left}{RControl up}{RControl down}{RShift down}{Right}{RControl up}{RShift up} ;select whole word left to right ^End up::Send,{RControl down}{RShift down}{Left}{RControl up}{RShift up} ;select whole word left ^PgDn up::Send,{RControl down}{RShift down}{Right}{RControl up}{RShift up} ;select whole word right ^NumpadAdd up::Send,{Home}+{End} RWin & "::Send,{RWin down}{RControl down}{Right}{RWin up}{RControl up} RWin & `;::Send,{RWin down}{RControl down}{Left}{RWin up}{RControl up} +Esc::Send,{RAlt down}{Left}{RAlt up} +Tab::Send,{RAlt down}{Right}{RAlt up} ; Ctrl + ` set firt char to lower ^`:: clipBak := ClipboardAll ; bak clipboard Clipboard := "" ;clear clipboard Send,{RControl down}{Left}{RControl up}{RShift down}{Right}{RShift up}{RControl down}c{RControl up} ;copy first char to clipboard ClipWait, 1 ;wait clip complete ; convert firt char in clipboard to lower selText := Clipboard ;MsgBox % selText StringLower, selText, selText ; set lower char to clipboard and paste it to replace in place Clipboard := selText Send, ^v Sleep, 100 ;prevent restore clipBak too early Clipboard := clipBak ; restore clipboard Send, {RControl down}{Right}{RControl up} return ;Ignore these shortkey ^1::return ^2::return ^3::return ^4::return ^5::return ^6::return ^7::return ^8::return ^9::return ^0::return ^-::return ^=::return ^::return ^Left::return設置 Win10 權限
到目前為止似乎一切都很完美,但是打開 Visual Studio,突然發現在 VS 里面剛剛設置的所有快捷鍵全!失!效!!一開始還以為是 VS 把全局快捷鍵給屏蔽了,想找找能不能通過 VS 里面的設置不屏蔽全局快捷鍵,結果無功而返,感覺怕是解決不了了。后來還是在靠譜的 Stackoverflow 里面找到了答案。原來是因為 VS 運行于管理員權限,而 Autohotkey 運行于普通用戶權限。解決方法就是在 AutoHotkeyU64.exe(如果是64位操作系統的話)右擊,選“屬性”,在“兼容性”選項卡里,勾選“以管理員身份運行此程序”。
終于解決了 VS 快捷鍵失效的問題,但是馬上又發現以管理員身份運行 Autohotkey 會造成它不能開機自動啟動。解決方法是禁用 UAC。禁用 UAC 的方法是:Win+R,輸入gpedit.msc,運行打開“本地組策略編輯器”,計算機配置->Windows設置->安全設置->本地策略->安全選項->以管理員批準模式運行所有管理員,改為"已禁用"即可。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/94038.html
摘要:買和,但作為一名收入還不是很穩定的前端,公司又不標配這些,又不想用自己的辦公。工作難免會用系統,那就學點,效率賊。把鍵當鍵用但是如果是用編輯器。單行可省略比如當你的正常運行你編寫的代碼時。 myHotKey github 地址 我只想看看還有多少人用 window 系統辦公,像我一樣在太陽下低頭。 工欲善其事,必先利其器。買 mac 和 HHKB,但作為一名收入還不是很穩定的前端,公司...
摘要:在中,格式是,所以需要把格式統一為注冊表的標準。注冊表的二進制值及關鍵信息如下開關長度地址是否跳過本地代理地址通過在中導入文件的方式執行并立即生效。本代碼可以根據需要自動設置代理。 聲明下:不同于網絡上千百篇方法,下文是經過各種嚴格測試都通過的,同時也是一個實驗的過程,排除了各種不靠譜的方法。有需要的可以評論來討論,想要源碼和相關參考文獻或筆記的,也可以找我。 思路及啟發 先說一下我這...
摘要:如果你問一個年輕的前端開發人員,你在今后的年內如何提升自己的能力他可能會說我現在對前端比較熟悉,但我想深入了解,另外現在發展的很快我也想看一下。再舉一個例子,我會留意身邊的程序員所用的鍵盤。只有少部分的程序員會買高端的靜電容鍵盤,比如。 如果你問一個年輕的前端開發人員,你在今后的 3 年內如何提升自己的能力?他可能會說我現在對 Web 前端比較熟悉,但我想深入了解 AngularJS,...
閱讀 1331·2019-08-30 15:44
閱讀 1381·2019-08-29 18:42
閱讀 433·2019-08-29 13:59
閱讀 770·2019-08-28 17:58
閱讀 2811·2019-08-26 12:02
閱讀 2414·2019-08-23 18:40
閱讀 2406·2019-08-23 18:13
閱讀 3106·2019-08-23 16:27