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 vimYou can customize keybindings in your init.js. For example,
function configureKeyBindings() {
const Vim = inkdrop.packages.getLoadedPackage('vim').mainModule.Vim
// Map keys
Vim.map('jj', '<Esc>', 'insert') // in insert mode
Vim.map('Y', 'y$') // in normal mode
// Unmap keys
Vim.unmap('jj', 'insert')
}
const editor = inkdrop.getActiveEditor()
if (editor) configureKeyBindings()
inkdrop.onEditorLoad(() => {
configureKeyBindings()
})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(() => {
const Vim = inkdrop.packages.getLoadedPackage('vim').mainModule.Vim
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()
})
})
})See the GitHub releases for an overview of what changed in each update.