Minimal bridge between editor buffers, the system clipboard, and the duras CLI.
Two files. Same commands.
| File | Editor |
|---|---|
duras_bridge.vim |
Vim |
duras_bridge.lua |
Neovim |
No dependencies. No plugin manager required.
Neovim — lazy.nvim
{ url = 'https://codeberg.org/duras/duras_bridge' }
Vim — vim-plug
Plug 'https://codeberg.org/duras/duras_bridge'
Vim — pathogen
git clone https://codeberg.org/duras/duras_bridge ~/.vim/bundle/duras_bridge
The plugin files live in plugin/. Any manager that adds the repo root to
the runtimepath will load the correct file automatically — Vim sources
duras_bridge.vim, Neovim sources duras_bridge.lua. A shared guard
(g:loaded_duras_bridge) prevents both from loading on Neovim.
After install, run :helptags ALL (or let the plugin manager do it) to
enable :help duras_bridge.
Clone once, point the editor at it:
git clone https://codeberg.org/duras/duras_bridge ~/src/duras_bridge
Vim — add to .vimrc:
set runtimepath+=~/src/duras_bridge
Neovim — add to init.lua:
vim.opt.runtimepath:append(vim.fn.expand('~/src/duras_bridge'))
To update: git pull in the cloned directory. No file copying needed.
If you prefer not to clone the repository, copy or symlink the plugin file directly:
# Vim
cp plugin/duras_bridge.vim ~/.vim/plugin/
# Neovim
cp plugin/duras_bridge.lua ~/.config/nvim/plugin/
Verify it loaded:
:scriptnames
:echo system('duras --version')
If duras is not found in PATH, the plugin does not load and commands are
unavailable. Verify the binary is accessible from Vim's shell before
debugging anything else.
Clipboard (macOS):
:echo system('pbpaste')
Clipboard (Linux):
:echo system('xclip -selection clipboard -o')
If empty or error: fallback to getreg('+').
:DOpen " today
:DOpen 2026-04-20
:DOpen -1 " offset
:DAppend " buffer or selection
:DAppend text
:DAppend - " clipboard
Empty or whitespace-only input is rejected before reaching duras.
:DSearch keyword
:DSearch project meeting
Navigation:
<CR> — open:q — close:DClipYank " buffer → clipboard
:DClipPaste " clipboard → below cursor
:DCopyPath " note path → clipboard
:DStats
:DPath
:DTags
:DTags project
Pass tag names without #.
| Key | Action |
|---|---|
<leader>do |
:DOpen |
<leader>da |
:DAppend |
<leader>ds |
:DSearch |
<leader>dp |
:DPath |
Visual mode: <leader>da appends selection.
Disable by commenting mappings at file end:
nnoremap / vnoremapvim.keymap.setNo no_mappings guard.
Priority:
pbcopy / pbpaste (macOS)xclip / xsel (X11)getreg('+') / setreg('+')All system calls checked by exit status.
.dn.gpg) unsupported — use duras -c in shell:DAppend always appends to today — use duras append -d DATE for past dates:DSearch has no -i flag — use duras search -i from shellduras CLI behavior