windows下快捷编辑文本

快捷编辑文本

操作电脑,键鼠占据了我们大部分时间。如果减少手在键盘、鼠标间切换的时间,工作效率会得到提高。尤其是文本编辑,我们需要经常移动光标位置。每一次移动光标动作,目光、手都会发生焦点转移。所以有些人喜欢vim,甚至chrome、firefox浏览器都有相关插件。在Windows下可以安装gvim,但如果用Word、notepad等软件呢?于是我使用Autohotkey软件做了个热键脚本,主要用组合键完成光标、焦点等移动。

Autohotkey是Windows下开源的热键脚本软件,类似国内的按键精灵,类似的软件还有Autoit。按键精灵是闭源的,好像停止更新了,优点是功能也很强大、对国人相对友好。Autohotkey和Autoit都是开源的,功能差不多,Autohotkey在热键功能上相对强些。Autoit我没有详细使用,Autohotkey使用时间也不是很长,有兴趣的可以都学习比较下。

下面是我根据vim和个人习惯写的Autohotkey热键,具体规则如下:

基本功能
按一下空格键:仍旧是空格键
按住空格键时: 按下「h/j/k/l」变为「左/下/上/右」
按住空格键时: 按下「u」变为「PageUp」(上翻页)
按住空格键时: 按下「m」变为「PageDown」(下翻页)
按住空格键时: 按下「i」变为「Home」(行首)
按住空格键时: 按下「,」变为「End」(行尾)

选择内容
按住空格键时:按下「f」+ 「h/j/k/l」 变为 「shift」+「左/下/上/右」

快速移动光标
按住空格键时:按下「d」+ 「h/j/k/l」 变为 「ctrl」+「左/下/上/右」

快速移动光标并选择内容
按住空格键时:按下「g」+ 「h/j/k/l」 变为 「ctrl」+「shift」+「左/下/上/右」

空格加强
按住空格键时:按下「1~9」数字 会产生1~9个空格

编辑加强
按住空格键时:按下「x/c/v」会变为 「Ctrl」+「x/c/v」剪切/复制/粘贴
按住空格键时:按下 a 会变为「Ctrl」+「a」 全选快捷键
按住空格键时:按下 d 相当于删除键(Backspace),按住空格键时:按下 b 相当于删除键(Delete)
按住空格键时:按下 s 会变为「Ctrl」+「s」 保存快捷键
按住空格键时:按下 z 会变为「Ctrl」+「z」 撤销快捷键

切换 Windows 虚拟桌面 
按住空格键时:按下「[/]」会变为 「Ctrl」+「Win」+「左/右」 win10下自带虚拟桌面(win7下我用的virgo)

以下是AHK脚本,保存为file_name.ahk到自己电脑,安装Autohotkey软件后打开这个脚本就可以使用了。如果有不适应的快捷键,可以按照个人喜好修改,注意几个符号表示键位基本没有什么大问题:

ctrl  表示为 ^
alt   表示为 !
shift 表示为 +
win   表示为 #
;  ***  space
space::Send {space}

^space::Send ^{space}
#space::Send #{space}
^#space::Send ^#{space}
!space::Send !{space}
^!space::Send ^!{space}

;  *** space + Num
space & 1::Send {space}
space & 2::Send {space}{space}
space & 3::Send {space}{space}{space}
space & 4::Send {space}{space}{space}{space}
space & 5::Send {space}{space}{space}{space}{space}
space & 6::Send {space}{space}{space}{space}{space}{space}
space & 7::Send {space}{space}{space}{space}{space}{space}{space}
space & 8::Send {space}{space}{space}{space}{space}{space}{space}{space}
space & 9::Send {space}{space}{space}{space}{space}{space}{space}{space}{space}


;  *** space + [] (windows virual desktop switcher) win7下我用的virgo.exe
;  *** win10下自带虚拟桌面 Send ^#{right}    Send ^#{left}
space & [::Send !2
space & ]::Send !1

;  *** space + XX
#if GetKeyState("space", "P")
f & h:: Send +{left}
f & j:: Send +{down}
f & k:: Send +{up}
f & l:: Send +{right}
f & i:: Send ^{home}
f & ,:: Send ^{end}
d & h:: Send ^{left}
d & j:: Send ^{down}
d & k:: Send ^{up}
d & l:: Send ^{right}
;g & k:: Send ^+{up}
g & h:: Send ^+{left}
;g & j:: Send ^+{down}
g & l:: Send ^+{right}

h:: Send {left}
j:: Send {down}
k:: Send {up}
l:: Send {right}
i:: Send {home}
,:: Send {end}
u:: Send {Pgup}
m:: Send {Pgdn}

c:: Send ^c
x:: Send ^x
v:: Send ^v
z:: Send ^z
s:: Send ^s
a:: Send ^a
d:: Send {Backspace}
b:: Send {Delete}

return

你可能感兴趣的:(windows,vim)