Skip to content

Very Simple Neovim Settings for Obsidian Users

License

Notifications You must be signed in to change notification settings

efirlus/markvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Neovim Setup for Markdown Writer

  • who want to use with Obsidian

Introduction

  • Simple and Neat Setup for Markdown editing with Neovim.
  • Real Time Rendering Markdown Marker
  • Looking Incredible Zen-Mode
  • Multiple functions for Convenience

Features

🎨 Optimized for Neovide

  • Seamlessly integrated with Neovide for a modern Windows UI experience
  • Built-in transparency and scaling configurations
  • Smooth animations and clean font rendering with FiraCode Nerd Font
  • Custom window decorations that match the theme

📝 Markdown-First Experience

  • Real-time markdown rendering with syntax highlighting
  • Zen mode for distraction-free writing
  • Smart header management and formatting shortcuts
  • Obsidian-compatible link following and backlink support
  • Template system for quick note creation

🗂️ Smart Organization

  • Periodic note management (Daily/Weekly/Monthly/Yearly)
  • Advanced file navigation with fuzzy finding
  • Intelligent split view management
  • Quick note creation with customizable templates
  • Undo history preserved across sessions

⚡ Efficient Navigation

  • Can autocomplete all notes and headers with wikilink form
  • Fast file switching with frecency-based search
  • Quick jump motions with eyeliner
  • Telescope integration for powerful search
  • Oil.nvim for seamless file management
  • Custom keybindings optimized for productivity

And More...

  • Extensive snippet support for markdown and other formats
  • Beautiful UI with Catppuccin theme integration
  • Advanced completion with Blink
  • Todo comment management
  • Real-time diagnostics and notifications

Plugins

If you have any question, or problem, go to the authors of the plugins

Basic Settings

Auto Completion Plugins

UI Component Plugins

Editor Plugins

Zen Mode

Advanced Usage

Prerequisites

Required Software

  1. Neovim (v0.9.0 or later)
  2. Neovide (recommended for best experience)
  3. Git (for plugin management)

System Tools

  • fd-find - For enhanced file searching
  • ripgrep - For fast content searching
  • Make or CMake - For building certain plugins
  • MSYS2 (for Windows users) - Provides required build tools

Font

Installation

  1. Backup your existing Neovim configuration:
mv ~/.config/nvim ~/.config/nvim.backup
  1. Clone this repository:
git clone https://github.com/efirlus/nvim-config.git ~/.config/nvim
  1. Install required system packages:
# For Windows (using scoop)
scoop install fd-find ripgrep make

# For MSYS2
pacman -S mingw-w64-x86_64-make mingw-w64-x86_64-cmake
  1. Launch Neovim and let the plugin manager install everything:
nvim

Configuration

Initial Settings

  1. Obsidian Vault Path

    • Location: lua/config/autocmd.lua, and lua/utils/periodic-note.lua
    • Change the following line to your Obsidian vault path:
    local path_to_vault = os.getenv("USERPROFILE") .. "\\OneDrive\\obsidian\\Vault"
    • and your periodic-notes' formats
    local file_path = vault .. "\\5a. 일지\\" .. file_name
    local file_name = string.format("%04d-%02d-%02d.md", date.year, date.month, date.day)
  2. Template Directory

    • Location: lua/templates
    • Update the templates in template directory:
    • You can use your basic obsidian templates, and using lua script to imitate templator (since they use javascript)
  3. New Note Folder

    • Location: lua/keymaps.lua, lua/plugins/snacks.lua
    • Update the folder of your new note stored
    require('utils.new-file-maker').new_file_maker('4. 보관')

Basic Settings

  • Edit lua/config/options.lua for Neovim behavior settings
  • Modify lua/config/keymaps.lua for custom keybindings
  • Adjust lua/config/autocmd.lua for automatic commands

Customizing Plugins

  • Plugin configurations are in lua/plugins/
  • Add new plugins by creating files in the plugins directory
  • Use lazy.lua to manage plugin loading behavior

