改了 pnbf 键位到 hjkl,发现体验挺割裂的。。。

2022-11-24 13:33:40 +08:00
 Dvel

macOS 的 Emacs 那种键位:
上下左右 Ctrl+pnbf ,还有 aehdwuk 之类的。
发现编辑 ~/Library/KeyBindings/DefaultKeyBinding.dict 可以更改。
想了好一阵子弄好了一些键位:

{  
  "^a" = "moveToBeginningOfParagraph:";  // 移动到行首
  "^e" = "moveToEndOfParagraph:";        // 移动到行尾
  "^h" = "moveBackward:";                // 左
  "^l" = "moveForward:";                 // 右
  "^k" = "moveUp:";                      // 上
  "^j" = "moveDown:";                    // 下
  "^o" = "insertNewline:";               // 插入一行
  "^s" = "deleteBackward:";              // 往左删除一个
  "^d" = "deleteForward:";               // 往右删除一个
  "^w" = "deleteWordBackward:";          // 往左删除单词
  "^u" = "deleteToBeginningOfLine:";     // 往左删除到行首
  "^i" = "deleteToEndOfParagraph:";      // 往右删除到行尾
  // 有 Shift 的(产生选区)
  "^A" = "moveToBeginningOfParagraphAndModifySelection:";
  "^E" = "moveToEndOfParagraphAndModifySelection:";
  "^H" = "moveBackwardAndModifySelection:";
  "^L" = "moveForwardAndModifySelection:";
  "^K" = "moveUpAndModifySelection:";
  "^J" = "moveDownAndModifySelection:";
}

更改后又发现,大部分输入框都 OK 了,但很多编辑器都不行。
比如 Firefox 地址栏是我更改后的键位,但到了 V2EX 的编辑框又回到了原始键位。

1301 次点击
所在节点    macOS
9 条回复
lessMonologue
2022-11-24 13:36:26 +08:00
一直用 vim 的人,看到 pnbf 真的很难理解😂
Dvel
2022-11-24 13:55:15 +08:00
@lessMonologue #1 我刚用 Vim ,主要就是 IdeaVim ,插入模式补全还得按 Ctrl + n 来选择。
在 JetBrains 上已经改好了,想着应用到全局。。。但是并不全局,那要不要习惯习惯 pnbf 🤔🤔🤔
yuhangch
2022-11-24 14:05:07 +08:00
可以试试 karabiner

https://www.notion.so/macOS-96862a7815924c659a0fdf82a74e77a1
>部分键位不能用于映射命令. 例如 `Option - u`, `Option - l`.
不同软件对这些快捷键的支持程度不同. 有些支持全部 (例如 Notes), 有些只支持一部分, 有些软件自身的快捷键会覆盖这些快捷键.
jheroy
2022-11-24 15:33:59 +08:00
karabiner-elements, 然后导入 vi-mode 的配置, 保证全局有效.
flyJJ
2022-11-24 16:28:01 +08:00
@lessMonologue 我是从 vim 跳到 emacs 的,好像 pnbf 是有含义的,P 代表 previous ,N 代表 next ,B 代表 backward ,而 F 则代表 forward 。
Dvel
2022-11-24 20:56:00 +08:00
@yuhangch #3 试了一下,这是真·全局,把 Vim 普通模式都覆盖了。
我已经设置了移动到行首行尾:
```
nnoremap <C-h> ^
nnoremap <C-l> $
```
还是被 karabiner 给覆盖成左右了。
DefaultKeyBinding.dict 是不太全局,karabiner 是过分全局 😓😓😓
lessMonologue
2022-11-25 15:12:18 +08:00
@flyJJ 其实是跟 vim 中 pnbf 的含义一样,比如 vim 中也有很多<C-p>,<C-n>配置。不过上下左右我还是喜欢 hjkl
Dvel
2022-11-25 20:41:15 +08:00
@Dvel #6 修正一下说法。
Karabiner 可以设置单独 App ,或排除某 App 。
还支持 CapsLock 映射成 Ctrl ,单独按下是 Esc ,组合按下还是 Ctrl 的这种操作,这对 Vim 也太舒服了。
准备看看文档学习一下。。。
pocarisweat
2022-11-27 00:49:50 +08:00
我就不一样了,用 Vim 在命令模式里老忍不住想按 C-a C-e

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

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

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

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

© 2021 V2EX