My vim settings
  • Vim script 78.2%
  • Python 13%
  • Shell 8.8%
Find a file
2026-03-04 11:12:08 +00:00
.hooks Refactor .hooks/pre-merge-commit 2026-01-02 15:24:09 +00:00
after Add alternate fold markers 2026-01-24 13:02:08 +00:00
autoload Rename the function to set the spellfile 2026-02-11 16:40:26 +00:00
bin Upgrade pyright to 1.1.408 2026-01-10 09:36:20 +00:00
doc/decisions Include the path inside each file 2025-10-08 12:15:27 +01:00
ftplugin Set --jpath for jsonnet-lint 2026-03-04 10:35:14 +00:00
LICENSES Remove support for rst 2025-10-07 14:33:00 +01:00
pack Update ALE 2026-03-04 11:09:00 +00:00
syntax Hide more noise in focus mode 2025-11-30 10:41:06 +00:00
tests Add alternate fold markers 2026-01-24 13:02:08 +00:00
.en.utf-8.add Move the Incus commands to a script 2025-10-05 08:39:56 +01:00
.gitignore Tidy up .gitignore file 2025-10-19 12:23:12 +01:00
.gitmodules Switch to a personal fork of ALE 2026-01-10 09:33:53 +00:00
.lintstagedrc.yaml Include the path inside each file 2025-10-08 12:15:27 +01:00
.prettierignore Run prettier on files in pack/vendored/ 2025-10-08 12:11:14 +01:00
.ruff.toml Add a configuration file for ruff 2025-10-08 12:11:14 +01:00
ansible.cfg Avoid an Ansible warning about interpreter discovery 2025-03-26 22:16:52 +00:00
filetype.vim Move the gitignored filetype.vim 2025-10-19 12:22:40 +01:00
hosts Rely on default for ansible_python_interpreter 2025-01-07 22:28:19 +00:00
README.md Upgrade to Fedora Linux 43 2025-11-30 09:37:04 +00:00
REUSE.toml Document manual tests 2025-11-30 10:41:06 +00:00
site.yaml Upgrade pyright to 1.1.408 2026-01-10 09:36:20 +00:00
vimrc Rename the function to set the spellfile 2026-02-11 16:40:26 +00:00

maxwell-k/vimfiles

Quick start on Fedora latest

Command to clone this repository and its sub-modules as ~/.vim:

git clone --recurse-submodules https://codeberg.org/maxwell-k/vimfiles.git ~/.vim

Command to install the appropriate system packages:

sudo dnf install --assumeyes vim-enhanced ansible nodejs fzf git uv

Command to run the playbook:

cd ~/.vim \
&& ansible-playbook site.yaml

Command to set up pre-commit hooks:

git -C ~/.vim config core.hooksPath ~/.vim/.hooks

Command to check everything is working:

tests/run

Further details about testing are in tests/README.md.

Supported operating systems

Regularly tested on Alpine Linux and Fedora. Infrequently tested on Debian, Ubuntu and Mac OS.

Contents

This repository contains about 1,300 lines of vim script accumulated since 2012. Much of it will not be of interest to anyone but the original author; a few "features" may be:

Decisions

  1. Testable in Linux containers
  2. Ansible playbook that does not use admin privileges
  3. Name the repository vimfiles

Testable in Linux containers manually

There are additional costs — time and resource — to setting up a continuous integration (CI) system. Codeberg, the solution I've chosen for git hosting, does not have a preferred CI system, only a beta for Woodpecker. There's a risk I'll implement one system and then, later I will need to implement another. Configuring a CI system is not time well spent right now. Today the costs or running CI outweigh the benefits.

Regularly running tests manually inside a Linux container ensures that tests pass on a fresh system install.

Ansible playbook that does not use admin privileges

A limited amount of user-specific configuration is in scope for this repository, so that it is more valuable independently.

It is helpful to store some configuration tasks, for example generating help tags, alongside the vim script. I prefer to use Ansible for configuration.

No configuration tasks stored in this repository should use administrator privileges. System configuration is out of scope for this repository.

Name the repository vimfiles

Vim help uses vimfiles as an alternative to .vim, see :help vimfiles. The string dotvim does is only incidentally mentioned in :help.

There's a comparable number of repositories on GitHub called dotvim and vimfiles. More are called dotvim, but better known authors use vimfiles.

Overall I prefer the name vimfiles.

Git configuration

This repository uses approximately twenty git sub-modules. It may be helpful to set git config diff.ignoreSubmodules dirty so that git status completes quickly.

Command to push changes:

git push git@codeberg.org:maxwell-k/vimfiles.git

Running the test suite with Linux containers

Podman and Alpine Linux latest

Command to run the test suite using Podman and the alpine:latest image:

tests/podman

Incus and Fedora Linux 43

Command to run the test suite using Incus and the images:fedora/43/cloud image:

tests/incus

The script above will use Cloud-init to configure an Incus container before running the tests. The Cloud-init steps include installing packages and running the Ansible playbook site.yaml.

Command to follow Cloud-init output:

incus exec c1 -- tail -f /var/log/cloud-init-output.log