用AutoHotKey自定义快捷键和快捷输入

AutoHotKey 是一款非常优秀的自动化工具。用之来自定义快捷键和快捷输入是非常容易上手且非常实用的应用,更强大的程序实例可参看小众软件发布的AutoHotKey工具 。


以下是我设置为开机启动的快捷键和快捷输入设置,其中快捷输入以SQLServer2005的T-SQL代码为主。
安装AutoHotKey后,将代码保存为AutoInput.ahk(或者随便什么名字,只要扩展名是.ahk),双击运行即可。

 

个人评价:
1. 能提高T-SQL的输入速度30%-50%。
2. 将双手从移动鼠标和敲击键盘中解放出来,集中注意于程序思路。
3. 客观上有助于统一代码风格。
4. 负面影响是,一旦习惯了它就再也离不了它。

 

;开头的行是AutoHotKey脚本的注释 ; 以下是Ctrl+Alt+<相应字母>打开程序: ^!c:: IfWinExist Calculator ;中文Windows改为:IfWinExist 计算器 WinActivate else Run calc return ; 限定计算器只打开一个;以下程序可打开多个: ^!p::Run C:/Documents and Settings/All Users/「开始」菜单/程序/Python 3.0/IDLE (Python GUI).lnk ^!e::Run C:/Documents and Settings/All Users/「开始」菜单/程序/Microsoft Office/Microsoft Office Excel 2003.lnk ^!m::Run C:/Program Files/WinMerge/WinMergeU.exe ^!d::Run mspaint ^!n::Run notepad ^!v::Run gvim ^!s::Run cmd /k cd /d "%USERPROFILE%/桌面" & title Shell ; 在AHK的Run命令后面指定相应路径也可以用来打开文件和文件夹。 ^!h::Run cmd /c gvim C:/WINDOWS/system32/drivers/etc/hosts ;把cmd /c gvim改成notepad可用计事本打开 ^!b::Run E:/BIProjects ; 以下是按WIN键+<相应字母>执行Cygwin目录下的命令(未安装Cygwin的朋友请删除以下4行): #c::Run cmd /c getclip | putclip #v::Run cmd /c getclip | sort | putclip ; #c的作用是清除剪贴板内容的格式(如Excel表格样式、Outlook文本格式等),使之只剩纯文本;#v的作用是对剪贴板内容排序(当然也会清除格式)。 ; 以下是按WIN键+<相应字母>输入时间戳: #t::SendInput %A_Now% #y::SendInput %A_YYYY%%A_MM%%A_DD% #`::SendInput localhost #1::SendInput 192.168.1.101 #2::SendInput 192.168.1.102 ; 也可以用来输入自己经常需要输入的字串,如IP地址、用户名等等。 ; SendInput支持AutoHotKey的特殊变量(如%A_Now%)和Windows的环境变量(如%USERPROFILE%),除非设置#NoEnv。 ; 以下是一组SQL语句的快捷输入,如按;s再空格即可输入SELECT、;gd即可输入GETDATE(): :?:;s::SELECT :?:;tp::TOP :?:;d::DISTINCT :?:;f::FROM :?:;ij::INNER JOIN :?:;lj::LEFT JOIN :?:;rj::RIGHT JOIN :?:;fj::FULL JOIN :?:;cj::CROSS JOIN :?:;ca::CROSS APPLY :?:;oa::OUTER APPLY :?:;w::WHERE :?:;h::HAVING :?:;sd::SELECT DISTINCT :?:;st::SELECT TOP(10) * :?:;stf::SELECT TOP(10) * FROM :?:;sf::SELECT * FROM :?:;sft::SELECT * FROM sys.tables :?:;sfi::SELECT * FROM sys.indexes :?:;sfp::SELECT * FROM sys.procedures :?:;sfo::SELECT * FROM sys.objects :?:;sfc::SELECT table_name=object_name(object_id),* FROM sys.columns WHERE name :?:;gb::GROUP BY :?:;ob::ORDER BY :?:;pb::PARTITION BY :?:;ba::BETWEEN AND {left 5} :?:;wi::WITH :?:;a::AND :?:;clt::COLLATE :?:;its::INTERSECT :?:;exc::EXCEPT :?:;uni::UNION :?:;una::UNION ALL :?:;al::ALL :?:;i::INSERT :?:;ii::INSERT INTO :?:;v::VALUES :?:;u::UPDATE :?:;del::DELETE :?:;df::DELETE FROM :?:;ci::CREATE INDEX :?:;cui::CREATE UNIQUE INDEX :?:;cci::CREATE CLUSTERED INDEX :?:;cuci::CREATE UNIQUE CLUSTERED INDEX :?:;to::INTO :?:;dc::DECLARE :?:;ct::CREATE TABLE :?:;at::ALTER TABLE :?:;dt::DROP TABLE :?:;tt::TRUNCATE TABLE :?:;id::IDENTITY(1,1) :?:;cstr::CONSTRAINT :?:;pk::PRIMARY KEY CLUSTERED :?:;uq::UNIQUE :?:;fk::FOREIGN KEY :?:;ref::REFERENCES :?:;def::DEFAULT :?:;ck::CHECK :?:;n::NULL :?:;nn::NOT NULL :?:;cf::CREATE FUNCTION :?:;cp::CREATE PROCEDURE :?:;cv::CREATE VIEW :?:;ctr::CREATE TRIGGER :?:;b::BEGIN :?:;e::END :?:;cs::CASE :?:;wn::WHEN :?:;tn::THEN :?:;el::ELSE :?:;wl::WHILE :?:;rt::RETURN :?:;bt::BEGIN TRY :?:;et::END TRY :?:;bc::BEGIN CATCH :?:;ec::END CATCH :?:;l::LIKE :?:;exs::EXISTS :?:;trs::TRANSACTION :?:;cmt::COMMIT :?:;rbk::ROLLBACK :?:;cnt::COUNT :?:;nif::NULLIF :?:;isn::ISNULL :?:;cls::COALESCE :?:;cvt::CONVERT :?:;chi::CHARINDEX :?:;pai::PATINDEX :?:;rep::REPLACE :?:;sub::SUBSTRING :?:;stu::STUFF :?:;dd::DATEDIFF :?:;da::DATEADD :?:;dp::DATEPART :?:;cks::CHECKSUM :?:;hsb::HASHBYTES :?:;rn::ROW_NUMBER() OVER :?:;rk::RANK() OVER :?:;drk::DENSE_RANK() OVER :?:;b2h::sys.fn_varbintohexstr :?*:;gd::GETDATE() :?*:;rdm::ABS(CHECKSUM(NEWID())) :?*:;nl::WITH (NOLOCK) :?*:;idk::WITH (IGNORE_DUP_KEY = ON) :?*:;sfsqlm::SELECT object_name=object_name(object_id),* FROM sys.sql_modules WHERE definition LIKE '%%'{left 2} :?:;sii::SET IDENTITY_INSERT :?*:;sru::SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED :?*:;mp::'1[3458]'{+}REPLICATE('[0-9]',9) ;LIKE匹配手机号码 :?*:;tf::yyyy-MM-dd HH:mm:ss ;EXCEL中时间格式 :?*:;23::23:59:59 :?*:;ip::192.168. ; 根据自己的需要设定快捷输入,熟练之后可以大大加快输入SQL语句的效率。

 

你可能感兴趣的:(Tools,&,Tips)