Skip to content

Instantly share code, notes, and snippets.

@lambdalisue
Last active September 12, 2024 08:27
Show Gist options
  • Save lambdalisue/64e9db74532ba7cf7f28ce5a53bc71d5 to your computer and use it in GitHub Desktop.
Save lambdalisue/64e9db74532ba7cf7f28ce5a53bc71d5 to your computer and use it in GitHub Desktop.
Obsidian vimrc
" https://github.com/esm7/obsidian-vimrc-support
nmap j gj
nmap k gk
nmap ; :
set clipboard=unnamed
" Go back and forward with Ctrl+O and Ctrl+I
" (make sure to remove default Obsidian shortcuts for these to work)
exmap back obcommand app:go-back
nmap <C-o> :back
exmap forward obcommand app:go-forward
nmap <C-i> :forward
exmap followLink obcommand editor:follow-link
nmap gf :followLink
exmap openLinkInNewSplit obcommand editor:open-link-in-new-split
nmap <C-w>f :openLinkInNewSplit
nmap <C-w><C-f> :openLinkInNewSplit
" Close
exmap wq obcommand workspace:close
exmap q obcommand workspace:close
" Window navigation
exmap focusRight obcommand editor:focus-right
nmap <C-w>l :focusRight
nmap <C-w><C-l> :focusRight
exmap focusLeft obcommand editor:focus-left
nmap <C-w>h :focusLeft
nmap <C-w><C-h> :focusLeft
exmap focusTop obcommand editor:focus-top
nmap <C-w>k :focusTop
nmap <C-w><C-k> :focusTop
exmap focusBottom obcommand editor:focus-bottom
nmap <C-w>j :focusBottom
nmap <C-w><C-j> :focusBottom
exmap split obcommand workspace:split-horizontal
nmap <C-w>s :split
nmap <C-w><C-s> :split
exmap vsplit obcommand workspace:split-vertical
nmap <C-w>v :vsplit
nmap <C-w><C-v> :vsplit
" Tab navigation
exmap tabnew obcommand workspace:new-tab
nmap <C-w>t :tabnew
nmap <C-w><C-t> :tabnew
exmap tabnext obcommand workspace:next-tab
nmap gt :tabnext
nmap <C-n> :tabnext
exmap tabprev obcommand workspace:previous-tab
nmap gT :tabprev
nmap <C-p> :tabprev
" Emulate Folding https://vimhelp.org/fold.txt.html#fold-commands
exmap togglefold obcommand editor:toggle-fold
nmap zo :togglefold
nmap zc :togglefold
nmap za :togglefold
exmap unfoldall obcommand editor:unfold-all
nmap zR :unfoldall
exmap foldall obcommand editor:fold-all
nmap zM :foldall
" Reload
exmap reload obcommand app:reload
nmap <F5> :reload
" We first need to unmap <Space> to use <Space>
" https://github.com/esm7/obsidian-vimrc-support?tab=readme-ov-file#some-help-with-binding-space-chords-doom-and-spacemacs-fans
unmap <Space>
" MRU
exmap mru obcommand switcher:open
nmap <Space>mm :mru
" Enable Emacs-like mappings in Insert/Command Mode
" It seems simple <Home>/<End> doesn't work in 'imap' so some workaround is
" required
imap <C-a> <Esc><Home>i
imap <C-e> <Esc><End>a
imap <C-f> <Right>
imap <C-b> <Left>
imap <C-d> <Del>
cmap <C-a> <Home>
cmap <C-e> <End>
cmap <C-f> <Right>
cmap <C-b> <Left>
cmap <C-d> <Del>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment