三、SpaceVim配置
一、基本键位映射
在配置 vim 的快捷键时,需要掌握基本键位的描述符。除了基本的 <CR>, <ESC>, <SPACE>, <C-..> 外,补充下列常用映射表:
<k0> - <k9>小键盘数字 0-9<BS>退格键backspace<S-...>代表shift<M-...>或<A-...>Windows 和 Linux 下代表alt/meta键,在 macOS 上是option键<D-...>macOS 的command键<Insert>代表insert按键<Del>代表delete按键
二、导入 vim script 设置
比如设置 vim 本身快捷键等操作,不能在 [option] 中直接设置,需要间接完成。在 .SpaceVim.d/init.toml 中:
[options]
bootstrap_before = "myspacevim#before"
bootstrap_after = "myspacevim#after"
对应地,在 .SpaceVim.d/autoload/myspacevim.vim中写入:
function! myspacevim#before() abort
let g:neomake_enabled_c_makers = ['clang']
nnoremap jk <esc>
endf
function! myspacevim#after() abort
endf
建议把需要添加的内容放在 #after 中,如果放在 #before 中会导致打开时使用的卡顿。
三、读取 cmake_command.json
spacevim 不能自动读取 cmake 生成的 json 文件,导致代码中头文件等显示报错。自己推测可能的问题是:
clang不能读取此json文件;spacevim中checker模块使用neomake或ale,可能是这两个检查器的问题。
经过排查,确定是 neomake 的问题。之前有过 ale 的配置经验,所以先行切换为 ale 进行设置。切换为 ale 后(在 [options] 中添加 lint_engine = "ale" ),头文件包含问题解决。
暂时没有找到相关设置 neomake 的方法 ,不过在这里提供一种思路,把生成的 cmake_command.json 手动写入 .clang 文件中,这样 neomake 就能读取此文件了。可以使用 pkg-config 的方式,这样就避免了手动添加的麻烦。下面这是一个 .clang 文件的例子。
-std=c++11
$(pkg-config --cflags --libs opencv4)

浙公网安备 33010602011771号