Henry Henry
  • JavaScript
  • TypeScript
  • Vue
  • ElementUI
  • React
  • HTML
  • CSS
  • 技术文档
  • GitHub 技巧
  • Nodejs
  • Chrome
  • VSCode
  • Other
  • Mac
  • Windows
  • Linux
  • Vim
  • VSCode
  • Chrome
  • iTerm
  • Mac
  • Obsidian
  • lazygit
  • Vim 技巧
  • 分类
  • 标签
  • 归档
  • 网站
  • 资源
  • Vue 资源
GitHub (opens new window)

Henry

小学生中的前端大佬
  • JavaScript
  • TypeScript
  • Vue
  • ElementUI
  • React
  • HTML
  • CSS
  • 技术文档
  • GitHub 技巧
  • Nodejs
  • Chrome
  • VSCode
  • Other
  • Mac
  • Windows
  • Linux
  • Vim
  • VSCode
  • Chrome
  • iTerm
  • Mac
  • Obsidian
  • lazygit
  • Vim 技巧
  • 分类
  • 标签
  • 归档
  • 网站
  • 资源
  • Vue 资源
GitHub (opens new window)
  • 说明
  • Vim

    • 环境准备
      • Mac
        • vscode 环境准备:
        • 键位映射准备
      • Windows
        • vscode 环境准备:
        • 键位映射准备 (自己实现)
    • vim normal 模式中文输入法切换问题
    • vim-01-存活下来
    • vim-02-掌握行相关的命令
    • vim-03-掌握 vim 的语法
    • vim-04-更有效率的处理单字符&undo&redo
    • vim-复习 -1
    • vim-05-掌握可视化模式
    • vim-06-文本对象
    • vim-07-在单文件中移动的更快
    • vim-08-掌握搜索命令
    • vim-复习 -2
    • vim-09-更高效的移动 - 想去哪里就去哪里
    • vim-10-认识数字&点的威力
    • vim-11-掌握多文件之间的跳转
    • vim-12-处理包裹字符的符号
    • vim-复习 -3
    • vim-13-替换字符
    • vim-14-掌握悬浮显示&大小写&注释
    • vim-15-掌握窗口的管理
    • vim-16-删除函数
    • vim-复习 -4
    • vim-17-掌握宏
    • vim-18-调用 vscode 的命令
    • vim-复习 -5
  • VSCode

  • Chrome

  • iTerm

  • mac

  • Obsidian

  • lazygit

  • 学习双拼
  • Vim 技巧

  • 键盘侠
  • Vim
Henry
2022-06-01
目录

环境准备

# Mac

# vscode 环境准备:

安装 vscode vim (opens new window) 扩展

mac 系统设置 - 键盘,将 按键重复 调到最快,将 重复前延迟 调到最短

在命令行执行如下代码(开启长按键盘重复输入):

$ defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false              # For VS Code
$ defaults write com.microsoft.VSCodeInsiders ApplePressAndHoldEnabled -bool false      # For VS Code Insider
$ defaults write com.visualstudio.code.oss ApplePressAndHoldEnabled -bool false         # For VS Codium
$ defaults write com.microsoft.VSCodeExploration ApplePressAndHoldEnabled -bool false   # For VS Codium Exploration users
$ defaults delete -g ApplePressAndHoldEnabled                                           # If necessary, reset global default
1
2
3
4
5

最后一个命令如果出现上图报错,不用管,重启 vscode 就好了

# 键位映射准备

推荐使用 karabiner-elements (opens new window) 进行键位映射,Karabiner-Elements | Henry 是对软件的简单介绍

要注意给权限,否则不生效

映射规则如下:

非 HHKB 键盘 ctrl 与 caps lock 互换;在日常中,caps lock 键的作用其实不大,而 ctrl 键的使用频率更高,但他们的位置却相反,所以换过来会更适合我们日常使用

互换以后,我们切换中英文就有点不方便了,可以再添加一个规则:Post caps_lock if left_control is pressed alone.

打开这个网址 (opens new window),点击后面的 Import 来引入该规则

在弹框中选择 打开 Karabiner-Elements.app

点击下图中的 Import 来引入

引入以后点击左下角的 Add rule

找到 Post caps_lock if left_control is pressed alone.,点击后面的 Enable 启用该规则

这样当我们单独按下左 control 后,就是切换中英文,配合别的按键,就是 control 键

然后我们还需要加一个规则:SpaceFN (opens new window),引入步骤同上

