autohotkey是一款热键脚本语言,网上相关的介绍很多,我这不多介绍。一般敲多的码的人,对方向键、键盘和鼠标之间来回移动都会觉的是一件很麻烦的事,使用vim的除外,所以我这在这里介绍使autohot实现鼠标与方向键的功能。

一般来说平时capslock键和scrllLock 这两个键使用的频率非常低,我们可以将caplock设为和ctl、alt、win一样的功能键,但是使用capslock这个设置会有出现大小写切换的问题,使用ahk这个软件来换键并不是一个好的解决方案,所以我还要用到另一个改键软件 KeyTweak。KeyTweakn改键原理是修改注册表,比ahk更为彻底,我将caplock和scrllLock相换一下,以后大小切换就是scrllLock了(我平时都是按shift的)。

下面开始在ahk中编辑。

鼠标功能

这部分代码来自http://www.ahk8.com/,年代久远原作者记记是谁了。。

SetScrollLockState, AlwaysOff;禁用SetScrollLockState
#SingleInstance
count = 0
JoyMultiplier = 0.20
JoyThreshold = 3
JoyThresholdUpper := 50 + JoyThreshold
JoyThresholdLower := 50 - JoyThreshold
YAxisMultiplier = -1
SetTimer, WatchKeyboard, 10Hotkey, F1, ButtonLeft ;F1模拟左键
Hotkey, F2, ButtonRight;F2模拟右键
Hotkey, up, empty
Hotkey, down, empty
Hotkey, left, empty
Hotkey, right, empty
ReturnScrollLock & F1:: ;开启鼠标功能
SetTimer, WatchKeyboard, 10
Hotkey, F1, On
Hotkey, F2, On
Hotkey, up, On
Hotkey, down, On
Hotkey, left, On
Hotkey, right, On
ReturnScrollLock & F2::;关闭鼠标功能
SetTimer, WatchKeyboard, Off
Hotkey, F1, Off
Hotkey, F2, Off
Hotkey, up, Off
Hotkey, down, Off
Hotkey, left, Off
Hotkey, right, Off
Returnempty:
Return
WatchKeyboard:
MouseNeedsToBeMoved := false  ; Set default.
JoyMultiplier+=0.01
SetFormat, float, 03
up:=GetKeyState("Up","p")
down:=GetKeyState("Down","p")
Left:=GetKeyState("Left","p")
right:=GetKeyState("Right","p")
if(Right)
{MouseNeedsToBeMoved := trueDeltaX := 10
}
else if(Left)
{MouseNeedsToBeMoved := trueDeltaX := -10
}
elseDeltaX = 0
if (up)
{MouseNeedsToBeMoved := trueDeltaY := 10
}
else if (Down)
{MouseNeedsToBeMoved := trueDeltaY := -10
}
elseDeltaY = 0
if MouseNeedsToBeMoved
{SetMouseDelay, -1  ; Makes movement smoother.MouseMove, DeltaX * JoyMultiplier, DeltaY * JoyMultiplier * YAxisMultiplier, 0, R
}
Else
count++
If(count>20){
JoyMultiplier = 0.30
count=0
}
returnButtonLeft:
SetMouseDelay, -1  ; Makes movement smoother.
MouseClick, left,,, 1, 0, D  ; Hold down the left mouse button.
SetTimer, WaitForLeftButtonUp, 10
returnButtonRight:
SetMouseDelay, -1  ; Makes movement smoother.
MouseClick, right,,, 1, 0, D  ; Hold down the right mouse button.
SetTimer, WaitForRightButtonUp, 10
returnWaitForLeftButtonUp:;使用支持鼠标手势
if GetKeyState("F1")return  ; The button is still, down, so keep waiting.
; Otherwise, the button has been released.
SetTimer, WaitForLeftButtonUp, off
SetMouseDelay, -1  ; Makes movement smoother.
MouseClick, left,,, 1, 0, U  ; Release the mouse button.
returnWaitForRightButtonUp:
if GetKeyState("F2")return  ; The button is still, down, so keep waiting.
; Otherwise, the button has been released.
SetTimer, WaitForRightButtonUp, off
MouseClick, right,,, 1, 0, U  ; Release the mouse button.
return
;;endmouse

方向键与其它光标的功能:

