{"id":22555879,"url":"https://github.com/inkdropapp/inkdrop-vim","last_synced_at":"2026-03-10T04:10:16.246Z","repository":{"id":40354992,"uuid":"105430360","full_name":"inkdropapp/inkdrop-vim","owner":"inkdropapp","description":"Provides Vim modal control for Inkdrop, blending the best of Vim and Inkdrop","archived":false,"fork":false,"pushed_at":"2026-03-03T05:58:38.000Z","size":2414,"stargazers_count":105,"open_issues_count":4,"forks_count":10,"subscribers_count":3,"default_branch":"master","last_synced_at":"2026-03-03T09:29:11.764Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://www.inkdrop.app/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/inkdropapp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-10-01T09:00:01.000Z","updated_at":"2026-03-03T05:58:43.000Z","dependencies_parsed_at":"2025-06-14T12:03:53.415Z","dependency_job_id":"e1cbc9ff-a8e7-46f3-97a7-c2a2a957ee82","html_url":"https://github.com/inkdropapp/inkdrop-vim","commit_stats":null,"previous_names":[],"tags_count":41,"template":false,"template_full_name":null,"purl":"pkg:github/inkdropapp/inkdrop-vim","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inkdropapp%2Finkdrop-vim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inkdropapp%2Finkdrop-vim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inkdropapp%2Finkdrop-vim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inkdropapp%2Finkdrop-vim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/inkdropapp","download_url":"https://codeload.github.com/inkdropapp/inkdrop-vim/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inkdropapp%2Finkdrop-vim/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30324186,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T01:36:58.598Z","status":"online","status_checked_at":"2026-03-10T02:00:06.579Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-07T19:09:15.057Z","updated_at":"2026-03-10T04:10:16.238Z","avatar_url":"https://github.com/inkdropapp.png","language":"JavaScript","funding_links":[],"categories":["Text Editors"],"sub_categories":[],"readme":"# vim keybindings plugin for Inkdrop\n\nProvides Vim modal control for Inkdrop, blending the best of Vim and Inkdrop.\n\n## Features\n\n- All common motions and operators, including text objects\n- Operator motion orthogonality\n- Visual mode - characterwise, linewise, blockwise\n- Incremental highlighted search (`/`, `?`, `#`, `*`, `g#`, `g*`)\n- Search/replace with confirm (:substitute, :%s)\n- Search history\n- Sort (`:sort`)\n- Marks (`,`)\n- Cross-buffer yank/paste\n- Select next/prev item in note list bar (`j` / `k`)\n- Scroll markdown preview pane\n\n## Install\n\n```sh\nipm install vim\n```\n\n## Key customizations\n\nYou can customize keybindings in your [init.js](https://developers.inkdrop.app/guides/the-init-file).\nFor example,\n\n```js\nfunction configureKeyBindings() {\n  const Vim = inkdrop.packages.getLoadedPackage('vim').mainModule.Vim\n\n  // Map keys\n  Vim.map('jj', '\u003cEsc\u003e', 'insert') // in insert mode\n  Vim.map('Y', 'y$') // in normal mode\n  // Unmap keys\n  Vim.unmap('jj', 'insert')\n}\n\nconst editor = inkdrop.getActiveEditor()\nif (editor) configureKeyBindings()\ninkdrop.onEditorLoad(() =\u003e {\n  configureKeyBindings()\n})\n```\n\n## Options\n\n### Use system clipboard\n\nBy default, vim yank/delete operations sync with the system clipboard (like `clipboard=unnamed` in vim). You can disable this in Preferences \u003e Plugins \u003e vim so that vim operations use an internal register only, matching standard vim behavior. Cmd+C / Cmd+V (or Ctrl+C / Ctrl+V) will still use the system clipboard as usual.\n\n### Relative line numbers\n\nWhen enabled in Preferences \u003e Plugins \u003e vim, the editor shows relative line numbers. The current line displays its absolute line number, while all other lines show their distance from the cursor. This is equivalent to `set relativenumber` in vim.\n\n## Ex Commands\n\n### `:w`, `:write`\n\nSaves current note immediately to the disk.\n\n### `:next`, `:n`\n\nOpens next note on the note list.\n\n### `:prev`\n\nOpens previous note on the note list.\n\n### `:preview`, `:p`\n\nToggles HMTL preview.\n\n### `:side-by-side`, `:side`\n\nToggles side-by-side mode.\n\n### Define custom Ex commands\n\nYou can extend Ex commands by writing [init.js](https://docs.inkdrop.app/manual/the-init-file).\nThe following example defines `:find` command:\n\n```js\ninkdrop.onEditorLoad(() =\u003e {\n  const Vim = inkdrop.packages.getLoadedPackage('vim').mainModule.Vim\n  Vim.defineEx('find', 'f', (cm, event) =\u003e {\n    inkdrop.commands.dispatch(document.body, 'core:find-global')\n    if (event.argString)\n      inkdrop.commands.dispatch(document.body, 'core:search-notes', {\n        keyword: event.argString.trim()\n      })\n  })\n})\n```\n\n## Changelog\n\nSee the [GitHub releases](https://github.com/inkdropapp/inkdrop-vim/releases) for an overview of what changed in each update.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finkdropapp%2Finkdrop-vim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finkdropapp%2Finkdrop-vim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finkdropapp%2Finkdrop-vim/lists"}