一、基本鍵位對映
在配置 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)