/inkdrop-vim

Provides Vim modal control for Inkdrop, blending the best of Vim and Inkdrop

Primary LanguageJavaScriptMIT LicenseMIT

vim keybindings plugin for Inkdrop

Provides Vim modal control for Inkdrop, blending the best of Vim and Inkdrop.

Features

  • 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

Install

ipm install vim

Key customizations

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:

Preferences

Ex Commands

:w, :write

Saves current note immediately to the disk.

:next, :n

Opens next note on the note list.

:prev

Opens previous note on the note list.

:preview, :p

Toggles HMTL preview.

:side-by-side, :side

Toggles side-by-side mode.

Define custom Ex commands

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()
      })
  })
})

Options

options

Seamlessly jump to note title

Whether moving focus seamlessly from the editor to the note title bar by vim:move-up command

Changelog

See the GitHub releases for an overview of what changed in each update. See CHANGELOG.md for older releases.