新年伊始,
在因为手术和家里的事情荒废了差不多一年后,
开始准备尝试写点东西了.
首先我对vim进行了一些调整和优化
为了避免之前笔记丢失的情况,直接记在blog里方便查找
输入
首先是在mac上的输入的问题
vim中输入法的切换
因为vim拥有多种模式,而在normal和insert模式下切换的时候,
normal模式并不会自动改变输入法,导致移动的键盘输入也会被识别为拼音,
在这种情况下,如果使用中文写作,就会需要频繁的切换输入法,
每次进入和退出insert模式都需要敲一次Ctrl+Space,
这个问题其实我以前在Linux下面是尝试用fcitx-switch解决的,
不过在mac下一直没有解决.
这次终于找到了一个好的解决办法.
参考 macOS下vim 中文输入法切换问题和两种解决方案
尝试后两种方式都可以使用,
不过第一种方法我使用的repo是 'rlue/vim-barbaric'
vimrc的配置里面需要加上
1 | let g:barbaric_ime = 'macos' |
不过在使用<esc>
来退出输入模式的时候,需要连按两次,因此我使用<ctrl-c>
来进行退出
尝试了一会后我使用的是vim-barbaric加xkbswitch的方式
另外我将输入法里中文的标点换成了半角符号,
这样虽然不是很好看,但是保持了中英文混合输入时标点的一致,
不过mac的简体输入法依然会将 `
转换为·
1 | 注: 这段文字的markdown代码要使用<code>`</code>才能正确显示` |
HHKB中Fn的键位
我使用的键盘是hhkb,有一个问题就是Fn
键位离有点远,但是在vim中我设置的键位又经常用到F1~F5
这些快捷键,如果不改键的话,每次都要去最右边点击
而hhkb默认的跳线只能将左边的command
和Fn
切换,所以我使用了Karabiner进行改键,
在simple modification里面直接将right_command
替换为Fn
即可

另外不知道是不是跳线的问题还是默认键盘键位的设置问题,我需要将left_control
和capslock
互换,才能在HHKB上正常切换输入法.
终端
vim 8.1增加了终端,方便运行终端命令
我还写了一个方便使用的插件,simpleterm,在执行简单的终端命令时很好用
终端的色彩问题
不过vim内置的终端有个问题就是默认的颜色很难识别,特别是dark blue
,
因此我们需要修改下默认颜色,
这里我使用了iTerm里的Pastel的色彩配置,
不想动手一个个从iTerm里复制的话可以用如下代码,
直接放到vimrc里即可
1 | let g:terminal_ansi_colors = |

终端我使用的是zsh
,theme 是 sobolevn/sobole-zsh-theme
vim的首页
一直以来,进入vim都需要我们主动打开文件或者打开一个session
(session一般翻译成会话,我觉得译的有点问题,但也没有找到更好的翻译,
可以看成是编辑器里多个文档的编辑进度和状态),
这次我终于想起是不是像vscode一样,有类似浏览器首页的东西方便使用,
找到了这个 vim-startify,用起来还不错,
不过session我用的还是我以前使用的tpope/vim-obsession,
因为都是使用的vim的session格式,这个插件可以正常读取,所以可以直接使用
注:我的session配置如下
1 | Plug 'tpope/vim-obsession' |
简而言之,:Save
保存当前session,:Load
加载session
文件的查找
一直以来我使用Ctrl-P
来查找文件,rking/ag.vim
来查找文件内的内容,
不过ag其实并不好用,只不过比更不好用的grep强而已fzf
我安装了但是没怎么用过,不过因为我认为他是查找文件名的,直到今天我看到一篇文章介绍fzf的,才发现fzf的好用
Improving Vim Workflow With fzf
也就是fzf的作者开发的fzf.vim
其实已经支持了ag/rg的功能,并且支持实时预览,
实时预览还使用了vim8.2的popup window的新特性,
作为一个vim插件作者和重度使用者,这个新特性我期待了十年以上,
看到的时候还是要惊叹,真是太酷了!

使用也很简单,用:Ag
就可以调出这个窗口(注意要删掉rking/ag.vim
)
配置也很简单,我用<Ctrl-k>
来唤出实时查找的窗口:
1 | Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } |
vimrc的分享
我的vimrc
不过有些地方还是很久以前写的
另外这个配置实际上是一个插件的写法,还是写的太过复杂了,
需要慢慢将它简化了再做分享