各位 vimer ,你们在 insert mode 输入时候是怎么快速前进一个字符的?
如果退出 insert mode ,按 A 可以做到,但感觉好麻烦。
如果是在别的地方,使用 Emacs 的快捷键 ctrl+e 可以到末尾,或者 ctrl+f 前进一个字符都是很方便的。
还是映射成 Emacs 下的几个快捷键比较方便:
local map = vim.keymap.set
map("i", "<C-f>", "<right>", { desc = "go forward" })
map("i", "<C-b>", "<left>", { desc = "go backward" })
map("i", "<C-n>", "<down>", { desc = "go down a line" })
map("i", "<C-p>", "<up>", { desc = "go up a line" })
1
jinzc 2023-10-13 16:13:42 +08:00
你使用 1 个月后,形成手指肌肉记忆,就不会有这个疑问了。
|
2
iSecret 2023-10-13 16:15:45 +08:00 1
退出 insert mode 然后按 w 前进一个单词,按 b 后退一个单词,按 0 到行首,按 $ 到行尾,然后再按 i 或者 a 进入 insert mode 呗。
|
3
Masoud2023 2023-10-13 16:19:48 +08:00
imap 绑定一个你觉得舒服的按键
|
4
FaiChou OP @iSecret 这些我都知道,但感觉退出 insert mode 感觉还是慢了一点,虽然很多人喜欢用 jj 或者 jk 退出 insert mode 。
|
5
alfa 2023-10-13 16:20:32 +08:00
如果是 jb 家的,我的设置
imap <C-p> <Up> imap <C-n> <Down> imap <C-b> <Left> imap <C-f> <Right> imap <C-e> <End> imap <C-a> <Esc>^i imap <C-;> <End>; |
6
marcong95 2023-10-13 16:22:44 +08:00
直接硬件外挂,自定义键位 CapsLock ( Anne Pro 的 Magic Fn )+WASD (逃)
|
7
Rooger 2023-10-13 16:24:27 +08:00 1
Ctrl+F/B ,如果你这两个快捷键没有使用的情况下
在 Vim 中添加以下配置 inoremap <C-F> <left> inoremap <C-B> <right> Mac 下主流编辑器几乎都是支持 Ctrl+F/B 前进和后退的,Ctrl+P 前一行,Ctrl+N 后一行。 VS Code 以及 Zed Vim 插件下,插入模式可以直接使用 Ctrl+F/B 在 Windows 上 xShell 在输入命令上支持 Ctrl+F/B 前进和后退 |
8
chippai 2023-10-13 16:25:16 +08:00
我也是 jb idea vim 党
文本是用的 ctrl + hljk ;然后再改 ctrl + pn ,作为弹窗的上下切换;方便不少 |
9
knightdf 2023-10-13 16:27:58 +08:00
c-o+l
|
11
donatello 2023-10-13 16:41:22 +08:00
caps 映射 单独按 esc,和其他按键一起按是 ctrl
|
12
marding 2023-10-13 16:50:31 +08:00
@FaiChou 我有个方法是把 Capslock 键映射成 Esc 键, 这样子退出 insert mode 就很方便了. 这样子先退出 insert mode 然后按 a, 还算方便吧自己用着
|
14
churchill 2023-10-13 17:31:00 +08:00
tabout flash 满足我几乎所有的移动需求
|
15
z1645444 2023-10-13 17:41:08 +08:00
我一直是回到 Normal mode 再 a ,Vim 有默认的回到 Normal mode 的组合键,我一直使用的是 <C-c>,另一个是 <C-[>,右手小拇指肌无力所以就早期开始用 Vim 的时候就没准备习惯使用后者
|
16
ixx 2023-10-13 17:44:18 +08:00
你需要一个可以自己改键的键盘然后就可以用自定义的 fn+h 向前一个字符了
|
17
yuancoder 2023-10-13 21:19:49 +08:00
自己映射一下<c-f>
|
18
gca 2023-10-14 00:15:31 +08:00
ctrl + O, A
|
19
ricebna 2023-10-14 09:27:02 +08:00
我用 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 不仅能做键映射, 还能直接执行命令行, 能判断当前所处软件启用不同策略, 能检测当前硬件是键盘还是笔记本键盘, 还有鼠标相关控制. |
20
aliezleft 2023-10-14 13:34:30 +08:00 1
|
21
bjzhush 2023-10-14 16:20:35 +08:00
翻了下我十年前的配置
" 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 ,各模式干各自的事 |
23
iceAD 2023-11-03 09:26:29 +08:00
我是用的 keychron 的键盘,因为支持 via ,直接在 fn1 区的 hjkl 改成了对应的方向键,无缝衔接 vim 的移动,在插入模式下按 fn1+对应方向就行。
|