Provides Vim modal control for Inkdrop, blending the best of Vim and Inkdrop.
- All common motions and operators, including text objects
- Operator motion orthogonality
- Visual mode - characterwise, linewise, blockwise
- Incremental highlighted search (
/
,?
,#
,*
,g#
,g*
) - Search/replace with confirm (:substitute, :%s)
- Search history
- Sort (
:sort
) - Marks (
,
) - Cross-buffer yank/paste
- Select next/prev item in note list bar (
j
/k
) - Scroll markdown preview pane
ipm install vim
Default vim keymaps are defined here and you can override them in your keymap.cson
file.
CSS selectors for each mode:
- Not insert mode:
.CodeMirror.vim-mode:not(.insert-mode):not(.key-buffering) textarea
- Normal mode:
.CodeMirror.vim-mode.normal-mode:not(.key-buffering) textarea
- Insert mode:
.CodeMirror.vim-mode.insert-mode textarea
- Replace mode:
.CodeMirror.vim-mode.replace-mode textarea
- Visual mode:
.CodeMirror.vim-mode.visual-mode:not(.key-buffering) textarea
You can check current keybindings on the Keybindings pane on preferences window:
Saves current note immediately to the disk.
Opens next note on the note list.
Opens previous note on the note list.
Toggles HMTL preview.
Toggles side-by-side mode.
You can extend Ex commands by writing init.js.
The following example defines :find
command:
inkdrop.onEditorLoad(() => {
var CodeMirror = require('codemirror')
CodeMirror.Vim.defineEx('find', 'f', (cm, event) => {
inkdrop.commands.dispatch(document.body, 'core:find-global')
if (event.argString)
inkdrop.commands.dispatch(document.body, 'core:search-notes', {
keyword: event.argString.trim()
})
})
})
Whether moving focus seamlessly from the editor to the note title bar by vim:move-up
command
See the GitHub releases for an overview of what changed in each update. See CHANGELOG.md for older releases.