按我的设置上下左右分别为caps+i/j/k/l/j;home,end,delete,pgup,pgdn为caps+h/n/o/[/];
;scroll事件
ScrollLock & [::send,{WheelUp}
ScrollLock & ]::send,{WheelDown}
; move left
ScrollLock & j::
if GetKeyState("LShift", "P")send, +{Left}
else if GetKeyState("LAlt", "P")send,^{left}
elsesend, {Left}
Return
; move right
ScrollLock & l::
if GetKeyState("LShift", "P")send, +{right}
else if GetKeyState("LAlt", "P")send,^{right}
elsesend, {right}
Return
; move up
ScrollLock & i::
if GetKeyState("LShift", "P")send, +{up}
else if GetKeyState("LAlt", "P")send,^!{up}
else if GetKeyState("LControl", "P")send,^+{up}
elsesend, {up}
Return
; move down
ScrollLock & k::
if GetKeyState("LShift", "P")send, +{down}
else if GetKeyState("LAlt", "P")send,^!{down}
else if GetKeyState("LControl", "P")send,^+{down}
elsesend, {down}
Return
;home
ScrollLock & h::
if GetKeyState("LShift", "P")send, +{home}
elsesend, {home}
Return
; end
ScrollLock & n::
if GetKeyState("LShift", "P")send, +{end}
elsesend, {end}
Return
;delelte
ScrollLock & o::send,{delete}

拾色器

利用ahk设置的拾色器非常方便,这里设置的快揵是alt+win+c

!#c::MouseGetPos, mouseX, mouseYPixelGetColor, color, %mouseX%, %mouseY%, RGBStringRight color,color,6clipboard = #%color%tooltip,color is %color%sleep 2000tooltip,
return

剪切板

系统自带的剪切板只能一起复制与粘贴,下面的剪切板支持最多30次copy,热键如下:

  1. ;win+0:清空 ;
  2. ctrl+c:复制 ;
  3. win+v:依次粘贴 ;
  4. win+]:依次粘贴,但顺序相反
handleClip(action)
{
global static AddNextNum
global static GetNextNum
global static HighestNum
global static getprevnum
global static highest1
global static ClipArray
global static ClipArray1
global static ClipArray2
global static ClipArray3
global static ClipArray4
global static ClipArray5
global static ClipArray6
global static ClipArray7
global static ClipArray8
global static ClipArray9
global static ClipArray10
global static ClipArray11
global static ClipArray12
global static ClipArray13
global static ClipArray14
global static ClipArray15
global static ClipArray16
global static ClipArray17
global static ClipArray18
global static ClipArray19
global static ClipArray20
global static ClipArray21
global static ClipArray22
global static ClipArray23
global static ClipArray24
global static ClipArray25
global static ClipArray26
global static ClipArray27
global static ClipArray28
global static ClipArray29
global static ClipArray30if (action = "save")
{
if (AddNextNum < 30)
{
AddNextNum += 1 ;
}
else
{
AddNextNum := 1 ;
}if (HighestNum < 30)
{
HighestNum += 1 ;
}GetNextNum := AddNextNum ;
ClipArray%AddNextNum% := Clipboard
highest1 := highestnum + 1
getprevnum := 1}
else if ((action = "get") OR (action = "roll"))
{
if (GetNextNum != 0)
{
if (action = "roll")
{
Send, ^z
}
Clipboard := ClipArray%GetNextNum%
if (GetNextNum > 1)
{
GetNextNum -= 1 ;
getprevnum++
}
else
{
getprevnum := 1
GetNextNum := HighestNum}
Send, ^v
}
}
else if (action = "get-reverse")
{
if (GetNextNum != 0)
{Clipboard := ClipArray%getprevnum%
if (GetNextNum > 1)
{
GetNextNum -= 1 ;
getprevnum++
}
else
{
getprevnum := 1
GetNextNum := HighestNum}
Send, ^v
}
}else if (action = "rollforward")
{
if (GetNextNum != 0)
{
Send, ^z
if (GetNextNum < HighestNum)
{
GetNextNum += 1 ;
}
else
{
GetNextNum := 1
}
Clipboard := ClipArray%GetNextNum%
Send, ^v
}
}
else if (action = "clear")
{GetNextNum := 0
AddNextNum := 0
HighestNum := 0
getprevnum := 0
}
}#0::
handleClip("clear")
return^c::
suspend on
Send, ^c
suspend off
handleClip("save")return#v::handleClip("get-reverse")
return#]::handleClip("get")
return
; #\::
;   handleClip("roll")
;   ToolTip,
;   sleep 2000
;   tooltip,
; return
#/::clipboard =
return#^\::handleClip("rollforward")
return
; end 剪切板