意思就是把 space 映射为 fn 键,当我们使用小配列键盘时,总是需要使用 fn 加别的按键实现一些功能,但 fn 的位置却不好,导致我们使用的时候总是很别扭,而 space 我们很容易触碰,但功能却只是加空格或确认输入,有点浪费这大好位置了

如上图所示,SpaceFN: Space+[hjkl] to Left, Down, Up, Right,以后无论在任何地方,只要使用 space+hjkl 即可实现方向键;SpaceFN: Space+[1234567890-=] to F[1-12],使用 space+123... 即可实现 F123... 功能键;简直好用的不得了

这里顺便说一下,崔大视频里推荐的是 control + hjkl,但由于 Windows 的 ctrl 承担了太多的快捷键了,为了双端按键统一,我都改成 space 了,这个看大家的喜好

如果你使用的是 SpaceFN,那么看视频里如果提到 control + hjkl,自动替换到 space +hjkl 即可

# Windows

# vscode 环境准备:

安装 vscode vim (opens new window) 扩展

由于 Windows 默认就支持长按重复输入,故不需要处理

# 键位映射准备 (自己实现)

推荐使用 autohotkey (opens new window) 进行重映射按键 (opens new window)

但这个软件有一定的学习成本,好在有大佬基于这个软件做出来一个可通过界面配置的第三方软件:MyKeymap (opens new window),完全满足我们的需求,就是默认配置与我们有些许不同,需要修改一下:

由于本人是 mac/Windows 双系统开发,mac 使用的键盘是 HHKB,故 Windows 会改键,达到无论在哪个系统,按键习惯都一致的效果,还是那句话:依个人喜好配置

首先是系统按键改键

Mac 左下角的系统按键依次是:control/options/command,而 Windows 的是 ctrl/win/alt

一般的对应关系是 options -> alt, command -> ctrl,所以改键配置为:

LCtrl::LWin ; 左 ctrl 改为 左 win
LWin::LAlt ; 左 win 改为 左 alt
LAlt::LCtrl ; 左 alt 改为 左 ctrl
1
2
3

打开 MyKeymap 的设置界面,将上方的代码输入到下图红框中即可

但这有一个致命缺点:Win + L 或 Ctrl + Alt + Del 这样的特殊热键无法覆盖,要想完全改键,需要修改注册表,推荐使用KeyTweak (opens new window)

关于使用 autohotkey 改键与使用注册表改键的区别看这里 (opens new window)

而我们上面将 Mac 的 caps lock 与 control 互换了,所以 Windows 也需要改变一下

这里我们就不互换按键了,直接修改 caps lock to Ctrl,达到按键习惯与 mac 一致

这个功能 MyKeymap 还无法做到,需要我们新建一个后缀名为 .ahk 的文件,把下方的代码粘贴进去并双击打开即可

; CapsLock 短按切换输入法,先按其他功能键再按 CapsLock 为切换大小写;CapsLock 与其他某个键同按时,CapsLock 映射为 ctrl,如 CapsLock + w => ctrl + w
; https://zhuanlan.zhihu.com/p/389784449
#InstallKeybdHook
; 禁用大写功能,防止误触
SetCapsLockState, alwaysoff
Capslock::
  Send {LControl Down}
  KeyWait, CapsLock
  Send {LControl Up}
  if ( A_PriorKey = "CapsLock" )
  {
    Send {ctrl down}{shift down}
    Send {shift up}{ctrl up}
  }
  ; CapsLock + [ 进入 normal 模式,并切换到英文输入法,系统配置的切换到英文快捷键是 ctrl + 0,具体配置参见下一篇
  if ( A_PriorKey = "[")
  {
    ; Send {Esc}
    Send ^0
    return
  }
return
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

由于 MyKeymap 默认为 caps lock 绑定了很多功能,所以我们需要禁用这些功能;如下图,把和 caps lock 有关的开关均关闭

接下来是 SpaceFN:

我们先在 开关/设置 中打开 空格模式

然后切换到 空格模式,点击需要配置的按键,选择对应的功能即可

如下图,我们将 space + 1 映射为 F1

大家可以点击 推荐点此查看示例 查看如何配置

编辑 (opens new window)
#Vim
上次更新: 5/27/2023, 1:02:05 PM
说明
vim normal 模式中文输入法切换问题

← 说明 vim normal 模式中文输入法切换问题→

最近更新
01
version 1.15
07-01
02
version 1.14
06-27
03
version 1.13
06-27
更多文章>
Theme by Vdoing | Copyright © 2017-2023 HenryTSZ | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式