-
fixed long standing nvim startup error
Here's the diff, this is it. The error On first install of my dotfiles I'm presenting with this flashbang of an error filling the screen with red background. Its kinda hard to read, I'm not deep into lua and reading their tracebacks. It pops up in this pager that if I scroll too far it quits and the error is gone before I know what it is or how it got there. image For the longest time it just felt like it randomly showed up without much warning. I sent ai at the issue I tried some chatgpt and
-
testing nvim installs
Testing fresh nvim installs can be a pain, and hard to di without borking your known good install. I've been using to run a test nvim in a sandbox that wont bork my main install. This usually runs for me in under a minute, can be down under 15s if I remove some of the TreeSitter installs at the end. This beats a full docker build of my full devtainer to test out nvim packaging woes. I've started to use this as a recipe to run before deploying a new version of my dotfiles. So far its pairi
-
vim date
When I want to put a date in a document like a blog post from vim I use !!date from insert mode. Note that entering from normal mode puts you in command mode with filled out. This runs a shell command, i.e. for this example. It outputs the following Fri Jan 31 08:46:11 PM CST 2025 You can also pass in a date such as tommorrow by pasdding in the -d . It outputs the following Sat Feb 1 08:53:20 PM CST 2025 codeium just taught me this one with autocomplete This outputs the following 2025-
-
setting up nvim-manager starship prompt
I built out a tool for myself to manage my nvim configuration, and I wanted to quickly see which one I am running in my starship prompt. Here's the config I ended up with. It warns if the environment variable is not set, and it shows which nvim I am using if it is set.
-
nvim-manager
I recently built a cli application as a nearly-one-shot-app called nvim-manager . It manages your nvim dotfiles install. screenshot-2025-01-31T21-21-40-707Z.png {.more-cinematic} Why {.chat-left} Don't we have stow? {.chat-right} Ya, thats not enough. {.chat-left} Why not?? {.chat-right} Inevitably shit goes sideways and I break my vim install. How is nvim manager any better nvim-manager allows you to install pinned versions of your dotfiles, your friends dotfiles, and distros in ~/.config. Thi
-
💠olimorris/codecompanion.nvim: ✨ AI-powered codin...
Here's my thought on 💠olimorris/codecompanion.nvim: ✨ AI-powered coding, seamlessly ... Definitely need to give codecompanion.nvim a try, it looks like a…
-
💠WaylonWalker/nvim-manager: manage dotfiles with ...
Here's my thought on 💠WaylonWalker/nvim-manager: manage dotfiles with nvim_appname New release out for nvim-manager that supports installing pre-configured…
-
💠Releases · WaylonWalker/nvim-manager
Here's my thought on 💠Releases · WaylonWalker/nvim-manager First release of is out. Your dotfiles change a lot, sometimes it's hard to manage all of the…
-
💠GitHub - ngalaiko/tree-sitter-go-template: Golan...
Here's my thought on 💠GitHub - ngalaiko/tree-sitter-go-template: Golang template gra... This setup fixed my nvim syntax highlighting in helm templates. !!!…
-
💠Wrapping your favorite CLI in neovim - YouTube
Here's my thought on 💠Wrapping your favorite CLI in neovim - YouTube cool video on expanding vim with cli. piping commands into vim piping commands into vim…
-
💠Saghen/blink.cmp: Performant, batteries-included...
Here's my thought on 💠Saghen/blink.cmp: Performant, batteries-included completion pl... A new completion plugin that I might give a try. Readme makes it…
-
💠E576: Error while reading ShaDa file: there is a...
Here's my thought on 💠E576: Error while reading ShaDa file: there is an item at posi... I hit an interesting error after updating my nvim plugins today.…
-
💠These are SICK, gonna be using this a lot. (Than...
Here's my thought on 💠These are SICK, gonna be using this a lot. (Thanks @evantraver... helix inspired treesitter select outwards and select inwards. !!!…
-
💠Support regex substitution command · Issue #2232...
Here's my thought on 💠Support regex substitution command · Issue #2232 · helix-edito... Here is a really good vim substitute with regex capture groups,…
-
💠Switching Configs in Neovim • Michael Uloth
Here's my thought on 💠Switching Configs in Neovim • Michael Uloth Switching between nvim configs can be really easy to do since they implemented the…
-
Vim-gq
Vim has a handy feature to format text with . You can use it in visual mode, give it a motion, or if you give it it will format the current line. I use this quite often while writing in markdown, I do not use softwraps in vim, so quickly formats my current line into a paragraph. Once I have done this for a single line one time I typically switch to the motion for around paragraph to format the whole paragraph and not just the current line. before formatting vim-gq-20240805122634078.we
-
💠Find And Replace one eyed kirby
Here's my thought on 💠Find And Replace one eyed kirby another great use and demo of the one eyed fighting kirby !!! note This post is a thought . It's a…
-
Refactoring one line links into wikilinks
Previously I had setup a feature of my website to expand one line links into a card. This was not a standard, even to the point that some formatters wrap the links with , thus breaking my custom plugin. Moving to the wikilink standard will allow my markdown posts to work accross more site builders without custom integrations. [[ expand-one-line-links ]] What is a wikilink Wikilinks are standard to a lot of wikis written in markdown. markdown-it-wikilinks {.hoverlink} The wikilink syntax is a
-
💠My harpoon config
Here's my thought on 💠My harpoon config Install it harpoon config !!! note This post is a thought . It's a short note that I make about someone else's…
-
💠From Vim To Zed - YouTube
Here's my thought on 💠From Vim To Zed - YouTube I found this statement quite intriguing. multi-cursors are just macros. This is quite a philisophical video…
-
💠My New Python Lsp Setup
Here's my thought on 💠My New Python Lsp Setup I figured out the killer combination for python lsp servers, ruff and jedi! ruff does all of the diagnostics…
-
💠The One Eyed Fighting Kirby
Here's my thought on 💠The One Eyed Fighting Kirby I've heard prime say just give it the one eyed fighting kirby so many times, and execute it few times, and…
-
nvim stupid gf bind
So after months of fighting with gf not going to template files, I finally decided to put in some effort to make it work. This was the dumbest keybind in my config, that I copied from someone else without understanding it. What I am trying to do I have jinja templates in a directory called . I want to bind gf to open a template file, but it is trying to open a new file What did not work I tried all sorts of changes to my path, but it still didn't work. What I found after digging into my keyma
-
💠nvim: `vim.o.cmdheight=0`
Here's my thought on 💠nvim: I fixed my missing macro recording indicator that I lost and was never quite sure why. (because I forgot that I set…
-
💠Diagnostic - Neovim docs
Here's my thought on 💠Diagnostic - Neovim docs Clear out lsp diagnostics in nvim. !!! note This post is a thought . It's a short note that I make about…
-
💠Bob Belderbos on X: "Forget Python for a sec, he...
Here's my thought on 💠Bob Belderbos on X: "Forget Python for a sec, here's how Vim h... I need to learn regex capture groups better. This is so dang…
-
💠aca/emmet-ls: Emmet support based on LSP.
Here's my thought on 💠aca/emmet-ls: Emmet support based on LSP. This is the greatest nvim emmet plugin I have tried. In the past I had tried the vim plugin…
-
💠Formatting on save · jose-elias-alvarez/null-ls....
Here's my thought on 💠Formatting on save · jose-elias-alvarez/null-ls.nvim Wiki neovim stopped formatting on save for me awhile ago and I have just been…
-
💠kndndrj/nvim-dbee: Interactive database client f...
Here's my thought on 💠kndndrj/nvim-dbee: Interactive database client for neovim A neovim database client that I need to check out. !!! note This post is a…
-
💠LazyVim Installation
Here's my thought on 💠LazyVim Installation Lately in 2023 I have been leaning on lazyvim for my new setups where I am not necessarily ready to drop my full…
-
extending vim with shell commands
Vimconf 2022 The pitch Extending vim does not need to be complicated and can be done using cli tools that you might already be comfortable with. Examples, setting up codeformatters with autocmds, using lf/ranger as a tui file manager, generating new files using a template framework like cookiecutter/copier/yeoman, using ag to populate your quickfix. run a command formatters File Navigation FloatTerm vimgrep over hidden files I know all the files that I care to search for are called build.yml, an
-
nvim navic
With the latest release of version of nvim 0.8.0 we get access to a new winbar feature. One thing I have long wanted somewhere in my nvim is navigation for pairing partners or anyone watching can keep track of where I am. As the driver it's easy to keep track of the file/function you are in. But when you make big jumps in a few keystrokes it can be quite disorienting to anyone watching, and having this feedback to look at is very helpful. "cybernetic soldier working on a rusting tape machine
-
vimgrep open buffers
How to vimgrep over hidden files. I needed to delete all build pipeline steps that were named . I currently have about 60 projects running from the same template all running very similar builds. In the past I've scripted out migrations for large changes like this, they involved writing a python script that would load the yaml file into a dictionary, find the corresponding steps make the change and write it back out. Today's job was much simplar, just delete the step, were all steps are surrou
-
vim plugged snapshot
A few of my friends and I all just borked our neovim configs during a plug update, and because none of us were using it was painful to recover from. https://twitter.com/pypeaday/status/1524882893914398732 Lucky for me I did it on a home machine that I only occasionally edit from, so I could still take the snapshot from a working machine before taking the plunge into fixing everying. Why snapshot Snapshotting ensures that you install the same git sha on every single plugin. This way when you ha
-
Automatically Generate a list of Markdown Links in...
Let's make a vim command to automatically collect all the links in these posts at the end of each article. Regex confuses the heck out of me... I don't have my regex liscense, but regex can be so darn powerful especially in an editor. Step one Before you run someone's regex from the internet that you don't fully understand, check your and make sure you are all clear with git before you wreck something Inspiration Something that I have always appreciated form Nick Janetakis is his links secti
-
Open Files with Nvim Remote
I recently found a really great plugin by mhinz to open files in neovim from a different tmux split, without touching neovim at all. Installation neovim-remote is not a neovim plugin at all, it's a python cli that you can install with pip. Unlike the repo suggests, I use pipx to install . How I use it I have this added to my that is in every one of my projects. This will tie a neovim session to that directory, and all directories under it. In my workflow I open a tmux session for each pr
-
Vim remaps use cmd in place of :
Anyone just starting out their vim customization journey is bound to run into this error. I did not get it I'll admit, in hindsight it's very clear what this is trying to tell me, but for whatever reason I still did not understand it and I just used a : everywhere. From the docs If you run you will see a lot of reasons why you should do it, from performance, to hygene, to ergonomics. You will also see another clear statement about how to use . When to map with a : You still need to map your
-
Neovim Config for Git
Creating a minimal config specifically for git commits has made running much more pleasant. It starts up Much faster, and has all of the parts of my config that I use while making a git commit. The one thing that I often use is autocomplete, for things coming from elsewhere in the tmux session. For this specifically is super helpful. The other thing that is engrained into my muscle memory is for escape. For that I went agead and added my and with no noticable performance hit. Here is
-
Tmux and Vim Clipboard for Ubuntu
One of the first things I noticed broken in my terminal based workflow moving from Windows wsl to ubuntu was that my clipboard was all messed up and not working with my terminal apps. Luckily setting tmux and neovim to work with the system clipboard was much easier than it was on windows. First off you need to get if you don't already have it provided by your distro. I found it in the apt repositories. I have used it between Ubuntu 18.04 and 21.10 and they all work flawlessly for me. I have
-
Markata Filters as Telescope Pickers in Neovim
I often pop into my blog from neovim with the intent to look at just a single series of posts, , , or just see todays posts. Markata has a great way of mapping over posts and returning their path that is designe exactly for this use case. Markata listing out posts from the command line {.wide} To tie these into a Telescope picker you add the command as the find_command, and comma separate the words of the command, with no spaces. I did also in there so that the newest posts are closest to
-
Rename Python Variables with nvim
I don't use refactoring tools as much as I probably should. mostly because I work with small functions with unique names, but I recently had a case where a variable name was everywhere and I wanted it named better. This was not possible with find and replace, because there were other 's in this region. I first tried the nvim lsp rename, and it failed, Then I pip installed rope, a refactoring tool for python, and it just worked! Once you have rope installed you can call rename on the variabl
-
Remove Vim Tab Characters
I've been stuck many times looking at a vim buffer with little question marks at the beginning of each line and trying to get rid of them. for so long I didn't know what they were so trying to get rid of them was impossible. example of what the tab character renders as in my editor It turns out they are tabs, and you can get rid of the little leading question marks with this substitution command.
-
List all the files containing a phrase
One of the most useful skills you can acquire to make you faster at almost any job that uses a computer is getting good at finding text in your current working diretory and identifying the files that its in. I often use the silver searcher or ripgrep to find files in large directories quickly. Both have a sane set of defaults that ignore hidden and gitignored files, but getting them to list only the filenames and not the matched was not trivial to me. I've searched throught he help/man pag
-
Serve html from your command line
When I first moved to vim from and ide like vscode or sublime text one of my very first issues was trying to preview my website at . There had always just been a button there to do it in all of my other editors, not vim. There are not many buttons for anything in vim. While there is probably a plugin that can run a webserver for me in vim, it's not necessary, we just need the command line we are already in. running a separate process You will need a way to run another process alongside vim,
-
Opening files in vim from output of command
Many command line tools can output a list of files, this is quite powerful. I often want to search for something, then open it from a fuzzy picker. This can be done with fzf in the terminal, but often I am already in vim and I want to open it inside my current session. Telescope how to pass a custom command to telescope Telescope is the fuzzy file finder I use every day inside of neovim. Its pretty fantastic and easy to extent like this. This first example I am only passing in files from the
-
Finding hidden (dotfiles) using Telescope in neovi...
Finding hidden files using Telescope as you fuzzy file finder is not too hard, its a single flag passed in. Then it will use whichever file finder it can find ['fd', 'fdfind', 'rg --files', 'find', or 'where'] in that order. These tools each have their own way of handling hidden files, but telescope takes care of that so all you need to do is pass in . I have this keymap set to help me list out all files including hidden files using the pnumonic go edit hidden. I use ge for quite a few differ
-
fugitive verbose commit
Fugitive comes with a pretty sick way to commit files and see the diff at the same time with verbose commit. Opening the fugitive menu with brings up your git status, you can stage files with , unstage them with , toggle them with , and toggle their diff with . Once you have staged your files for commit, you can commit with , but today I found that you can commit verbose with . This brings up not only a commit widow with your git status shown, but the diff that you are about to commit
-
You must use augroup with autocmd in vim | Here's ...
If you are running vim autocmd's without a group, you're killing your performance. Granted your probably not sourcing your vimscript files with autocmd's too often, but every time you source that vimscript you are adding another command that needs to run redundantly. https://youtu.be/2ITTn4Dl0lc This is what I had Not silky smooth For WAAY too long I have had something like this in my vimrc or init.vim. It formats my python for me on every save, works great except if I source my dotfiles mor
-
Setup a yaml schema | yamlls for a silky smooth se...
I've gone far too long without a good setup for editing yaml files, I am missing out on autocomplete and proper diagnostics. This ends today as I setup yaml-language-server in neovim. https://youtu.be/xo4HrFoKF4c {.youtube-embed} The video for this one is part of a challenge-playlist I put out for myself to constantly improve my dotfiles for all of December. init.vim I have my setup to only source other modules, if you want everything in a single config, feel free to do as you wish. I broke mi
-
How linux users install a text editor
In honor of the neovim 0.6.0 release, I decided to do a funny skit installing neovim, and fix up my install script in the process as part of my challenge to fix up my dotfiles. I ran into one snag where I was not updating the repo that I cloned. I moved it to the directory I now keep third-party git repos and set it to update with ansible. https://youtu.be/64oKLphhBuo The thing that took me the longest to realize was.... I had a path issue pointing me to an old install of the appimage over the
-
I made a neovim plugin
I've slowly adding more and more lua functions into my neovim configuration, and recently I noticed a pattern for a class of functions that reach out to run shell commands that can be abstracted away. https://youtu.be/8m5ipBuopPU {.youtube-embed} Telegraph.nvim Check out the project readme for the most up to date details on the plugin itself. Motivation I want a simple way to make remaps into shell commands that can open new tmux windows, popups, or just run a command with context from the edit
-
Notes for second vim-fundamentals course meetup
newline another Mahesh Subrajmanium Venkatachalam - Plugins | Installing a Theme Hunter Phillips - Quickfix | Offline Ordering with getqflist Andrea Wackerle - Search & Replace | Macros Matthew Fletcher - Registers | Advanced Motions Jump, Delete, & Select | Advanced Motions: Paste & Move Nicholas Payne - My First Vim Plugin | What Makes a Good Plugin Zev Averbach - Harpoon | Wrap up Plugin-manager get a plugin manager unless you are going full lua, most people use vim-plug by the great junegunn
-
Modal jumping
-
python lsp setup
Setting up python with the native nvim>0.5 lsp was mr lsp-config https://github.com/neovim/nvim-lspconfig pyls#190 https://github.com/palantir/python-language-server/issues/190 mypy Getting mypy working with lsp was tricky for me. I had some issues trying to run mypy in ci and pyright in my editor and I really wanted them to match.
-
How to compare two files in vim
-
Vim Wsl Clipboard
I've long used neovim from within windows wsl, and for far too long, I went without a proper way to get text out of it and into windows. wsl has access to cmd applications wsl can access clip.exe. You can do some cool things with it, such as cat a file into the clipboard, sending output from a command to the clipboard, or set an autocmd group in vim to send yank to the windows clipboard. using clip.exe Let's say you want to send a teammate the tail of a log file over chat. You can tail the file
-
Vim Replace Visual Star
Replacing text based on whats in the current search register is a quite handy tool that I use often. I believe I picked this tip up from Nick Janetakis, check out his YouTube channel for some amazing vim tips. https://www.youtube.com/watch?v=fP_ckZ30gbs {.hoverlink} If there is one thing that I Like most about vim it's the ability to hack on it and make it work well for you. Replacing text in vim Vim can often be a bit verbose, but that's ok because we can hack on it, and make our own shortcuts
-
Save Vim Macro
If you are like me, you have created a macro or two that is pure glory, and you forget how you made it after a day or so, or you immediately want to store it away as a custom keybinding. As with most things with vim, it's easy to do once you understand it. Creating a Macro One of the earliest things we all learn to do in vim is to create macros, custom sets of functionality stored in a register that can be replayed later. To create a macro, get into normal mode, then type followed by a letter
-
Live Substitution In Neovim
Replacing text in vim can be quite frustrating especially since it doesn't have live feedback to what is changing. Today I was watching Josh Branchaud's Vim-Unalphabet series on Youtuve and realized that his vim was doing this and I had to have it. https://twitter.com/_WaylonWalker/status/1346081617199198210 How to do it I had to do a bit of searching and found a great post from vimcasts that shows exactly how to get the live search and replace highlighting using :h inccommand Add this to you
-
Keep Location List Closed
Vim's (neovim in my case) location list can provide some very useful information while developing. Mine gives me information about linting and type checking errors with fairly little config. Generally, it sits nicely at the bottom of the screen and barely affects me. Other times, especially while zoomed way in during a presentation, it just gets in the way. location list eats the screen Location List eating up the screen while I am zoomed in and trying to live code Toggling the location list
-
Vim Notes
vim notes nvim lua norcalli/neovim-plugin nvim lsp python-lsp/python-lsp-server Using c to change text I have gone quite awhile without using and instead using . The reason that I started using is because it automatically places you into insert mode. This not only saves me one keystroke for commands such as is now , but it also works with the repeat command!!! This is huge. When refactoring a document I had been creating a macro to change one word to another, using instead of a