请问大家有啥好的 vim 改键意见

2023 年 4 月 11 日
 zeonll

使用 mac 的笔记本键盘,每次要切换模式时,都要张大左手,逆角度去按 esc 键

请问大家有这个烦恼吗? 改成哪个键 /组合键会方便点? 除了 esc 之外还改过其他键吗?

3900 次点击
所在节点    程序员
33 条回复
ruidoBlanco
2023 年 4 月 11 日
CAPSlock 当 escape 使,太多人这么用了。
bjzhush
2023 年 4 月 11 日
这种几百万人讨论过的问题就不要问了,多用 Google
Google:vim esc alternative
juggtt213
2023 年 4 月 11 日
把 capslock 这个风水宝地让出来就可以了,工具可以用 karabiner

之前看到过一个项目还包含一些组合键方案
https://github.com/Vonng/Capslock
DigitalG
2023 年 4 月 11 日
https://github.com/nvim-zh/better-escape.vim
也可以试试组合键(比如 jj 跳出)
uion
2023 年 4 月 11 日
vim.keymap.set("i", "jj", "<Esc>", vim.keybinds.opts)
vim.keymap.set("i", "jk", "<Esc>", vim.keybinds.opts)
roundRobin
2023 年 4 月 11 日
karabiner 长按 caps -> ctrl, 敲击 caps -> esc
yt28
2023 年 4 月 11 日
Yukiteru
2023 年 4 月 11 日
不是可以 command+c 跳出吗?
ProbeWong
2023 年 4 月 11 日
capslock 改成 command ,用 command + [ 回到 normal mode
vaas
2023 年 4 月 11 日
在用 40%键盘之前,我会互换 capslock 和 ctrl 的位置,然后用 ctrl +[返回 normal
用 40%键盘之后,正常键盘 tabs 的位置就是我的 ESC ,按起来很方便,就不再需要用组合键了。
zeonll
2023 年 4 月 11 日
@ruidoBlanco capslock 是 mac 上默认的输入法切换,改了之后怎么进行大小写切换啊
julypanda
2023 年 4 月 11 日
可以 ^C
上周刚遇到 esc 无法退出编辑模式的问题
一开始以为 esc 键坏了
后来发现 是被 siri 占掉了
huajieyu
2023 年 4 月 11 日
我 capslock 没有改成 esc 而是映射为 left-ctrl, left-ctrl 映射成了 capslock ,这个是通过 Karabiner-elements 改的,
Karabiner-elements complex Modifications 增加 left ctrl + hjkl to arrow keys vim
最后 vim 设置 jj 映射为了 esc 和 @xyxalexc 一样
70k
2023 年 4 月 11 日
改建的核心是手指手掌不用大范围大角度移动就能控制所有的键
首先必须要禁用 up down left right 哈哈
CAPSlock 改成 ctrl 是对左手小拇指帮助非常大的
leader key 改成 , 也有人喜欢改成 g 更科学吧
还可以把可以吧 esc 改成 ~ 典型的 hhkb 布局 如果你不用 f1f2f3 的话
比如我的 buffer 就是 leader 1 leader2
leader9 leader0 就是 bnext bprev
格式化代码 leader f
运行当前文件 leader r

觉得很多人都没 get 到 vim 使用的精髓
当然还要配合 tmux 我基本用的默认键位
shinonome
2023 年 4 月 11 日
@zeonll 用 shift 呗,很少会有输入全大写的场景吧
jheroy
2023 年 4 月 11 日
首先 Capslock 改成 ctrl, 然后用 karabiner 设置 ctrl 单独按下为 esc , 组合按键还是为 ctrl
DrakeXiang
2023 年 4 月 12 日
我是用 ctrl+[ 尽量用原生键位
james122333
2023 年 4 月 12 日
这问题在某个"你要开源分享但自己讲的模糊也没分享什么只是显得高大上"的社群遇到过
基本上可以 caps 是 esc 组合键为 ctrl
至于大小写就不是问题 以下脚本可以解决 没在那发过

let g:uppercase_insert = 0

function ToggleUppercaseInsert()
if g:uppercase_insert == 0
let g:uppercase_insert = 1
for l:i in range(97, 122)
let l:c = nr2char(l:i)
exec "imap " . l:c . " " . toupper(l:c)
endfor
else
let g:uppercase_insert = 0
for l:i in range(97, 122)
let l:c = nr2char(l:i)
exec "iunmap " . l:c
endfor
endif
endfunction

imap <C-u> <Esc>:call ToggleUppercaseInsert()<CR>a

插入模式下按 ctrl+u 切换大小写输出 caps 组合键是 ctrl
z1645444
2023 年 4 月 12 日
ctrl + [ 和 ctrl + c 都是 vim 内置的来到 normal mode 的快捷键,我个人认为 ctrl + c 就挺不错了,毕竟 op 也是用的 mac ,command + c 才是复制,并不存在冲突
diagnostics
2023 年 4 月 13 日
用 vim 连 ESC 模拟的是 control + C 都不知道吗?还这么多人让 改 Caps ,半桶水真的误人子弟

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://study.congcong.us/t/931578

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX