Fixed
- Space-as-leader key mappings not matching in codemirror-vim —
Vim.map(' j', 'gj')andVim.mapCommand(' w', ...)stored literal space in the keymap (' j'), butvimKeyFromEventproduces'<Space>'on key press. ThecommandMatchstring comparison never found a match, so leader-prefixed sequences silently failed. The fork now normalizes literal spaces to<Space>in_mapCommand(bothkeysandtoKeys),unmap(), andremoveMapCommand(). Existing angle-bracket groups (<C-Space>,<S-Space>) are preserved. This is the root-cause fix for the space-as-leader issue — the 0.21.0 plugin-side fix (unmapDefaultBindingcentralization) was necessary but not sufficient without this keymap normalization. (#21) - Vimrc map commands registered twice —
nmap,nnoremap, and other map commands in.obsidian.vimrcwere processed once correctly viadeferredMaps(the plugin's own parser) and then a second time viavim.handleEx()(codemirror-vim's ex command parser). ThehandleExpath splits arguments on whitespace, sonmap <leader>j gjwith space as leader becamenmap j gj— a barej → gjmapping without the leader prefix. This double-registration was masked for non-space leaders (comma, backslash) because whitespace splitting doesn't affect those characters. Addedcontinueafter thedeferredMaps.push()block, matching the pattern used by all other handled command types (let,source,set). (#21)
Documentation
DIFFERENCES.md(fork): added "Key string normalization formap/mapCommand" section documentingnormalizeKeyStringand the_mapCommand/unmap/removeMapCommandnormalization pointsKNOWN_LIMITATIONS.md: updated "EasyMotion leader key conflict" fixed section with fork-side key normalization details
Full Changelog: 0.21.0...0.21.1