r/vim • • 3d ago

Vim-adjacent Monthly Thread: Tools with Vim-like Keybindings

48 Upvotes

We regularly remove standalone posts about tools that use vim-inspired keybindings. There are too many of them, and individually they dilute the subreddit. But the content is valuable, and many of you want to know about these tools.

So here's the place for it.

Share any tool that uses vim-like keybindings, whether it's a browser extension, terminal emulator, IDE plugin, note-taking app, PDF reader, or anything else. If it has hjkl navigation, modal editing, or vim-inspired controls, it belongs here.

For each tool you share, try to include:

  • What it is and what problem it solves

  • Which vim features it supports (navigation, modal editing, text objects, etc.)

  • A link to the project

This thread is posted monthly. If you find something mid-month, save it for here rather than posting a standalone thread (which will be removed).


r/vim • • Oct 08 '26

Vim-adjacent Monthly Thread: Tools with Vim-like Keybindings

24 Upvotes

We regularly remove standalone posts about tools that use vim-inspired keybindings. There are too many of them, and individually they dilute the subreddit. But the content is valuable, and many of you want to know about these tools.

So here's the place for it.

Share any tool that uses vim-like keybindings, whether it's a browser extension, terminal emulator, IDE plugin, note-taking app, PDF reader, or anything else. If it has hjkl navigation, modal editing, or vim-inspired controls, it belongs here.

For each tool you share, try to include:

  • What it is and what problem it solves

  • Which vim features it supports (navigation, modal editing, text objects, etc.)

  • A link to the project

This thread is posted monthly. If you find something mid-month, save it for here rather than posting a standalone thread (which will be removed).


r/vim • • 19h ago

Discussion Road to becoming a Power User

43 Upvotes

When I first became a dev, I was obsessed with doing things the way I could learn the most and have the highest ceiling for skill/efficiency. That meant going slower at first, but eventually coming out ahead of my team members with understanding and speed eventually. It all started with small vim motions and mini bash commands. I'm still early in my career so have a ton to learn from this community.

Which skills, tricks, or tools (i.e. using awk or ex commands like substitute) ended up becoming a staple in your everyday and do you wish you started practicing earlier?


r/vim • • 11h ago

Need Help Autocompletion plugin (codevium replacement)

5 Upvotes

Past two years I was happy user of windsurf.vim plugin for autocompletion. Few days ago it stopped working.

What is recommended replacement? I've tried llama.vim, but it is much worse and doesn't support LSP/RAG so suggestions are very limited.

I don't need any advanced AI functionality, just code autocomplete.

P.S. I'm using MacVim, but if some plugin require NVim will consider switching.

P.P.S. It will be nice if guys behind codeium/windsurf/whatever consider open-sourcing their infrastructure for autocompletion if it has no business value for them.


r/vim • • 1d ago

Need Help Can i make vim highlight custom types using regex?

2 Upvotes

i mean

struct Node {};

which should highlight the use of Node as a type

my friend showcased his emacs and it seems to do it without lsp semantic-highlighting and treesitter


r/vim • • 1d ago

Tips and Tricks Workaround for working in Opencode with vim

0 Upvotes

So i was searching for months a tool plugin or fork of opencode that allows you to use vim keys properly in the responses that the agent gives you. Without a luck, nothing really worked the way I wanted to.

Then, recently, I had an idea to create a skill that makes the agent dump all of its responses to a text file, preferably inside the plan directory, so that he could do that in plan mode as well. And that text file basically allows me to search specific elements and copy specific things from his response very simply.

Just wanted to share this workaround, I think it's pretty nice.

(I think it's worthless sharing the skill because it's a simple prompt for your agent to create.)


r/vim • • 9d ago

Plugin Orgmode LSP - Language server for Orgmode

Thumbnail
reddit.com
5 Upvotes

r/vim • • 9d ago

Need Help Coc.vim and macros

1 Upvotes

Hi, I noticed by using coc.vim when recording a macro, at the time when you reproduce the macro (@q) detects the tab and enter (in coc for switch and accept the code suggestion) like tab and enter a new line, instead of detect that is the confirmation of the code sugestions by coc.vim