Neovide Settings

  • Transparency and scaling can be adjusted in lua/config/options.lua
  • Font settings and window decorations are configurable
  • Performance settings can be tuned for your system

User Guide

Basic Usage

Markdown Features

  1. Snippets

    • Trigger Key: ; followed by snippet name
    • Available snippets for common programming languages (e.g., ;python, ;lua, ;bash), and even not worked in neovim, anyway you can make dataview codeblock with ;dataview
    • Also can add callouts by their markers (e.g., ;info, ;tip)
    • Special snippets:
      • linkt: Creates Markdown link with target="_blank"
      • linkc: Creates Markdown link using clipboard content
    • this configure is comes from linkarzu's neobean distribution. give star to him
  2. Text Formatting

    • Headers: <leader>i0 to <leader>i6 (set header levels 1-6, and 0 to remove header marker)
    • Italic: <leader>ii in normal mode, or select text and press <leader>ii
    • Bold: <leader>ib in normal mode, or select text and press <leader>ib
    • Strike: <leader>is in normal mode, or select text and press <leader>is
    • Highlight: <leader>ih in normal mode, or select text and press <leader>ih

Navigation

  • <leader>fg: Search through markdown files, basically similar as omnisearch for obsidian but faster, and sort by frecency
  • <leader>vf: Find files in current folder, also sorted by frecency
  • <leader>': Open buffer menu
  • <leader>-: Open file explorer (Oil)
  • <leader>vo: View outline
  • <leader>vu: View undo tree

Obsidian Integration

  • <leader>oo: Follow link in markdown
  • <leader>os: Open link in split view, smart split setter worked as current view panel indicate
  • Periodic Notes:
    • <leader>pd: Go to today's note
    • <leader>pw: Go to this week's note
    • <leader>pm: Go to this month's note
    • <leader>py: Go to this year's note

Split Management

  • <A-h/j/k/l>: Navigate between splits
  • <A-arrows>: Resize splits
  • <leader>w: Window management commands (use <leader>? to see all options)

Zen Mode

  • <leader>zz: Toggle zen mode
  • Automatically adjusts window width and removes distractions

Quick Actions

  • <leader>nn: Create new empty file
  • <leader>nt: Create new file with template
  • <leader>nr: Rename current file
  • <leader>qq: Quit all
  • <leader><leader>: Clear search highlight

Advanced Features

Template System

  • <leader>tt: Insert template
  • <leader>tp: Create new snippet
  • <leader>ti: Edit existing snippet

Auto-Completion

  • Trigger automatically while typing
  • Supports LSP, snippets, and path completion
  • Enhanced with Blink and colorful menu

File History

  • Undo tree preserves file history
  • Accessible via <leader>vu
  • Persistent across sessions

Task Features

Add Task

  • at the cursor: ;addto snippet
  • at the todolist: <leader>;' quickadd

See Tasks

  • <leader>vt: Telescope from Yesterday, Week Review, and Todolist

Check

  • <leader>ic: toggle the task, ✅ YYYY-MM-DD tag added. delete if uncheck toggle

And Some More

  • --, ++ to dial

Troubleshooting

Common Issues

  1. Plugin installation fails

    • Ensure git is installed and accessible
    • Check internet connection
    • Run :Lazy sync to retry installation
  2. Icons not displaying correctly

    • Verify FiraCode Nerd Font is installed
    • Check font settings in Neovide
  3. Build errors

    • Ensure make/cmake is installed
    • Check MSYS2 installation (Windows)
    • Verify system dependencies

Getting Help

  • Check the plugin documentation using :help [plugin-name], or <space>vh to search
  • Open an issue on each plugins' GitHub for bug reports
  • Review error messages in :messages, or <space>ee

Contributing

It will not keep maintained, since I have some change

License

Every codes are right to plugin authors

About

Very Simple Neovim Settings for Obsidian Users

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages