如何提高還在用window系統的編碼硬效率

m_le發表於2018-02-26

myHotKey

github 地址

我只想看看還有多少人用 window 系統辦公,像我一樣在太陽下低頭。

工欲善其事,必先利其器。買 mac 和 HHKB,但作為一名收入還不是很穩定的前端,公司又不標配這些,又不想用自己的 mac 辦公。工作難免會用 window 系統 ,那就學點 autohotkey , 效率賊 6。畢竟現在文件已經很成熟了,想搞事情還是可以的。什麼 mac 鍵,拋棄 ctrl,工作流,都依你,開心就好!

可以參考下,我的配置。先來看下我都用autohotkey 做了什麼。雖然可以用很多工具實現,但我還是會選擇不安裝過多軟體,能自己實現不是很好麼~ window 下我只推薦listary

用的舒服的話,可以把 myHotKey.ahk 檔案放在開機自動啟動即可。

myHotKey 能做什麼

下面是我整合的一些常用操作: github 地址 PS: 當然不一定是你想要的。而且很可能不習慣,所以在用之前你可以先大概看一下,最後修改為你自己想要的 ahk 指令碼。

  • 快速開啟常用網址,如按下 f4 即可開啟我的 github
f4::Run http://github.com/leer0911/
  • 搜尋引擎整合,如按下 f1 可以用谷歌搜尋選中的文字,f6 可以觸發搜尋 前端常用的devdocs 如 mac 裡面的dash
f1::
current_clipboard = %Clipboard%
Send ^c
ClipWait, 1
Run http://www.google.com/search?q=%Clipboard%
Clipboard = %current_clipboard%
return
  • 游標快速移動,對映了鍵盤上的方向鍵。(把 alt 鍵當 mac 鍵用) 但是如果是用 vscode 編輯器。我還是覺得 jumpy 外掛最好跳轉了。用的不開心還能改原始碼~

    • alt+i 觸發 向上鍵
    • alt+j 觸發 向左鍵
    • alt+k 觸發 向下鍵
    • alt+l 觸發 向右鍵
; 鍵盤鍵位替換,如 上下左右 刪除 全選
<!i::send {Up}
<!k::send {Down}
<!j::send {Left}
<!l::send {Right}
<!u::send {Backspace}
<!a::send ^a
  • 快速選擇文字,用過 vim 的應該都喜歡游標快速跳轉,文字快速選中。只要你想要。完全能打造成任意編輯器下的 vim 。

    • alt+shift+i 觸發 向上選中文字
    • alt+shift+j 觸發 向左選中文字
    • alt+shift+k 觸發 向下選中文字
    • alt+shift+l 觸發 向右選中文字
+!i::send +{up}
+!j::send +{left}
+!l::send +{right}
+!k::send +{down}
+!;::send +{end}
+!h::send +{home}
  • 一些常用但是按起來特別變扭的符號 如 # . 等,用別的按鍵對映。這個完全看個人習慣。如我不常用 CapsLock(大小寫鍵) 則將其修改為 右shift鍵。

    • CapsLock + j 對應 #
    • CapsLock + d 對應 .
    • CapsLock + k 對應 ()
    • CapsLock + l 對應 {}