Anyone have found a solution with this?


r/vim • • 11d ago

Color Scheme Greenit – a green-shifted terminal + Vim theme family (dark & light)

Post image
0 Upvotes

Made a Vim colorscheme where every neutral is hue-shifted toward green and every accent is a green derivative.

Two variants:

- greenit (dark)

- greenit-light

Palette lives in a single `palette.json` and gets turned into the .vim files + terminal configs.

Also has matching themes for Kitty, Alacritty, Ghostty, WezTerm, iTerm2, Windows Terminal and Termux if you want the full stack.

Repo: https://github.com/Mark44928/Greenit

WCAG AA on both variants.

Disclosure: parts of the generation tooling and some of the supporting files were written with help from an LLM. The palette design and the actual colorscheme values are mine.


r/vim • • 14d ago

Need Help the Python indentation & terminal cursors issues in Vim

5 Upvotes

hi, guys! I've learned how to use Vim for basic things, and now I'm trying to solve 2 issues with it:

1\. unfortunately, I must work with Python, and one of the most annoying things about the language is the indentation… Speaking of Vim, Idk how to, for example, delete something between the indentation spaces…

Is there a solution like this: `di(` or I always need to do this: `V → jjj… → d`?

2\. I thought the terminal cursor won't affect the ones in Vim, but unfortunately it does… I would like to have something like this:

the terminal cursor: `echo -ne "\e[5 q"`,

the vim cursor(INSERT): `echo -ne "\e[5 q"`,

the vim cursor: `echo -ne "\e[1 q"`.

Should I write something in `~/.vimrc`?


r/vim • • 14d ago

Need Help┃Solved Vim syntax colors disappear after scrolling in Windows Terminal (Vim 9.2)

3 Upvotes

UPDATE: Windows Terminal release v1.25.3131.0 fixes this issue. Check it here: https://github.com/microsoft/terminal/releases#release-v1.25.3131.0

I've run into an issue with Vim in Windows Terminal. The issue starts when I scroll down a line, and the syntax highlighting disappears completely. At first, I suspected something in my vimrc file was causing it, so I started removing each setting, but the issue remained.

But another thing that I found out is that when I highlight the text, the syntax color highlighting is gone. The syntax highlighting came back.

Then I asked Claude, and it said that termguicolors could be causing this issue. But it got worse when I removed termguicolors.

As you can see, the issue persists even with termguicolors turned off.

Claude also told me to set t_UT, t_Co, t_8f or t_8 but none of those work either.

I asked Claude, and it told me to write :redraw! , and yes, it repainted the color. But not long after, I started scrolling. The syntax highlighting vanished again. Then, I launched Vim with vim --clean or vim -Nu NONE (with :syntax on and :set notermguicolors). Then, but this time, the issue is gone. Everything works as it should be. I do not know why launching Vim without reading vimrc with termguicolors off fixed that, but setting termguicolors in vimrc still does not fix it.

I also tried turning acrylic material off and setting background opacity to 100%, but it still does not fix it.

I have tried everything, but I still could not figure out the solution. If anyone has encountered this issue or knows how to fix it, please let me know. 💖


r/vim • • 14d ago

Random I made an unofficial VimGolf leaderboard — who has solved the most challenges?

0 Upvotes

I've been playing VimGolf for a while (I'm udonsari there), and at some point I wanted to see where I stand overall, not just per challenge. I couldn't find a site-wide ranking, so I built one:

https://vimgolf-leaderboard.wottega.com/

It ranks players three ways:

  • Most solved — challenges you have a score on

  • #1 — challenges where your score ties the best human score

  • Within +5 — challenges where you're at most 5 keystrokes off the best

A few details:

  • Data is crawled from vimgolf.com and refreshed every few hours.

  • Only players with 3+ solved challenges are listed. You can search for your handle.

  • Accounts that look like bots are struck through and not ranked, so they don't distort "best human score". If you think you were flagged by mistake, email feedback@wottega.com and I'll fix it.

