r/vim 14d ago

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

35 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 12h ago

Plugin VimTeX v2.18

Thumbnail
2 Upvotes

r/vim 14h ago

Tips and Tricks Are we slowly forgetting that you can just "speak" vi?

63 Upvotes

You don't need much more than the core grammar. You know how :source file executes Ex commands linewise from the file? Well, :source! file executes commands as if you were typing them and ends each line with a CR for you.

Opening vim to your favorite layout is just a matter of writing down the keystrokes you keep typing each time:

:e ~/.vimrc<CR><C-w>v:e ~/.tmux.conf
:term top<CR>ggVGy:ene<CR>:r!date<CR>p
<C-w>s<C-w>Hi"hello world"<Esc>

and `source!` it from somewhere. If you want to save all the `Shift+.,` typing, `<C-v><C-w>` would directly insert \^W`) in the buffer and keep it looking exactly like what you would.

Vi is a language. Even better, vi is a homoiconic language in that the code that is executed is identical to the representation of keys on your keyboard plus minimal syntax for control-characters.

You do not need to learn lisp to feel the power of '(insert-new-line) when you are a single o away from executing OR representing your intention to open a new line for insertion.

To grok further, hunt down the legendary StackOverflow answer and meditate for a little longer than usual.


r/vim 1d ago

Discussion Is there anything like explainshell.com for vim? Not just using :help <command>, but breaking apart complex commands?

7 Upvotes

The title should say everything needed. I was thinking that having an explainshell equivalent for vim would be neat.


r/vim 2d ago

Need Help Repeat character to position, rather than number of characters?

5 Upvotes

I want to pad a section title line in a config file with `=` up to a specific character position (specifically, column 64). Since the title text is of inconsistent length, a normal <n>i <char> won't do it.

Example of a title line formatted the way I want it:
;===== reset machine status ===================================


r/vim 2d ago

Random Are you a vim or a gvim person?

0 Upvotes

Which one do you use (more)?

132 votes, 2d left
Vim
Gvim
Both (specify percentage in comment)

r/vim 3d ago

Plugin A tiny Vim plugin for everyday git operations, inspired by lazygit

Thumbnail
github.com
5 Upvotes

Hi all,

A couple of years ago I started to write a plugin based on the hype (and beauty I must say) of lazygit, and I was wondering whenever it would be possible to replicate something similar through Vim9.

Then, due to lack of time I parked the project but the architecture I had in mind was clear: use `systemlist()` to call git commands and write the returned values in some scratch buffer inside of Vim, and add some buffer local keybindings for the various git operations. Nothing esoteric.
Moreover, the ambition was small: just "code" the most common git commands that I use daily and use a sort of "lazygit" UI, though the architecture is such that any extension should be easy.

These days I have some time to spend in Vim9 coding and I finally finished this plugin, also with the help of an AI agent, which is something that I never used before, though I had to manually correct it many times - I believe that AI agents are not very good in Vim9 scripting yet!

Well, regardless, I hope you enjoy it! :)


r/vim 4d ago

Tips and Tricks TIL @: repeats the last command and @@ repeats the last macro.

74 Upvotes

Holy cramole!

Where has this been all my life? I found out about these macros while doing a bit of coding that involved a lot of running things like :w | foo ./%. After typing : followed by up a zillion times, I realized that there had to be a better way. A quick Google and I was enlightened.

If this is a TIL for you, lemme know. If you have another lovely tip or trick, please share too.


r/vim 5d ago

Discussion Musings on Vim from an Emacs luser

57 Upvotes

I've used mostly vanilla Emacs for about a decade. I'm thinking about switching to Vim because the values that made me appreciate Emacs have changed.

What I loved about Emacs is that it's essentially a Lisp machine packaged as an application, which makes Emacs a legitimate target platform. The primitives provided by Emacs are probably better-suited to extensions than those provided by Vim. But over time, I've come to two conclusions:

First, the editor-with-extension-language paradigm is outdated. Plan 9's Acme editor showed that an editor need not impose a particular language on its users. It can instead expose a language-agnostic API via a filesystem (or socket), thereby permitting any program in any language whatsoever to extend the editor. This is, in my opinion, the way forward.

Second, I want to use my operating system. I don't want to use Emacs replacements for what my operating system or supporting software already provide. It is silly for there to be a 'man' mode for man pages when the 'man' program works better. I want all of the tools I use to make the fullest use of the hardware and OS. That is simply not possible with Emacs.

Obviously, none of these complaints point to Vim as a solution. I would, in fact, use Acme as my daily editor, but for my mode of working, accessing remote systems on a slow network connection, neither a graphical editor nor mounting a remote filesystem are options, so using some editor in tmux is my best option, and for that reason, for now, Vim may be the more performant option.


r/vim 6d ago

Plugin GitHub - ubaldot/vim-markdown-extras: Modern note taking plugin with markdown focus

Thumbnail
github.com
20 Upvotes

Hi all!

I have updated this plugin that I use on daily basis, given that I switched career and I am no longer a software developer - but my love for Vim never faded and it is my go-to tool <3.

The added feature is about table handling: it is now easy to create, format, modify cells and in tables.

The next features that I plan to add are the following:

  1. Multi-row/multi-column tables,
  2. Links sanitizer, copy/paste links,

Unfortunately, I don't have the same time I had before, but I am open to receive good PR:s. :)

Check it out and let me know what you think!


r/vim 7d ago

Random VimTendo - An arcade game that teaches you Vim commands

Thumbnail
atticarun.itch.io
83 Upvotes

I made a free browser based game that is meant to help new vim users develop vim muscle memory. I enjoy making games that teach real skills. I have seen a few of these vim games over the years and this is my attempt at it. I'd appreciate feedback if you have any. I learn so much from posting.


r/vim 7d ago

Discussion What's one Vim command you use every day that beginners almost never know about?

246 Upvotes

I'm trying to move beyond the basics and really learn the parts of Vim that make experienced users so fast.

What's one command, motion, text object, register, macro, or workflow that's become second nature for you but rarely gets mentioned in beginner tutorials?

Bonus points if it's something you now use multiple times a day.


r/vim 8d ago

Need Help Does a plugin like this exist?

6 Upvotes

Hi, sry first time poster, hope its ok to just ask my question like this.

Question:

Is there a plugin for vim that can replace/ shows the code behinde for a function so I can follow the code flow better.

Why:

I have the task to maintain some legacy codebase, some written in python some written in c#, but its a lot of spagetti code. I know i can jump to the definition, but this gets confusing really fast. So I want to read it top to bottom, a option to hide states for if statements would be nice. Loops should stay the way they are.

Any hint for direction would be nice, thanks for reading.


r/vim 9d ago

Need Help┃Solved when vim session is restored, u (redo) and c-r (redo) don't work

3 Upvotes

hello. After restoring my session (ie: vim -S [session file]), in the buffer :undo works, but not u. Likewise for :redo versus c-r. I asked chat gpt, claude and grok why this might happen and they have mostly wasted my time. One of them speculated that tim pope's vim-repeat plugin is the cause. I've created the session anew and confirmed that the problem reappears, eventually. I've removed the following lines from the session file but they will simply reappear:

nmap U <Plug>(RepeatUndoLine)

nmap u <Plug>(RepeatUndo)

nmap <C-R> <Plug>(RepeatRedo)

i assume these are causing the problem and maybe they are coming from vim-repeat thanks for any thoughts


r/vim 9d ago

Plugin I made a note taking plugin with the new image integration.

Thumbnail
gallery
116 Upvotes

I have lost track of how many note taking plugins exist for Vim. I nevertheless decided to make my own in vim9script. Initially it was part of my configuration but then when I learnt that image support was added natively to Vim, I decided to make it into a proper plugin and decided to share it here.

Features:

- Note linking

- Image rendering

- Calendar view of daily notes

It has some limitations, most notably that it only works on Linux systems because I use shell commands a lot. (The calendar UI is made using the cal command, the images are actually generated by a user definable shell command which is then piped to ImageMagick for resizing and conversion to RGBA). It has some other quirks but I think it works well for me.

Anyways enough ranting here is the plugin: https://codeberg.org/zoomlogo/pen.vim


r/vim 9d ago

Need Help vim-ai VS denseanalysis Neural: which one?

0 Upvotes

I am getting modern, and I decided to use AI tools from Vim.
However, I only found these two plugins. Any experience?


r/vim 9d ago

Discussion What is missing in Vim compared to Neovim?

30 Upvotes

In my opinion:

  1. Tools for helping scripts/plugin development. Lua has LSP, linters, etc. Vim9 has... nothing. It seems to be back to the beginning of the 90:s when it comes to develop in Vim9 language, in-spite it is very nice.

  2. A Native Vim9 DAP. There is vim-spector but that is mostly Python,

  3. Plugins: for example, I got copilot from work and the Vim9 and Neovim copilot-chat plugin are not even comparable,

What else?


r/vim 11d ago

Video How To Edit Text Files With Vim

Thumbnail
youtube.com
0 Upvotes

Welcome to Day 10 of the 30-day RHCSA challenge!

Vim is the default editor you'll rely on all over RHEL and on the exam, since you'll be editing config files constantly.

Today we'll cover the essentials: opening files, moving around, editing text, and saving without getting stuck in the editor.

About this series:

Over the next 30 days I'm covering everything you need to pass the RHCSA (EX200) — from setup to users, permissions, storage, networking, SELinux, containers, and more. New video every day. Subscribe and turn on notifications so you don't miss one.

\#rhcsa #redhat #linux #redhatlinux #ex200 #linuxadministration #linuxcertification #offline #closedloop #sysadmin #linuxforbeginners #30daychallenge #learnlinux #itcertification #opensource #homelab #linuxtutorial #tech #techcareers #certificationprep #closedloop #airgap #shorts #shortvideo #texteditor #vim


r/vim 12d ago

Discussion The vim way to mail

0 Upvotes

Yet another vim mail client:

https://github.com/cirnovsky/vim-mail

The most distinctive feature of this mail client is text buffer-based mailboxes. Meaning, you can do things like :g/Title/d to delete mails with Title in the title).

I know, it looks like himalaya reinvented, but I believe some people would love the fact(s) that

  1. Inbox is nothing beyond a text buffer. dd to delete, s to mark read, :w to commit, u to undo.

  2. We're shipped with mail threading!

  3. The keybinding is close to native vim! Built for muscle-memory vimmers.

  4. It's so lightweight, driven only by a few python scripts.

  5. Foward-as-attachment is made easy.

  6. The way we handle inline images and attachments (check it out ➡️ in the repo)

  7. We're responsive! :)

So, give it a shot! I'm trying to make todos ticked asap. I'm personally enjoying this plugin, it covers most of my use cases already. I'd love to see people's reaction as it helps me improve this plugin!

I'd really really appreciate any forms of feedback!!!!!

If you'd like to email me, my address is pup at guanyu dot me. I will read every email and try to reply, in, of course, vim-mail :)


r/vim 12d ago

Plugin Inline error diagnostic tool for vim 9.0+

8 Upvotes

https://github.com/Joekrry/vimline-errors

Hi all, I have built a very well known tool for native vim 9.0+ based on the style of this neovim tool https://github.com/rachartier/tiny-inline-diagnostic.nvim .

Obviously in line error checks have existed for years but I haven't been able to find a tool that has this style for native vim. Please let me know if it does exist. If not, please consider starring or contributing as I am only a student and should really be focussing on my dissertation lol


r/vim 15d ago

Video Non conventional fonts for Vim/Neovim (retro, hacker, aesthetic, fonts)

Thumbnail
youtu.be
1 Upvotes

r/vim 18d ago

Need Help Vim for Verilog, System Verilog and UVM

9 Upvotes

Please suggest nice Plugins/Workflow for Verilog, System Verilog and UVM, which offer rich functionality(Like C, C++ plugins do).


r/vim 19d ago

Discussion 10+ year user, learned today how to easy swap two selected sections

222 Upvotes

This is so simple I feel dumb for not seeing it earlier.

1) visual mode select one part of text then d for delete

2) visual mode select the text you want it to replace then p for paste

3) go back to the original location and hit p for paste

that's it. Deleting the text places it in the register so you have it available in step 2. Replacing the text places it into the register, so you have it available in step 3.

For a decade plus I was adding extra steps like hitting Y or trying to avoid deleting the text so I have it available after I added the other, etc.

How many hours have I lost to not knowing this simple trick


r/vim 20d ago

Random Learning the motions with an ice cream van

41 Upvotes

This is doing the rounds on Hacker News and it wasn’t already posted here so thought I’d share it: https://vimscoops.dev


r/vim 21d ago

Plugin I missed the milestone: Belated Happy 100 to the Awesome-Vim9 list

Thumbnail github.com
32 Upvotes

Over 100 plugins now on the awesome-vim9 list. Many slept on, so have a look around.