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

2023-04-11 14:30:16 +08:00
 zeonll

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

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

2519 次点击
所在节点    程序员
33 条回复
ruidoBlanco
2023-04-11 14:42:30 +08:00
CAPSlock 当 escape 使,太多人这么用了。
bjzhush
2023-04-11 14:47:02 +08:00
这种几百万人讨论过的问题就不要问了,多用 Google
Google:vim esc alternative
juggtt213
2023-04-11 14:52:04 +08:00
把 capslock 这个风水宝地让出来就可以了,工具可以用 karabiner

之前看到过一个项目还包含一些组合键方案
https://github.com/Vonng/Capslock
DigitalG
2023-04-11 14:53:34 +08:00
https://github.com/nvim-zh/better-escape.vim
也可以试试组合键(比如 jj 跳出)
uion
2023-04-11 14:53:43 +08:00
vim.keymap.set("i", "jj", "<Esc>", vim.keybinds.opts)
vim.keymap.set("i", "jk", "<Esc>", vim.keybinds.opts)
roundRobin
2023-04-11 14:54:04 +08:00
karabiner 长按 caps -> ctrl, 敲击 caps -> esc
jun771480011
2023-04-11 15:03:38 +08:00
Yukiteru
2023-04-11 15:04:43 +08:00
不是可以 command+c 跳出吗?
ProbeWong
2023-04-11 15:15:36 +08:00
capslock 改成 command ,用 command + [ 回到 normal mode
dustynight
2023-04-11 15:27:28 +08:00
在用 40%键盘之前,我会互换 capslock 和 ctrl 的位置,然后用 ctrl +[返回 normal
用 40%键盘之后,正常键盘 tabs 的位置就是我的 ESC ,按起来很方便,就不再需要用组合键了。
zeonll
2023-04-11 15:28:44 +08:00
@ruidoBlanco capslock 是 mac 上默认的输入法切换,改了之后怎么进行大小写切换啊
julypanda
2023-04-11 15:29:25 +08:00
可以 ^C
上周刚遇到 esc 无法退出编辑模式的问题
一开始以为 esc 键坏了
后来发现 是被 siri 占掉了
huajieyu
2023-04-11 15:37:04 +08:00
我 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-04-11 16:29:03 +08:00
改建的核心是手指手掌不用大范围大角度移动就能控制所有的键
首先必须要禁用 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-04-11 17:00:00 +08:00
@zeonll 用 shift 呗,很少会有输入全大写的场景吧
jheroy
2023-04-11 17:04:50 +08:00
首先 Capslock 改成 ctrl, 然后用 karabiner 设置 ctrl 单独按下为 esc , 组合按键还是为 ctrl
DrakeXiang
2023-04-12 00:34:09 +08:00
我是用 ctrl+[ 尽量用原生键位
james122333
2023-04-12 01:04:55 +08:00
这问题在某个"你要开源分享但自己讲的模糊也没分享什么只是显得高大上"的社群遇到过
基本上可以 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-04-12 09:43:42 +08:00
ctrl + [ 和 ctrl + c 都是 vim 内置的来到 normal mode 的快捷键,我个人认为 ctrl + c 就挺不错了,毕竟 op 也是用的 mac ,command + c 才是复制,并不存在冲突
diagnostics
2023-04-13 08:41:57 +08:00
用 vim 连 ESC 模拟的是 control + C 都不知道吗?还这么多人让 改 Caps ,半桶水真的误人子弟

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

https://www.v2ex.com/t/931578

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

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

© 2021 V2EX