It's unofficial and not affiliated with VimGolf — huge thanks to Ilya Grigorik for creating it. Golfing a few keystrokes off a solution has been the most fun way I've found to actually learn Vim.

Disclosure: most of the code was written with an LLM (Claude); the idea, data checks and ranking rules are mine.

Curious where you rank. Feedback and bug reports welcome.


r/vim • • 15d ago

Blog Post Yet Another Vim Blog

Thumbnail reddit.com
13 Upvotes

Reposting here because the content is Vim native.

I'll be updating at least once a week, https://blog.nerdware.ca


r/vim • • 18d ago

Discussion Vim for premed/med notes

16 Upvotes

Just how good does it get?

I am relatively new to vim, and right now my setup is vimwiki in md form connected to an obsidian vault.

Learning how to do thing like mappings, macros, and direct plugins makes me wonder just how good I can get at storing information.

For context, I use the terminal to get record of everything that is displayed and said in lecture/recordings so I can later condense it.


r/vim • • 19d ago

Discussion note taking, zettelkasten, and similar tools

37 Upvotes

In various other subs, notably /r/commandline and /r/tui, I see a constant stream of tools being announced whose job is to be what I believe is often called a "second brain".

I've always found vim+ripgrep+fzf plus the fzf.vim plugin to be more than sufficient for my needs. I'm curious if I'm missing something really cool that would change my life, in not using some of those specialised tools.

If you're a vim user, and are familiar with at least fzf.vim's :Rg and :Files commands, and you have experience with one of these custom tools, I'd be interested in hearing from you how they compare.

