{"id":49628191,"url":"https://github.com/sduras/duras_bridge","last_synced_at":"2026-05-07T03:01:51.745Z","repository":{"id":354352704,"uuid":"1217144041","full_name":"sduras/duras_bridge","owner":"sduras","description":"Vim / Neovim integration for duras","archived":false,"fork":false,"pushed_at":"2026-04-28T06:53:55.000Z","size":13,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-04-28T08:30:48.398Z","etag":null,"topics":["duras","minimalist","neovim-plugin","note-keeping","note-taking","plain-text","vim-plugin"],"latest_commit_sha":null,"homepage":"https://codeberg.org/duras/duras_bridge","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sduras.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2026-04-21T15:33:08.000Z","updated_at":"2026-04-28T06:53:58.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/sduras/duras_bridge","commit_stats":null,"previous_names":["sduras/duras_bridge"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/sduras/duras_bridge","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sduras%2Fduras_bridge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sduras%2Fduras_bridge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sduras%2Fduras_bridge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sduras%2Fduras_bridge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sduras","download_url":"https://codeload.github.com/sduras/duras_bridge/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sduras%2Fduras_bridge/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32720776,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-07T02:14:30.463Z","status":"ssl_error","status_checked_at":"2026-05-07T02:14:29.405Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["duras","minimalist","neovim-plugin","note-keeping","note-taking","plain-text","vim-plugin"],"created_at":"2026-05-05T09:00:59.945Z","updated_at":"2026-05-07T03:01:51.737Z","avatar_url":"https://github.com/sduras.png","language":"Lua","funding_links":[],"categories":["Note Taking","Development Tools"],"sub_categories":["Cursorline"],"readme":"# duras_bridge — Vim / Neovim integration\n\nMinimal bridge between editor buffers, the system clipboard, and the\n[duras](https://github.com/sduras/duras) CLI.\n\nRequires duras 1.1.0 or later.\n\nTwo files. Same commands.\n\n| File               | Editor              |\n| ------------------ | ------------------- |\n| `duras_bridge.vim` | Vim (incl. a-Shell) |\n| `duras_bridge.lua` | Neovim              |\n\nNo dependencies. No plugin manager required.\n\n---\n\n## Installation\n\n### Plugin manager\n\n**Neovim — lazy.nvim**\n\n```lua\n{ url = 'https://github.com/sduras/duras_bridge' }\n```\n\n**Vim — vim-plug**\n\n```vim\nPlug 'https://github.com/sduras/duras_bridge'\n```\n\n**Vim — pathogen**\n\n```sh\ngit clone https://github.com/sduras/duras_bridge ~/.vim/bundle/duras_bridge\n```\n\nThe plugin files live in `plugin/`. Any manager that adds the repo root to\nthe runtimepath will load the correct file automatically — Vim sources\n`duras_bridge.vim`, Neovim sources `duras_bridge.lua`. A shared guard\n(`g:loaded_duras_bridge`) prevents both from loading on Neovim.\n\nAfter install, run `:helptags ALL` (or let the plugin manager do it) to\nenable `:help duras_bridge`.\n\n---\n\n### Manual — runtimepath\n\nClone once, point the editor at it:\n\n```sh\ngit clone https://github.com/sduras/duras_bridge ~/src/duras_bridge\n```\n\n**Vim** — add to `.vimrc`:\n\n```vim\nset runtimepath+=~/src/duras_bridge\n```\n\n**Neovim** — add to `init.lua`:\n\n```lua\nvim.opt.runtimepath:append(vim.fn.expand('~/src/duras_bridge'))\n```\n\nTo update: `git pull` in the cloned directory. No file copying needed.\n\n---\n\n### Manual — single file\n\nIf you prefer not to clone the repository, copy or symlink the plugin file\ndirectly:\n\n```sh\n# Vim\ncp plugin/duras_bridge.vim ~/.vim/plugin/\n\n# Neovim\ncp plugin/duras_bridge.lua ~/.config/nvim/plugin/\n```\n\nVerify it loaded:\n\n```vim\n:scriptnames\n```\n\n---\n\n### Check prerequisites\n\n```vim\n:echo system('duras --version')\n```\n\nClipboard (a-Shell / macOS):\n\n```vim\n:echo system('pbpaste')\n```\n\nClipboard (Linux):\n\n```vim\n:echo system('xclip -selection clipboard -o')\n```\n\nIf empty or error: fallback to `getreg('+')`.\n\n---\n\n## Commands\n\n### Open\n\n```vim\n:DOpen            \" today\n:DOpen 2026-04-20\n:DOpen -1         \" offset\n```\n\n### Append\n\n```vim\n:DAppend          \" buffer or selection\n:DAppend text\n:DAppend -        \" clipboard\n```\n\nText is normalized by duras before storage: trailing whitespace stripped\nper line, consecutive blank lines collapsed to one, tabs converted to\nspaces. This applies to all three input modes.\n\n### Search\n\n```vim\n:DSearch keyword\n:DSearch project meeting\n```\n\nNavigation:\n\n- `\u003cCR\u003e` — open\n- `:q` — close\n\n### Clipboard\n\n```vim\n:DClipYank        \" buffer → clipboard\n:DClipPaste       \" clipboard → below cursor\n:DCopyPath        \" note path → clipboard\n```\n\n### Metadata\n\n```vim\n:DStats\n:DPath\n:DTags\n:DTags project\n```\n\nPass tag names without `#`.\n\n---\n\n## Key bindings (default)\n\n| Key          | Action      |\n| ------------ | ----------- |\n| `\u003cleader\u003edo` | `:DOpen`    |\n| `\u003cleader\u003eda` | `:DAppend`  |\n| `\u003cleader\u003eds` | `:DSearch ` |\n| `\u003cleader\u003edp` | `:DPath`    |\n\nVisual mode: `\u003cleader\u003eda` appends selection.\n\nDisable by commenting mappings at file end:\n\n- Vim: `nnoremap` / `vnoremap`\n- Neovim: `vim.keymap.set`\n\nNo `no_mappings` guard.\n\n---\n\n## Clipboard behavior\n\nPriority:\n\n1. `pbcopy` / `pbpaste` (iOS, macOS)\n2. `xclip` / `xsel` (X11)\n3. `getreg('+')` / `setreg('+')`\n\nAll system calls checked by exit status.\n\n---\n\n## a-Shell notes\n\n- Clipboard tools may be absent; fallback used\n- `system()` is synchronous; large note sets may introduce latency\n\n---\n\n## Limitations\n\n- Encrypted notes (`.dn.gpg`) unsupported — use `duras -c` in shell\n- `:DAppend` always appends to today — use `duras append -d DATE text` in\n  shell for past dates\n- `:DSearch` has no `-i` flag — use `duras search -i` from shell\n\n---\n\n## Scope\n\n- No background processes\n- No state beyond buffer/clipboard\n- No deviation from `duras` CLI behavior\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsduras%2Fduras_bridge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsduras%2Fduras_bridge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsduras%2Fduras_bridge/lists"}