• HiPhish
  • Grid Framework
    • Overview
    • Features
    • Examples
    • Gallery
    • Showcase
    • FAQ
    • News
    • Support

    • Buy Now 35$
  • Open Source
    • NTFS-Clone
    • IPS-Tools
    • roll
    • Newton's Method in C
    • Xeen Tools
    • Wolf3D Extract
    • Game Source Documentation
  • Vim/Nvim plugins
    • Info.vim
    • REPL.nvim
    • Quicklisp.nvim
    • jinja.vim
    • Guix channel
  • Blog
  • About
  1. blog
  2. categories
  3. vim
  • Project-local Vim settings the right way

    Published: 2020-02-08

    Sometimes you want to have a set of Vim settings specific only to a certain project. There are many tips out there how to achieve such a setup, but most of them expose the user to serious security risks. I am going to describe the fundamental problem and how to solve it. TL;DR: use the vim-addon-local-vimrc plugin.

    Continue reading…

  • Managing Vim plugins without a plugin manager

    Published: 2021-12-05

    Recently I have switched my Neovim setup to using the new native Vim package system directly instead of relying on a plugin manager. I had to use Git submodules for another project anyway, so I figured I could combine them with Vim packages and see how that might work out. It is actually working pretty well, to the point where I don’t think that I will be returning to plugin managers for the foreseeable future.

    Continue reading…

  • Neovim plugin settings with Lua metatables

    Published: 2022-03-15

    A lot of new Neovim plugins come with a setup function which lets you specify the settings of the plugin. Users are expected to call that function with a table as arguments which contains the user’s personal settings to override the defaults. This works, but Lua is all about tables, so let’s look at an alternative.

    Continue reading…

  • Introducing nvim-ts-rainbow2

    Published: 2023-03-02

    Two months in the making, it is time to finally release my new Neovim plugin officially: nvim-ts-rainbow2 (GitHub mirror). This plugin uses Neovim’s built-in Tree-sitter support to add alternating highlighting to delimiters. This is usually known as “rainbow parentheses”, but thanks to Tree-sitter we are not limited to parentheses, we can match any kind of delimiter, such as tags in HTML or begin/end blocks in some programming languages.

    Continue reading…

  • Introducing rainbow-delimiters.nvim

    Published: 2023-07-13

    Wait what, again? Yes, another rainbow delimiter plugin, a fork of a fork. The previous one nvim-ts-rainbow2 was built as a module for nvim-treesitter because that is what the original plugin did and what everyone else was doing. However, nvim-treesitter is deprecating the module system. This means nvim-ts-rainbow2 will eventually stop working, so we will need a new rainbow plugin sooner or later anyway.

    Continue reading…

  • Big change to rainbow-delimiters.nvim

    Published: 2023-11-12

    No, not another rewrite. Much better than that: the long-standing ugliness of highlighting being limited to only one node at a time has been fixed. Previously only one opening node and one closing node could be highlighted. This was perfectly adequate for most languages where you have one opening parenthesis and one closing parenthesis. However, consider HTML: we want to highlight the opening and closing tag, but if we highlight the entire top-level node we also highlight the attributes of the tag, which looks too vibrant. The alternative was highlighting the tag name, but this left the angle brackets without highlighting, which looked jarring as well.

    Continue reading…

  • Rainbow-delimiters.nvim version 0.3.0 released

    Published: 2023-12-24

    I have just published version 0.3.0 of rainbow-delimiters.nvim (GitHub mirror). This update brings in a number of the usual improvements to to queries and strategies, but more importantly it also makes configuration at runtime more flexible, but most importantly in light of the current date it also includes a fun little Christmas-themed strategy.

    Continue reading…

  • Testing Neovim plugins with Busted

    Published: 2024-01-29

    The most annoying part about writing plugins for Neovim has been the lack of a good test framework. There are a couple of frameworks, and Vader has been my favourite so far, but they all have their downsides. This made me wonder: why limit myself to Vim/Neovim test frameworks? We have a full Lua runtime, and other people already have solved the testing problem for Lua. Busted does 90% of what we need, so let’s fill in the remaining 10%. The following is based on my experience with adding tests to rainbow-delimiters.nvim.

    Continue reading…

  • Introducing Yo-Dawg.nvim

    Published: 2024-02-01

    Yo dawg, I heard you like Neovim, so I put a Neovim inside your Neovim, so you can edit while you edit! Ahem… anyway, in my previous post I proposed a plugin which would make it easier to control an embedded Neovim from within Neovim. So I went ahead and wrote yo-dawg.nvim (GitHub mirror), named after the “Yo dawg” internet meme.

    Continue reading…

  • Debugging Lua scripts running in Neovim

    Published: 2024-02-20

    In a previous blog post I wrote about testing Lua scripts in Neovim using the busted test framework. Today I want to look at how to debug Lua scripts in Neovim using the Debug Adapter Protocol (DAP). Just as before with busted, our problem is that we need to use Neovim as our Lua interpreter because we want to use Neovim’s Lua API. At the same time, the debug adapter expects the Lua interpreter to conform to Lua’s command-line interface. That’s right: we need another command-line interface adapter.

    Continue reading…

  • « First
  • ‹ Previous
  • 2 of 3
  • Next ›
  • Last »
Subscribe: RSS

Archive

  • 2026 (3)
  • 2025 (2)
  • 2024 (8)
  • 2023 (11)
  • 2022 (13)
  • 2021 (5)
  • 2020 (15)
  • 2019 (17)
  • 2018 (1)
  • 2017 (4)
  • 2016 (6)
  • 2015 (2)

Categories

  • organisation (15)
  • vim (24)
  • open-source (25)
  • misc (12)

Tags

  • html (11)
  • vim (21)
  • cocoa (1)
  • info (1)
  • rant (15)
  • lisp (21)
  • msgpack (3)
  • awk (1)
  • math (1)
  • unix (8)
  • guix (2)
  • linux (5)
  • lua (9)
  • elixir (1)
  • neovim (4)
  • web (6)
  • network (2)
  • markdown (2)
  • wine (1)
  • games (4)
  • git (2)
  • terminal (1)
  • unity3d (1)
  • python (2)
  • testing (3)
  • functional programming (1)
  • javascript (1)
  • css (1)

© 2015-2026, licensed under CC BA-SA 4.0

GitHubGitLab