Skip to content

Instantly share code, notes, and snippets.

@peerasak-u
Last active March 20, 2026 14:15
Show Gist options
  • Select an option

  • Save peerasak-u/859adb08600715c78fa2fd9eba056f0b to your computer and use it in GitHub Desktop.

Select an option

Save peerasak-u/859adb08600715c78fa2fd9eba056f0b to your computer and use it in GitHub Desktop.
Modern Neovim Setup - Catppuccin, nvim-tree, Telescope, toggleterm, and more (updated)

Modern Neovim setup - Catppuccin, nvim-tree, Telescope, toggleterm, and more. (updated)

Modern Neovim Setup

Clean Neovim config for macOS (nvim 0.11+). Managed by lazy.nvim.

Install

mv ~/.config/nvim ~/.config/nvim.bak
ln -s ~/.dotfiles/nvim ~/.config/nvim
nvim

What's included

Plugin Purpose
Catppuccin Mocha Soft purple/pink terminal theme
nvim-tree File explorer sidebar
Telescope Fuzzy finder — files, grep, buffers, LSP symbols
toggleterm Embedded terminal
lazygit Git UI
harpoon Quick file bookmarks
lualine Status bar with LSP + git
gitsigns Git diff in gutter
flash.nvim Jump/motion with labels
mini.nvim Surround, comment, pairs, indentscope
treesitter Syntax + textobjects
which-key Keybinding hints

Keybindings

<leader> = Space

File ops
  <leader>e       Toggle file explorer
  <leader>ff       Find files (fuzzy)
  <leader>fg       Live grep
  <leader>fb       Switch buffers
  <leader>fr       Recent files

Terminal
  <leader>gt      Toggle terminal
  <leader>gg      LazyGit

Splits & tabs
  <leader>sv      Split vertical
  <leader>sh      Split horizontal
  <leader>sx      Close split
  <leader>to      New tab
  <leader>tx      Close tab

Edit
  Alt+j/k         Move line up/down
  <leader>/       Toggle comment
  <leader>w       Save
  zsa             Add surrounding
  zsd             Delete surrounding
  zsf             Find surrounding
  zsr             Replace surrounding
  zsh             Highlight surrounding

Harpoon
  <leader>hh      Bookmark current file
  <leader>h1-4    Jump to bookmark

Git
  <leader>gs      Stage hunk
  <leader>gp      Preview hunk
  <leader>gb      Blame line

Other
  <leader>nh      Clear search highlight
  <leader>bd      Close buffer
  <leader>Q       Force quit all

File structure

nvim/
├── init.lua                 # lazy.nvim bootstrap
└── lua/
    ├── config/
    │   ├── options.lua      # vim.opt, vim.g settings
    │   ├── keymaps.lua      # All keybindings
    │   └── colorscheme.lua  # Catppuccin config
    └── plugins/
        └── init.lua         # Plugin specs

Theme flavor

Currently mocha (dark). Change in lua/config/colorscheme.lua:

flavour = "mocha"  -- latte | frappe | macchiato | mocha

Modern Neovim Setup

Clean Neovim config for macOS (nvim 0.11+). Managed by lazy.nvim.

Install

mv ~/.config/nvim ~/.config/nvim.bak
ln -s ~/.dotfiles/nvim ~/.config/nvim
nvim

What's included

Plugin Purpose
Catppuccin Mocha Soft purple/pink terminal theme
nvim-tree File explorer sidebar
Telescope Fuzzy finder — files, grep, buffers, LSP symbols
toggleterm Embedded terminal
lazygit Git UI
harpoon Quick file bookmarks
lualine Status bar with LSP + git
gitsigns Git diff in gutter
flash.nvim Jump/motion with labels
mini.nvim Surround, comment, pairs, indentscope
treesitter Syntax + textobjects
which-key Keybinding hints

Keybindings

<leader> = Space

File ops
  <leader>e       Toggle file explorer
  <leader>ff      Find files (fuzzy)
  <leader>fg      Live grep
  <leader>fb      Switch buffers
  <leader>fr      Recent files

Terminal
  <leader>gt      Toggle terminal
  <leader>gg      LazyGit

Splits & tabs
  <leader>sv      Split vertical
  <leader>sh      Split horizontal
  <leader>sx      Close split
  <leader>to      New tab
  <leader>tx      Close tab

Edit
  Alt+j/k         Move line up/down
  <leader>/       Toggle comment
  <leader>w       Save
  zsa             Add surrounding
  zsd             Delete surrounding
  zsf             Find surrounding
  zsr             Replace surrounding
  zsh             Highlight surrounding

Harpoon
  <leader>hh      Bookmark current file
  <leader>h1-4    Jump to bookmark

Git
  <leader>gs      Stage hunk
  <leader>gp      Preview hunk
  <leader>gb      Blame line

Other
  <leader>nh      Clear search highlight
  <leader>bd      Close buffer
  <leader>Q       Force quit all

File structure

nvim/
├── init.lua                 # lazy.nvim bootstrap
└── lua/
    ├── config/
    │   ├── options.lua      # vim.opt, vim.g settings
    │   ├── keymaps.lua      # All keybindings
    │   └── colorscheme.lua  # Catppuccin config
    └── plugins/
        └── init.lua         # Plugin specs

Theme flavor

Currently mocha (dark). Change in lua/config/colorscheme.lua:

flavour = "mocha"  -- latte | frappe | macchiato | mocha
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment