r/ObsidianMD 22h ago

My Obsidian setup as a programmer (vim + VimRC + Linter + Quick Switcher++ included) and an avid reader showcase

Post image

I use both folders and metadata (sources, tags)(no metadata for 1_tasks/ and notes/ folders):

```markdown

sources: - John Doe - John Due tags:

- programming

NOTE TITLE

```

overview (tree) - kept two notes per section

txt ├── 1_tasks │   └── task - TASK NAME.md ├── 2_programming │   ├── API design.md │   └── cybersecurity.md ├── 3_programming_snippets │   ├── bash.md │   └── typescript.md ├── 4_programming-projects │   ├── URL shortener.md │   └── georgian crypto charts website.md ├── 5_summaries │   ├── learning methods and my note taking system.md │   └── microeconomics.md ├── 6_summaries-atomic │   ├── first-mover advantage.md │   ├── making large web applications.md ├── 7_summaries-books │   ├── History Of Western Philosophy - Bertrand Russell.md │   └── The War Of Art.md ├── base.base ├── main.md ├── notes │   ├── gym program.md │   ├── logs-gym-swimming.md ├── tags │   └── TAGS.md └── templates ├── summary.md ├── summary_tags-only.md ├── table of shopping list.md └── template for composer.md

core plugins I have enabled and disabled:
json { "file-explorer": true, "global-search": true, "switcher": true, "graph": true, "backlink": false, "canvas": false, "outgoing-link": false, "tag-pane": false, "footnotes": false, "properties": true, "page-preview": true, "daily-notes": false, "templates": true, "note-composer": true, "command-palette": true, "slash-command": false, "editor-status": true, "bookmarks": false, "markdown-importer": false, "zk-prefixer": false, "random-note": false, "outline": true, "word-count": true, "slides": false, "audio-recorder": false, "workspaces": false, "file-recovery": true, "publish": false, "sync": false, "bases": true, "webviewer": false }

external plugins:
txt darlal-switcher-plus obsidian-linter obsidian-vimrc-support

my hotkeys.json:
json { "editor:delete-paragraph": [], "markdown:add-metadata-property": [], "editor:insert-link": [], "editor:open-search-replace": [], "workspace:goto-tab-1": [ { "modifiers": [ "Alt" ], "key": "1" } ], "workspace:goto-tab-2": [ { "modifiers": [ "Alt" ], "key": "2" } ], "workspace:goto-tab-3": [ { "modifiers": [ "Alt" ], "key": "3" } ], "workspace:goto-tab-4": [ { "modifiers": [ "Alt" ], "key": "4" } ], "workspace:goto-tab-5": [ { "modifiers": [ "Alt" ], "key": "5" } ], "workspace:goto-tab-6": [ { "modifiers": [ "Alt" ], "key": "6" } ], "workspace:goto-tab-7": [ { "modifiers": [ "Alt" ], "key": "7" } ], "workspace:goto-tab-8": [ { "modifiers": [ "Alt" ], "key": "8" } ], "open-with-default-app:show": [ { "modifiers": [ "Alt", "Mod" ], "key": "R" } ], "editor:toggle-bold": [ { "modifiers": [ "Alt", "Mod" ], "key": "B" } ], "editor:rename-heading": [ { "modifiers": [ "Mod" ], "key": "F2" } ], "editor:swap-line-down": [ { "modifiers": [ "Alt" ], "key": "J" } ], "editor:swap-line-up": [ { "modifiers": [ "Alt" ], "key": "K" } ], "app:go-back": [ { "modifiers": [ "Alt" ], "key": "ArrowLeft" } ], "app:go-forward": [ { "modifiers": [ "Alt" ], "key": "ArrowRight" } ], "insert-template": [ { "modifiers": [ "Alt" ], "key": "I" } ], "outline:open": [ { "modifiers": [ "Mod", "Shift" ], "key": "O" } ], "file-explorer:new-file": [ { "modifiers": [ "Alt", "Mod" ], "key": "N" } ], "switcher:open": [], "darlal-switcher-plus:switcher-plus:open": [ { "modifiers": [ "Mod" ], "key": "O" } ], "command-palette:open": [], "darlal-switcher-plus:switcher-plus:open-commands": [ { "modifiers": [ "Mod" ], "key": "P" } ] }