; 常用符號快捷鍵生成 如 < $ # * > + ^ - = ! {} () . ,
>+h::send <
>+s::send $
>+j::send {#}
>+x::send *
>+u::send >
>+o::send {^}
>+i::send {+}
>+n::send -
>+m::send {=}
>+l::send {{}
>+k::send (
>+g::send {!}
>+d::send .
>+f::send {,}
>+space::send {=}
  • 我最常用的功能應該是 任意軟體 置頂 , 改變軟體透明度。對於我們前端來說。總覺得螢幕不夠用,老闆又不肯買兩個螢幕。怎麼辦。編輯器半透明唄,這樣就可以邊敲程式碼邊看設計稿了。看 API 的時候也是。可以讓編輯器置頂,半透明再配合 瀏覽器的 vimium 外掛,你就可以邊敲程式碼邊看文件了。

    • 雙擊 shift 實現軟體置頂
    • alt + + 實現降低軟體透明度
    • alt + – 實現增加軟體透明度
  • 更多的功能,待你們去挖掘。記得分享~

覺得可以的話,可以繼續看下教程。

快速入門

畢竟學習一門新語言是需要時間的,下面只是簡單描述下我用 autohotkey 接觸到的東西,這樣當你想用我這套 hotkey 的時候能看懂並能修改成自己想要的。當然,想系統學習的同學可以直接參考官方文件

  • 下載&安裝 autohotkey
  • 新建 字尾為.ahk 的檔案並執行

熱鍵

首先了解,程式碼中修飾符都代表了鍵盤中的哪些按鍵,你只要知道了修飾符邊可以通過程式碼來讓按鍵搞事情(指令碼動作)。熱鍵是通過一對 :: 建立的. 按鍵名或組合按鍵名必須在 :: 左邊. 程式碼則跟在後面, 以 Return 結束。(單行可省略 return) 比如

^j::
   Send, My First Script
Return

當你的 autohotkey 正常執行你編寫的程式碼時。按下 ctrl+j 會輸出 My First Script 這麼一段文字。

符號 說明
# win
! alt
^ control
+ shift
& 用於組合按鍵
< 左按鍵
> 右按鍵
* 萬用字元
~ 保留按鍵原功能
UP 釋放時觸發熱鍵

詳細

禁用按鍵

通過不為按鍵或按鍵組合的熱鍵指定任何操作可以在整個系統中完全禁用它們. 下面的例子中禁用了右 Windows 鍵:

RWin::return

上文相關按鍵

當需要在某些特定軟體中設定熱鍵則需要了解,上下文按鍵

#IfWinActive/Exist#if指令可以用來讓熱鍵根據不同的條件執行不同的動作例如:

#IfWinActive, ahk_class Notepad
^a::MsgBox 你在記事本中按下了 Ctrl-A . 而在其他視窗中按下 Ctrl-A 將原樣傳送.
#c::MsgBox 你在記事本中按下了 Win-C 組合鍵.

#IfWinActive
#c::MsgBox 你在非記事本程式中按下了 Win-C .

#If MouseIsOver("ahk_class Shell_TrayWnd")
WheelUp::Send {Volume_Up}     ; 在工作列上滾動滾輪:增加/減小音量.
WheelDown::Send {Volume_Down} ;

熱字串

熱字串主要用於擴充套件你的縮寫庫(自動替換). 當然, 它也可以用來對映任何指令碼動作。比如

::ftw::Free the whales

熱字串會將你輸入的”ftw”轉換為”Free the whales”。

搞事情啦

知道了熱鍵和熱字串,肯定想知道能用他來搞什麼事情。

傳送按鍵

現在你決定傳送一些按鍵到一個程式中. 你可以使用 Send 命令. Send 表示傳送按鍵, 模擬打字或按鍵操作.如

Send !+a

會按下 ALT+SHIFT+a

更多 send 命令

執行程式和網頁

想要執行畫圖(mspaint.exe), 計算器(calc.exe), 指令碼.ahk 等程式或要開啟一個資料夾, 你可以使用 Run 命令. 你還可以用這個命令開啟一個網址, 比如開啟 https://autohotkey.com/ . 如果你想開啟一個已經安裝好的程式, 也很簡單, 就像這樣:

; 執行一個程式. 注: 大部分的程式可能需要完整路徑.
Run, %A_ProgramFiles%Some_ProgramProgram.exe

; 開啟一個網址
Run, https://autohotkey.com

更多 run 命令

命令和函式索引

AutoHotkey 有兩個重要的工具供開發者使用:命令和函式

官方文件

相關文章