20 条回复  ·  361 次点击
marding 小成 2023-10-13 16:50:31
@FaiChou 我有个方法是把 Capslock 键映射成 Esc 键, 这样子退出 insert mode 就很方便了. 这样子先退出 insert mode 然后按 a, 还算方便吧自己用着
xloong 小成 2023-10-13 17:23:01
@donatello #11 请问下是怎么区分的 或者说是用什么工具实现的
churchill 小成 2023-10-13 17:31:00
tabout flash 满足我几乎所有的移动需求
z1645444 小成 2023-10-13 17:41:08
我一直是回到 Normal mode 再 a ,Vim 有默认的回到 Normal mode 的组合键,我一直使用的是 <C-c>,另一个是 <C-[>,右手小拇指肌无力所以就早期开始用 Vim 的时候就没准备习惯使用后者
ixx 小成 2023-10-13 17:44:18
你需要一个可以自己改键的键盘然后就可以用自定义的 fn+h 向前一个字符了
yuancoder 小成 2023-10-13 21:19:49
自己映射一下<c-f>
gca 小成 2023-10-14 00:15:31
ctrl + O, A
ricebna 小成 2023-10-14 09:27:02
我用 Mac, 安装 Karabiner 后, 设定空格模式. 即按住空格后, 自定义各种键组合.

例如:
空格 + sdfe = 方向键;
空格 + jkli = shift + 方向键;
在编程这件事上, 方向键与 shift+方向键的使用频率, 一个几乎是 100%, 一个是 99%. 很有必要作为最基础最好用的快捷键.

另外的常用键组合如下:
空格 + w = page up
空格 + r = page down
空格 + a = 移到行首 (Mac 上各种软件, 打字编辑都有效)
空格 + g = 移到行尾
空格 + u = Add Selection for Next Occurrence (编程高频)
空格 + u = Add Selection for Next Occurrence (编程高频)
空格 + b = preview tab (Mac 上各种软件都遵循这个规范, 如浏览器左边标签页, vscode 左边标签页)
空格 + n = next tab

其他根据个人需要自行映射, 如我把切换最常用软件分别映射为:
空格 + t = Chrome
空格 + y = Idea
空格 + o = 微信
空格 + q = 飞书
空格 + v = iTerm2

我觉得 shift + 顶部数字键组合为符号键还是有点麻烦, 所以直接把顶部从最左边的 "`" 到 "+" 再到 "?" 全部映射为空格模式了.
为什么这样做? 因为如果我们在输入时手掌始终不离开当前键区的话, 效率最高的, 也少很多输入打断.
如果使用 shift 甚至是 command, 都得离开输入键区, 空格 + 各种键组合可以始终保持手掌键区不变.
相比之下, 我认为 vim 的模式转换就弱爆了, 我按住空格就是操作模式, 取消空格就是输入模式, 哪有那么麻烦.
如果真的要输入空格呢? 按一下空格就是真的空格, 担心误触, 不会, 本人已经实践 4 年, 这套模式已验证十分可靠.

Karabiner 非常强大, 我不知道 Windows 下有没有类似强大工具.
Karabiner 不仅能做键映射, 还能直接执行命令行, 能判断当前所处软件启用不同策略, 能检测当前硬件是键盘还是笔记本键盘, 还有鼠标相关控制.
aliezleft 小成 2023-10-14 13:34:30
@xloong 可以参考这个 https://orxing.top/post/d3c3145e.html#%E5%89%8D%E8%A8%80
bjzhush 小成 2023-10-14 16:20:35
翻了下我十年前的配置
" move cursor in insert mode
    inoremap <C-J> <C-O>j
    inoremap <C-K> <C-O>k
    inoremap <C-H> <C-O>h
    inoremap <C-L> <C-O>l
不止前后字符,hjkl 在 insert mode 都可以按住 ctrl 键使用
不过我印象中我很少在 insert 模式移动光标,移动的话,习惯了先 esc 返回 normal mode ,各模式干各自的事
返回顶部