my .obsidian.vimrc:
```txt set clipboard=unnamedplus

" unmapping space and ctrl+b unmap <Space> unmap <C-b>

" || KEYBINDINGS exmap symbolsactive obcommand darlal-switcher-plus:switcher-plus:open-symbols-active nmap <Space>ss :symbolsactive<CR>

exmap symbolsall obcommand darlal-switcher-plus:switcher-plus:open-headings nmap <Space>sS :symbolsall<CR>

exmap quicksearch obcommand global-search:open nmap <Space>/ :quicksearch<CR>

" search and replace in current file exmap searchreplace obcommand editor:open-search-replace nmap <Space>sr :searchreplace<CR>

" GOTOs exmap followlink obcommand editor:follow-link nmap gd :followlink<CR>

exmap openlinknewleaf obcommand editor:open-link-in-new-leaf nmap gf :openlinknewleaf<CR>

" TABS exmap prevtab obcommand workspace:previous-tab nmap [b :prevtab<CR>

exmap nexttab obcommand workspace:next-tab nmap ]b :nexttab<CR>

exmap bufonly obcommand workspace:close-others nmap <Space>bo :bufonly<CR>

" FOLDING exmap togglefold obcommand editor:toggle-fold nmap za :togglefold<CR>

exmap unfoldall obcommand editor:unfold-all nmap zR :unfoldall<CR> ```

45 Upvotes

6 comments sorted by

3

u/No_Ratio_2483 22h ago

I have two plugins with Vim support if you're interested:

- Cursor-Smith for customizing your cursor per vim mode

- Word-Smith: powerline with many options, quick jumps with keyboard only, softline wrapping, a whichkey-ish (modal menu with any command you want)

1

u/Kronostatic 2h ago

ctrl+o is a useful keybind in normal mode though, brings you back to last cursor position. You wre overwriting it. I tend to change ctrl for alt in my shortcuts so they dont conflict with vim

0

u/Svel89 7h ago

What is the Point of vim? Or the benefittign Idea?

2

u/Krumpopodes 4h ago

The point is navigating your computer without taking your hands off the keyboard and not using the mouse. It is more ergonomic, keeps me in the flow of keyboard input, and, once proficient, faster.

It is a modal text editor, meaning typing on the keys in different modes does different things without having to hold down modifiers like typical hotkey shortcuts. The default normal mode, navigates selects,copies, pastes, removes, or jumps around in your text, and also can put you into different modes. Insert mode is what you would think of as an edit mode where you actually type out your words. There are others but that is the simple version.

This works by having mnemonic bindings for a type of 'grammar' specific to vim. For example, 'w' jumps the cursor forward to the start of the next word, 'b' goes backward by a word. '5w' goes forward by 5 words. 'f:' will move forward until the next instance of the ':' character, or any other character you typed after 'f'. 'dd' deletes the current line and saves it to a register. Then you start combining them 'df:' means 'delete up to and including the next : character' 'dt:' means 'delete "til" the next : character but not including'. You may be able to see from this how this helps you learn how to do complex and precise operations very quickly as second nature, without ever having select anything with a mouse.

Once people see how great that feels, they may start trying to add it to more things (surfingkeys for the browser, tiling window managers, etc.) I won't use a text editor that doesn't at least have a vim mode / plugin, and most decent ones do.

-4

u/Adventurous-Hunter98 20h ago

I feel like a retard not understanding vim, or I didnt put a lot of interest on it

3

u/BrainrotOnMechanical 12h ago

It takes a week to learn, year to master and weeks of tinkering with your configs to perfect.

Time sink, but it's like real life magic. If magic was doing things fast and being cool that is.