使用AHK减少鼠标和方向键的使用频率,高效编辑相关推荐

  1. 在鼠标右键上加入使用notepad++编辑

    在鼠标右键上加入使用notepad++编辑 我们在安装完notepad++文本编辑器之后,在一个文本文件上右键有时候并没有出现"使用notepad++编辑的选项",我们可以通过简单 ...

  2. 【AHK】鼠标调整窗口大小/移动窗口位置/窗口置顶/透明度

    通过AHK,设置窗体大小或位置,首先是两种鼠标调节窗体方案,后面是快捷键,注意修改快捷键的位置有两个,仿照Ubuntu调节窗体的快捷键 Alt+F7.Alt+F8,个人感觉比要按着ALT调节的小工具要 ...

  3. 鼠标导向+方向键移动

    using System.Collections; using System.Collections.Generic; using UnityEngine;public class PlayerMot ...

  4. VS Code快捷键—焦点切换(减少鼠标操作)

    VS Code ShortCut: ctrl + M 使用tab键切换焦点模式tab move foucs ctrl + ~ 聚焦到TERMINAL(展开/收起TERMINAL) ctrl + 聚焦到 ...

  5. 【高效程序员系列】3 别碰鼠标——让键盘飞起来

    一.闪电启动软件的秘密 正如很多魔术,外行人苦思冥想也无法得知其中的奥秘,一旦揭穿则会让人大呼:原来是这样,太简单了.其实这里闪电启动软件业没有什么高深的方法,只不过是调用了运行而已.作为软件开发人员 ...

  6. 【高效程序员系列】别碰鼠标——让键盘飞起来

    一.闪电启动软件的秘密 正如很多魔术,外行人苦思冥想也无法得知其中的奥秘,一旦揭穿则会让人大呼:原来是这样,太简单了.其实这里闪电启动软件业没有什么高深的方法,只不过是调用了运行而已.作为软件开发人员 ...

  7. 【高效程序员系列】3、别碰鼠标——让键盘飞起来

    看到文章标题,你肯定会很奇怪,为什么"别碰鼠标",离开鼠标还怎么操作电脑?"让键盘飞起来",键盘怎么会飞呢?你可以保留这些疑问,先跟着我的描述操作一遍,注意操作 ...

  8. 别碰鼠标——让键盘飞起来

    看到文章标题,你肯定会很奇怪,为什么"别碰鼠标",离开鼠标还怎么操作电脑?"让键盘飞起来",键盘怎么会飞呢?你可以保留这些疑问,先跟着我的描述操作一遍,注意操作 ...

  9. 【高效程序员系列】3、别碰鼠标------让键盘飞起来

    一.闪电启动软件的秘密 正如很多魔术,外行人苦思冥想也无法得知其中的奥秘,一旦揭穿则会让人大呼:原来是这样,太简单了.其实这里闪电启动软件业没有什么高深的方法,只不过是调用了运行而已.作为软件开发人员 ...

最新文章

  1. LINE: Large-scale Information Network Embedding
  2. 「Ubuntu」ModuleNotFoundError: No module named ‘softwareproperties‘
  3. 云计算的新界面—Kubernetes容器技术
  4. 将 app 打包成 deb 发布安装
  5. c语言运行后出现xt073,2017年北京工业大学城市交通学院894C语言与数据结构之C程序设计考研强化模拟题...
  6. 演示数据块整理(合并)的效果
  7. 【Linux】Linux测试磁盘 IO 性能
  8. 学习笔记 9.22 -9.29 补
  9. 一张图告诉你,选择企业安全软件真的不难!
  10. rocketmq模块架构图
  11. 宏电DTU配置教程和配置工具
  12. Mac securecrt 破解版安装
  13. 【基于ARM cortex-A53的音视频】
  14. 手机WIFI传文件到局域网服务器,电脑和手机在同一局域网上,怎样无线传输文件? -电脑资料...
  15. 什么软件测试苹果手机循环电池,如何检查iPhone电池的电池循环次数,看完你就明白了...
  16. 容联七陌助力VIPKID,优质客户服务赢得家长青睐
  17. Obsidian+SyncTrayzor打造个人文档云同步平台
  18. Altium Designer新手教程
  19. (转)对话云象CEO黄步添:区块链未来两到三年不会爆发
  20. 2020年美亚杯电子数据取证大赛-个人赛

热门文章

  1. JavaScript 实现汉字按拼音首字母分组拼序
  2. 制造型企业如何上云?
  3. 人工智能如何改变联络中心座席
  4. SpringBoot 接口数据加解密
  5. python 汉字转拼音
  6. 50天计算机考研数学,50天数学冲刺:那些hold住高分的诀窍
  7. java听课心得体会,Java初步学习的一点心得体会
  8. 博才教育三校领导莅临湖南省智慧教育装备展示体验中心参观交流
  9. 从maven私服(nexus)拉取jar文件,解析项目pom依赖信息
  10. 如何盘活新零售5大线上线下交互模式?拥抱用户与收益增长