svim是一个想让用户在windows上的每一个文本编辑区中都能用神器vi进行文字编辑的桌面软件,svim在windows的任意编辑区中模拟vi/vim功能,提升编辑效率。
功能介绍
只要有文字输入的地方,就有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操作。
更新日志
修复寄存器bug
增加正则替换功能
增加命令模式中文支持。