svim是一个想让用户在windows上的每一个文本编辑区中都能用神器vi进行文字编辑的桌面软件,svim在windows的任意编辑区中模拟vi/vim功能,提升编辑效率。sVim 是继承 Vim 快捷键的 Safari 插件,可以为你提供利落的全键盘网页浏览体验。
功能介绍
只要有文字输入的地方,就有svim的用武之地。
svim支持大部分vi/vim编辑操作
svim通过检测和管理键盘/鼠标事件,实现了全系统范围的vi/vim行为模拟。
svim支持大部分vi/vim操作,支持normal/visual/insert三种模式。
normal模式
在启动svim模式后,svim所在模式即为normal模式。该模式下我们可以通过由字符或字符组合命令实现光标移动或者编辑操作,或者进入其它模式。
insert模式
同样,按下 i/a 键进入插入模式,可以在当前模式插入字符,插入模式下,按esc进入normal模式
visual模式
在normal模式下,按 v 即可进入visual模式,然后移动光标选择范围。visual模式下,按 v 或者 esc 退出到 normal 模式。
对中文输入的特别支持
相信用过vi/vim来编辑中文的同学都曾遇到痛点:
中文输入法状态下,按键会先被输入法捕获,于是为了输入编辑命令和汉字,我们不得不频繁切换输入法的中英文状态。
svim通过直接处理键盘事件,优先级高于输入法,因此normal模式下,命令直接被svim处理,输入法不需要再反复切换中英文状态。
操作介绍
svim/vi/vim常用操作,入门介绍
同vi/vim一样,在normal模式下,用户使用h/j/k/l来移动光标位置
k(上)
h(左) l(右)
j(下)
并同时支持以下移动方式
w 下移一个单词
b 前移一个单词
e 移动到单词尾部(大部分环境同w)
0 移动到行首
$ 移动到行尾
{ 跳到段首
} 跳到段尾
常用命令
i 当前位置插入
I 在行首插入
a 同 i ,当前位置插入
A 在行末插入
o 往下插入一行
O 往上插入一行
x 删除当前字符
d 删除visual模式中选择的片段
d w 删除当前单词
d d 删除当前行
s 删除当前字符,并进入insert模式
c 同 s,删除当前字符,并进入insert模式
c w 删除当前档次,并进入insert模式
c b 删除当当前词头部,并进入insert模式
c c 删除当前行,并进入insert模式
y 拷贝 visual模式下选中部分
y w 拷贝当前单词
y b 拷贝前一个单词次
y y 拷贝当前行
p 粘贴剪切板内容(如果剪切内容是整行,则在下一行开始粘贴)
P 粘贴接切板内容(如果剪切内容是整行,则在上一行开始粘贴)
u 撤销上一步操作
U 重做上一步撤销的操作
J 将当前行与下一行合并
g g 跳到当前编辑区最前方
G 跳转(前导数字N,则跳到第N行,否则跳到编辑区末尾)
svim模式开启/关闭
在svim面板上,用鼠标单击 v 键 可以关闭或则开启svim模式。
svim模式也可以快速开启/关闭,快捷热键 CapsLock+v (注意CapsLock如果不特殊设置,被映射为下文介绍的GeeKey,Shift+CapsLock执行大小写转换)
svim的特殊设定
在normal状态下,按下esc键会向系统发送esc,而visual和insert模式下,esc会被拦截,svim状态返回normal状态。
基于windows下普遍的输入特性,append(a) 命令不在表示在当前字符之后插入 而是和 insert(i) 命令一样都是在当前位置插入。
为了大部分输入环境的行为一致,svim不支持r/R操作。
GEEKEY 热键系统
GeeKey热键系统提供了一套额外的按键映射,在svim模式之框架之外的补充了一套无模式的快捷编辑方案。
GeeKey 方案同样秉承了vi/vim的基本精神:
让手指尽量不离开主键盘区域
为达到这个目的,在不影响按键原有功能和布局的原则下,GeeKey方案以使用频率相对低的CapsLock作为基础热键。
如图所示,通过热键,最常用编辑操作(上下左右,Home/End,PageUp/PageDown)都不用移动手掌,只需要CapsLock+相应按键即可完成。(为行文指称方便,下文统一称映射后的CapsLock为GeeKey)
GeeKey 与 Esc, ~ , Tab, Shift, Ctrl, Win Alt 的按键位置可以通过svim面板进行交换(但需要以管理员模式运行程序才能操作,重启生效)。其余与GeeKey连用的映射则可以随时通过相应方式方便地进行修改。
GeeKey方案热键组合的四种类型
I. 快捷编辑键
点击相应按键定义区,然后选择热键功能, 即可完成定义.
触发编辑键 X:GeeKey+X
II. 输入快捷文本
点击相应按键定义区, 在弹出的文本框中输入文字, 然后点击确定即可定义文本按键内容
触发文本键 X:GeeKey+X(或GeeKey+Space X 触发 X 的 空格绑定)
III. 操作录制
录制操作序列到按键X: Ctrl+GeeKey+X (或者Ctrl+GeeKey+Space+X)开始录制; Ctrl+GeeKey 结束录制;
在弹出对话框中, 可以修改操作序列和重放速率(当重放速率为0时, 表示无间隔重放操作序列)。修改完成后, 点击确定保存录制.
触发操作键 X:GeeKey+X(或者GeeKey+Space X 触发空格绑定)
IV. 快速启动程序
操作和快捷文本类似,点击相应按键的定义区(如图中F2键),然后选择或输入程序路径,最后点击确认。
触发程序键 X:GeeKey+X(或 GeeKey+Space X 触发空格绑定)
批量操作/自动补全
更新说明
修复鼠标硬件错误导致的错误双击
svim窗口 选项>配置 中可以设置 修复 鼠标双击硬件错误(因为作者鼠标恰好坏了)
当勾选此项时,鼠标左键抬起操作引发的额外左键按下抬起操作会被忽略。
取色器
按住GeeKey,然后鼠标点击屏幕任意一点位置,鼠标单击事件会被忽略,但是该像素点的颜色信息会打印到日志窗口中。