摘要:由于已經(jīng)厭倦了機(jī)械鍵盤(pán),又實(shí)在無(wú)法抵擋的顏值,入手了一枚。我并不是黨,想來(lái)想去還是把上下左右的快捷鍵設(shè)置成比較直觀。原來(lái)是因?yàn)檫\(yùn)行于管理員權(quán)限,而運(yùn)行于普通用戶(hù)權(quán)限。解決方法是禁用。
由于已經(jīng)厭倦了機(jī)械鍵盤(pán),又實(shí)在無(wú)法抵擋 HHKB 的顏值,入手了一枚 hhkb pro2。
入手之后立刻傻眼,方向鍵不僅需要按 Fn 鍵才能觸發(fā),那憋屈的鍵位讓我這用方向鍵與 Ctrl+C 一樣多的程序猿情何以堪!好在我是程序猿,天生不怕折騰,在經(jīng)過(guò)設(shè)置 DIP 開(kāi)關(guān)、使用 Autohotkey 改鍵、設(shè)置 Win10 系統(tǒng)權(quán)限等一系列的折騰之后,終于可以舒服的使用這款 HHKB 寫(xiě)代碼了,效率更超之前的機(jī)械鍵盤(pán)。
設(shè)置 DIP 開(kāi)關(guān)SW1 on、SW2 off = Lite ext 模式,既 ◇ 鍵為 Win 鍵。
SW3 on = Delete 鍵改為退格鍵。
SW4 on = 左側(cè) ◇ 鍵為 Fn 鍵。
SW5 off = 不交換 ◇ 與 Alt 鍵。
SW6 on = 啟用喚醒功能。
首先要解決方向鍵問(wèn)題。我并不是 Emacs/Vim 黨,想來(lái)想去還是把“上下左右”的快捷鍵設(shè)置成 Ctrl + I、K、J、L 比較直觀。另外,編代碼時(shí)跳到行首、行尾的操作也很多,所以可以再加上 Ctrl + H 跳到行首,Ctrl + " 跳到行尾的快捷鍵。腳本也很簡(jiǎn)單:
^j::Send,{Left} ^l::Send,{Right} ^i::Send,{Up} ^k::Send,{Down} ^h::Send,{Home} ^"::Send,{End}
但是,僅僅這樣并沒(méi)有比原來(lái)方便,既然進(jìn)入了雙手不離開(kāi)主鍵盤(pán)區(qū)的領(lǐng)域,就要盡可能減少使用鼠標(biāo)才能提高效率,畢竟現(xiàn)在要實(shí)現(xiàn)按方向鍵已經(jīng)必須使用兩只手了。編代碼選中變量名的操作很多,我們已經(jīng)實(shí)現(xiàn)了 Ctrl + I、K、J、L 上下左右移動(dòng)光標(biāo),如果能實(shí)現(xiàn) Ctrl + ◇ + I、K、J、L 上下左右選中文本就非常方便而且直觀了!觀察一下 HHKB 的鍵盤(pán),正好 ◇ + I、K、J、L 等價(jià)于 PrintScreen、Home、小鍵盤(pán)的除號(hào)、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}
注意在每個(gè)快捷鍵后面都加上了 “up”。這是因?yàn)樵跍y(cè)試時(shí)發(fā)現(xiàn),如果 Ctrl + ◇ + J 按住的話(huà),也就是希望光標(biāo)以最快速度往左側(cè)選中文本的時(shí)候,每選中5、6個(gè)字母,選中的字母就會(huì)被一個(gè) “/” 字母替換掉!也就是本來(lái)應(yīng)該連續(xù)輸出 Shift + Left,卻偶爾直接輸出了 “/”。而快捷鍵后面加上 “up” 的意思是不允許按住,只允許一下一下按快捷鍵。這樣雖然不會(huì)出錯(cuò)了,但是這一下一下按效率實(shí)在太低了。經(jīng)過(guò)反復(fù)嘗試,我找到一個(gè)秘技:先使用 “NumpadDiv::CtrlBreak” 和 “PgUp::CtrlBreak” 把要輸出的快捷鍵改為不會(huì)實(shí)際輸出字符的“CtrlBreak”鍵,就不怕鍵沖突了。實(shí)際腳本這個(gè)樣子:
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}
上面的腳本還同時(shí)實(shí)現(xiàn)了 Ctrl + M 選中單詞,Ctrl + N 選中行,Ctrl + < 向左按單詞擴(kuò)選,Ctrl + > 向右按單詞擴(kuò)選。最棒的還是可以允許按住 Ctrl + ◇ + J 和 Ctrl + ◇ + L 來(lái)快速擴(kuò)選了,代價(jià)是犧牲了小鍵盤(pán)除號(hào)和PageUp鍵,不過(guò)可以接受。
另外像把變量首字母由大寫(xiě)改為小寫(xiě)這樣的功能,雖然不是很常用,但也能有效提升效率,我把快捷鍵設(shè)置為 Ctrl + 反引號(hào),實(shí)現(xiàn)起來(lái)稍稍有點(diǎn)復(fù)雜但也不難。使用一段時(shí)間,做了些優(yōu)化和微調(diào),最終的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設(shè)置 Win10 權(quán)限
到目前為止似乎一切都很完美,但是打開(kāi) Visual Studio,突然發(fā)現(xiàn)在 VS 里面剛剛設(shè)置的所有快捷鍵全!失!效??!一開(kāi)始還以為是 VS 把全局快捷鍵給屏蔽了,想找找能不能通過(guò) VS 里面的設(shè)置不屏蔽全局快捷鍵,結(jié)果無(wú)功而返,感覺(jué)怕是解決不了了。后來(lái)還是在靠譜的 Stackoverflow 里面找到了答案。原來(lái)是因?yàn)?VS 運(yùn)行于管理員權(quán)限,而 Autohotkey 運(yùn)行于普通用戶(hù)權(quán)限。解決方法就是在 AutoHotkeyU64.exe(如果是64位操作系統(tǒng)的話(huà))右擊,選“屬性”,在“兼容性”選項(xiàng)卡里,勾選“以管理員身份運(yùn)行此程序”。
終于解決了 VS 快捷鍵失效的問(wèn)題,但是馬上又發(fā)現(xiàn)以管理員身份運(yùn)行 Autohotkey 會(huì)造成它不能開(kāi)機(jī)自動(dòng)啟動(dòng)。解決方法是禁用 UAC。禁用 UAC 的方法是:Win+R,輸入gpedit.msc,運(yùn)行打開(kāi)“本地組策略編輯器”,計(jì)算機(jī)配置->Windows設(shè)置->安全設(shè)置->本地策略->安全選項(xiàng)->以管理員批準(zhǔn)模式運(yùn)行所有管理員,改為"已禁用"即可。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/94038.html
摘要:買(mǎi)和,但作為一名收入還不是很穩(wěn)定的前端,公司又不標(biāo)配這些,又不想用自己的辦公。工作難免會(huì)用系統(tǒng),那就學(xué)點(diǎn),效率賊。把鍵當(dāng)鍵用但是如果是用編輯器。單行可省略比如當(dāng)你的正常運(yùn)行你編寫(xiě)的代碼時(shí)。 myHotKey github 地址 我只想看看還有多少人用 window 系統(tǒng)辦公,像我一樣在太陽(yáng)下低頭。 工欲善其事,必先利其器。買(mǎi) mac 和 HHKB,但作為一名收入還不是很穩(wěn)定的前端,公司...
摘要:在中,格式是,所以需要把格式統(tǒng)一為注冊(cè)表的標(biāo)準(zhǔn)。注冊(cè)表的二進(jìn)制值及關(guān)鍵信息如下開(kāi)關(guān)長(zhǎng)度地址是否跳過(guò)本地代理地址通過(guò)在中導(dǎo)入文件的方式執(zhí)行并立即生效。本代碼可以根據(jù)需要自動(dòng)設(shè)置代理。 聲明下:不同于網(wǎng)絡(luò)上千百篇方法,下文是經(jīng)過(guò)各種嚴(yán)格測(cè)試都通過(guò)的,同時(shí)也是一個(gè)實(shí)驗(yàn)的過(guò)程,排除了各種不靠譜的方法。有需要的可以評(píng)論來(lái)討論,想要源碼和相關(guān)參考文獻(xiàn)或筆記的,也可以找我。 思路及啟發(fā) 先說(shuō)一下我這...
摘要:如果你問(wèn)一個(gè)年輕的前端開(kāi)發(fā)人員,你在今后的年內(nèi)如何提升自己的能力他可能會(huì)說(shuō)我現(xiàn)在對(duì)前端比較熟悉,但我想深入了解,另外現(xiàn)在發(fā)展的很快我也想看一下。再舉一個(gè)例子,我會(huì)留意身邊的程序員所用的鍵盤(pán)。只有少部分的程序員會(huì)買(mǎi)高端的靜電容鍵盤(pán),比如。 如果你問(wèn)一個(gè)年輕的前端開(kāi)發(fā)人員,你在今后的 3 年內(nèi)如何提升自己的能力?他可能會(huì)說(shuō)我現(xiàn)在對(duì) Web 前端比較熟悉,但我想深入了解 AngularJS,...
閱讀 1339·2019-08-30 15:44
閱讀 1391·2019-08-29 18:42
閱讀 446·2019-08-29 13:59
閱讀 782·2019-08-28 17:58
閱讀 2823·2019-08-26 12:02
閱讀 2424·2019-08-23 18:40
閱讀 2414·2019-08-23 18:13
閱讀 3116·2019-08-23 16:27