决定在新的一年折腾一下自己,学习一些新的技能,比如
- 使用
c++
开发一个高性能、低延迟的通信系统
- 更加了解
Linux
操作系统底层涉及
- 熟练使用
nvim
以及学习 lua
语言开发插件
- ……
再比如,本篇博客的主题:入坑 HHKB
无刻键盘,强迫自己在盲打情况下的写代码能力。
其实,之前在办公室看意味年轻的小伙子使用无刻度键盘,就已经产生了极大的好奇心,纳闷为啥可以在如此紧凑的键盘布局中,组合如此之多的快捷键,可以让使用者更加专注敲代码这个事情。当然,后来也是不了了之,因为真正在办公室需要的,其实是解决问题的能力,而不是各种花里胡峭。至于说为什么现在又心血来潮,开始入坑呢?当然,主要还是两个字:折腾。也是希望自己能走出舒适区,通过学习新的知识,不断突破个人技能。
购买
这款键盘 HHKB HYBRID Type-S 无刻静音键盘
,其实是我之前在京东 6.18
活动的时候就已经下手了,只不过后来由于事情太多,没有更多的精力花在折腾上。翻看购买记录,发现当时正处于促销活动期,价格只要 999
,相比于现在的 2499
,实在是太香了。
开发配置与使用
我的键位设置为:
- 开启
2
、3
、4
:
Fn
键位在左边,Win
键位在右边(比较少使用)
Fn-</Enter>
通过在 Linux
配置输入法切换
Ctrl-</Space>
对应 zsh
的命令行自动补全
- 在
nvim
设置 jk
为 Esc
,减少手指移动
xremap
我之前使用 xremap
,把 CapLock
大写键位修改成 Ctr
,方便小拇指触达。而在 HHKB
键盘,Ctrl
天然位于左手小拇指旁边。可以说是十分贴心了。
我这边记录一下 xremap
的配置,方便其他有需求的朋友参考
1
2
3
4
5
6
7
8
9
|
modmap:
- name: Cap as Esc # Optional
application: # Optional
not: [Google-chrome]
# or
# only: [Alacritty.Alacritty]
remap: # Required
CapsLock: Esc
#keymap
|
zsh 命令行历史自动补全
我原先使用方向键来实现 auto-suggestion
的命令行自动补全。而在 HHKB
键盘,方向键的使用是比较复杂的,需要同时按住 Fn
和 ;
,这个操作有点不太顺手,要求双手离开主键位。
于是我想到看看能不能在 zsh
中以快捷键的形式,配置更加顺手的键位来实现自动补全。正好 auto-suggestion
提供了这个配置。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
# 自动建议
# zinit ice lucid wait="0" atload='_zsh_autosuggest_start'
# zinit light zsh-users/zsh-autosuggestions
# zinit wait lucid light-mode for \
# atload"_zsh_autosuggest_start; \
# ZSH_AUTOSUGGEST_STRATEGY=(history completion) \
# ZSH_AUTOSUGGEST_MANUAL_REBIND=0 \
# ZSH_AUTOSUGGEST_HISTORY_IGNORE=' *' \
# bindkey '^p' history-search-backward; \
# bindkey '^o' history-search-forward; \
# bindkey '^n' autosuggest-accept; \
# bindkey '^e' autosuggest-execute; \
# bindkey '^a' autosuggest-toggle; \
# bindkey '^ ' autosuggest-accept" \
# zsh-users/zsh-autosuggestions
# https://github.com/zsh-users/zsh-autosuggestions/issues/642
# For example, this would bind ctrl + space to accept the current suggestion.
zinit wait lucid light-mode for \
atload"_zsh_autosuggest_start; \
ZSH_AUTOSUGGEST_STRATEGY=(history completion) \
ZSH_AUTOSUGGEST_MANUAL_REBIND=0 \
ZSH_AUTOSUGGEST_HISTORY_IGNORE=' *' \
bindkey '^ ' autosuggest-accept;" \
zsh-users/zsh-autosuggestions
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=yellow'
|
tmux