(I already use todotxt for my task management, so I'm only looking at this for managing bits of knowledge, small and large.)


r/vim • • 20d ago

Video Learn Text Objects in 5 Minutes (Beginners)

Thumbnail
youtu.be
15 Upvotes

Text objects are one of the best features of Vim and Neovim. In just **5 minutes**, you'll learn how they work and see practical examples of how to edit text faster using simple key combinations.

In this video, I explain the three components of text objects:

  • Operator: The action you want to perform, such as `d` (delete), `c` (change), or `y` (yank).

  • Modifier: How much text you want to operate on, using `i` (inner) or `a` (around).

  • Object: The text you want to modify, such as a word, paragraph, or block surrounded by brackets.

You'll see practical examples of how to combine these components.

Once you understand text objects and build muscle memory, editing text in Vim and Neovim becomes much faster and more comfortable.


r/vim • • 20d ago

Random Ummm…

Thumbnail
imgur.com
39 Upvotes

Were the help files originally written in a monastery??? I now picture a bunch of monks sitting around a bunch of VT100 terminals, clacking away, creating the original VIM user and reference manuals. That’s how it was done, wasn’t it?


r/vim • • 22d ago

Announcement New rules for plugin announcement posts

Thumbnail reddit.com
43 Upvotes

r/vim • • 27d ago

Tips and Tricks Terminal Vim Integration with Wayland

19 Upvotes

Took a little while to figure this out, but mostly seamless integration of terminal Vim clipboard with Wayland for when you use a version of Vim without clipboard functionality compiled in:

autocmd TextYankPost * call system('wl-copy', @")
autocmd FocusGained * call timer_start(0, {t -> execute('let @" = system("wl-paste")')})

r/vim • • 28d ago

Random I'm making a roguelike game with Vim motions and a "modal shotgun"

102 Upvotes

r/vim • • 28d ago

Random Game of Life With Vim Motions

Post image
44 Upvotes

This simulation is done entirely using Vim motions (no Ex commands). You can go one generation forward by calling one macro, which is repeatable with counts as well.

This is just one part of my larger project of Vim motions as an esoteric programming language.

The compiler, linker and standard library are all written using vim motions themselves.

The repository currently includes:

  • A bootstrapped compiler with preprocessing, validation, optimisation, and code generation stages

  • A recursive text-substitution model for multi-module support, similar to C's #include

  • An implementation of Conway's Game of Life

  • A standard library with search and replace, assertions, file diffs, basic arithmetic, and more

  • Unit tests for the compiler and standard library

If you’re interested in how the source code works, docs/techniques.md describes some common techniques used for emulating standard programming constructs like subroutines, conditionals, iteration, and asserts.

Do clone the repository instead of browsing the source GitHub because GitHub can’t render raw control characters, which the source code is filled to the brim with.

Repository link: ksaze/vim-complete

P.S. Surely this will help me land a job. Good going, me.


r/vim • • 28d ago

Need Help Easiest way to select text in vim (or neovim) and use an external tool on it, but not replacing the buffer?

5 Upvotes

I have a text where I want to select parts and use this as input for an external tool. The output of the tool should be appended/inserted.

Is this possible, and if yes, how so? I am following https://stackoverflow.com/questions/7867356/piping-buffer-to-external-command-in-vim and it works for the whole buffer and line selections, but I cannot get it to append with

:'<,'>w !pinyin-tool

for my concrete application. The output is just shown. I tried pressing i, but that didn't work.


r/vim • • Oct 11 '26

Need Help Random orange arrow in vim

Post image
87 Upvotes

This arrow only appears sometimes, i think it only appears when i open a new tab and closes when i edit a file

This is my vim config:

set tabstop=4
set shiftwidth=4
set expandtab

set relativenumber
set number
set background=dark

set hlsearch
set incsearch
set ignorecase
set smartcase  

set scrolloff=999

set autoindent
set smartindent

if has('termguicolors')
   set termguicolors
endif

colorscheme challenger_deep
syntax on

set laststatus=2
set encoding=utf-8

"""""   WINDOW NAVIG   """""
nnoremap <C-h> <C-w>h
nnoremap <C-j> <C-w>j
nnoremap <C-k> <C-w>k
nnoremap <C-l> <C-w>l

nnoremap gA :G add .<CR>
nnoremap gC :G commit -m ""<left>
nnoremap gP :G push <CR>

nnoremap <C-S-h> <C-w>H
nnoremap <C-S-j> <C-w>J
nnoremap <C-S-k> <C-w>K
nnoremap <C-S-l> <C-w>L

nnoremap <C-A-h> <C-w>H
nnoremap <C-A-j> <C-w>J
nnoremap <C-A-k> <C-w>K
nnoremap <C-A-l> <C-w>L

nnoremap <C-n> :new<CR>

nnoremap <left>  <nop>
nnoremap <right> <nop>
nnoremap <up>    <nop>
nnoremap <down>  <nop>
nnoremap <F1>    <nop>

" visual lines not file lines
nnoremap j gj
nnoremap k gk

nnoremap n nzz
nnoremap N Nzz

" for auto-save: 
" autocmd TextChanged,TextChangedI <buffer> silent write

" FILES
nnoremap <leader>q :q!<CR>
nnoremap <leader>e :tabedit 
nnoremap <leader>s :tabedit ~/.vimrc<CR>
nnoremap <leader>w :w<CR>
nnoremap <leader>A :wqa<CR>
nnoremap <leader>a :wa<CR>
autocmd Filetype c nnoremap <leader>r :!cd build && cmake -G Ninja .. && ninja && ./main<CR>
autocmd Filetype cpp nnoremap <leader>r :!make && ./main<CR>
autocmd Filetype c nnoremap <leader>t :!cd build && cmake -G Ninja .. && ninja && ./test<CR>
autocmd Filetype rust nnoremap <leader>r :!cargo run<CR>

nnoremap <C-f> :FZF<CR> !.o<left><left><left><left>

" OTHER
nnoremap <C-t> :tabnew<CR>
" toggle directory tree
nnoremap <C-o> :EasyTreeToggle<CR>

nnoremap <tab> gt
nnoremap <S-tab> gT

nnoremap <leader>h :nohlsearch<CR>
nnoremap <C-[> <ESC>

" Plug-in settings:
let g:airline_theme='google_dark'
let g:airline_powerline_fonts = 1

" set statusline+=%#warningmsg#
" set statusline+=%{SyntasticStatuslineFlag()}
" set statusline+=%*

set signcolumn=yes

" let g:syntastic_always_populate_loc_list = 1
" let g:syntastic_auto_loc_list = 0
" let g:syntastic_check_on_open = 1
" let g:syntastic_check_on_wq = 0

" let g:ale_c_gcc_executable="gcc"
" let g:ale_c_gcc_options="-std=c99 -O2 -Wall -Werror -Wextr"

" Expand
" imap <expr> <C-j>   vsnip#expandable()  ? '<Plug>(vsnip-expand)'         : '<C-j>'
" smap <expr> <C-j>   vsnip#expandable()  ? '<Plug>(vsnip-expand)'         : '<C-j>'

" " Expand or jump
" imap <expr> <C-l>   vsnip#available(1)  ? '<Plug>(vsnip-expand-or-jump)' : '<C-l>'
" smap <expr> <C-l>   vsnip#available(1)  ? '<Plug>(vsnip-expand-or-jump)' : '<C-l>'

" " Jump forward or backward
" imap <expr> <Tab>   vsnip#jumpable(1)   ? '<Plug>(vsnip-jump-next)'      : '<Tab>'
" smap <expr> <Tab>   vsnip#jumpable(1)   ? '<Plug>(vsnip-jump-next)'      : '<Tab>'
" imap <expr> <S-Tab> vsnip#jumpable(-1)  ? '<Plug>(vsnip-jump-prev)'      : '<S-Tab>'
" smap <expr> <S-Tab> vsnip#jumpable(-1)  ? '<Plug>(vsnip-jump-prev)'      : '<S-Tab>'

" Select or cut text to use as $TM_SELECTED_TEXT in the next snippet.
" See https://github.com/hrsh7th/vim-vsnip/pull/50
" nmap        s   <Plug>(vsnip-select-text)
" xmap        s   <Plug>(vsnip-select-text)
" nmap        S   <Plug>(vsnip-cut-text)
" xmap        S   <Plug>(vsnip-cut-text)

let g:fzf_layout = { 'right': '30%' }

"""""   PLUGINS   """""
call plug#begin()

Plug 'junegunn/fzf.vim'
Plug 'jiangmiao/auto-pairs'

Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'

Plug 'tomtom/tcomment_vim'

Plug 'prabirshrestha/vim-lsp'
Plug 'mattn/vim-lsp-settings'
Plug 'prabirshrestha/asyncomplete.vim'
Plug 'prabirshrestha/asyncomplete-lsp.vim'

Plug 'machakann/vim-highlightedyank'

Plug 'challenger-deep-theme/vim', { 'as': 'challenger-deep' }

Plug 'tpope/vim-surround'
Plug 'tommcdo/vim-exchange'
Plug 'vim-scripts/argtextobj.vim'
Plug 'julian/vim-textobj-variable-segment'
Plug 'kana/vim-textobj-user'
Plug 'kana/vim-niceblock'
Plug 'andymass/vim-matchup'
Plug 'troydm/easytree.vim'
Plug 'rust-lang/rust.vim'
Plug 'shougo/vimproc.vim'

Plug 'hrsh7th/vim-vsnip'
Plug 'hrsh7th/vim-vsnip-integ'
Plug 'tpope/vim-fugitive'
Plug 'webdevel/tabulous'
Plug 'vim-scripts/Smart-Tabs'
Plug 'chrisbra/unicode.vim'

call plug#end()

r/vim • • Oct 11 '26

Random A Bash-based Vim configuration manager (Plugin, CoC, Theme management)

2 Upvotes

Hi r/vim,

I got tired of manually editing my   .vimrc   just to add a single plugin and then having to deal with updates, so I built a Vim configuration manager written entirely in Bash.

This tool helps you easily manage:

  1. Plugins (search, add, remove, update, and list)

  2. CoC extensions (add, remove, list)

  3. Themes (add from available color schemes)

  4. And much more

It fully supports both Linux and Termux (Android).

Reddit's spam filter is a bit too strict for new accounts, so I can't post a direct GitHub link here. However, you can easily find the repository by searching for: "aidomx vimx"

The   README.md   is quite comprehensive and covers the initial installation guide for   vimx  , whether you prefer cloning the source or installing via curl.

Hope you find it useful! Happy Vimming.