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.
My article for the website Learn X in Y minutes about Vim scripting has been accepted; the article teaches you how to get started with Vim's built-in custom scripting language in a very concise manner. It has been quite an enjoyable topic to write about and I even ended up learning a few new tricks myself.
I have recently switched my Neovim setup to use lightline.vim and at the same time I was experimenting with colour schemes. Getting lightline to switch colours along with the rest of the editor is non-trivial, but I think I have figured it out, so I am going to share my setup.
Vim has good support for Scheme, but the problem with Scheme is that every implementation adds its own features to the language. My guile.vim plugin aims to improve support for GNU Guile by augmenting these settings. It can attempt to detect when a Scheme file is Guile-specific and it adds syntax highlighting for Guile-specific forms.
NCM2 is a plugin for Neovim and Vim which provides users with a unified completion menu. By default it displays nothing, users need to add sources for completion. These plugins instruct NCM2 on how to get completion candidates for a particular use-case, such as words in the current buffer, or function names in a programming language. The NCM2 documentation explains how to write the individual pieces of a source, and in this blog post I am going to dive into how to connect those pieces into a working source.
I have written a Common Lisp completion source for NCM2, built upon Vlime. It provides asynchronous Common Lisp completion and should work in both Vim and Neovim, depending on how well NCM2 and Vlime themselves work.
I have set up a channel for GNU Guix to build Neovim. This channel serves as an experimental staging ground for porting Neovim (and perhaps other related projects in the future) to the Guix functional package manager. When the packages are deemed stable and correct enough they will be submitted to Guix proper.
One of the new features of Neovim is its ability to write plugins in any programming language, provided that there is a plugin host available. I have wanted to play around with the Common Lisp host for a while, and I like for something useful to come out of it in the end, so I created Quicklisp.nvim, a plugin which allows users to manage Common Lisp libraries from inside Neovim.
Integrating a REPL in Vim has been a difficult issue in the past, but with Nvim's built-in terminal emulator it is just a few commands away. My new REPL.nvim plugin now puts the REPL only one command away, for any programming language you wish. The end goal is to have a complete generic and configurable REPL framework which can be customised to the needs of any language and which forms a solid foundation for other plugins as well.
There is a new project up at the Workshop: info.vim, a Vim plugin which implements a complete reader and browser for info documents from within Vim. This is similar to the standalone
infoprogram or the Emacs info mode.