neopunk.nvim.git - README

neopunk

A Neovim addon for browsing Gemini content using the openk.py command.

It will support others, too, but openk is the one I started with.

Features

Requirements

Optionally, ansi.nvim can add color to the page content by converting escape sequences.

Installation

Place this plugin in your Neovim plugin directory.

Add the following to your init.lua:

require('neopunk').setup()

Or, the lazy way:

{
    "https://thatit.be/neopunk.nvim.git",
}

Or using an example of the default config:

{
  "https://git.thatit.be/neopunk.nvim.git",
  config = function()
    require("neopunk").setup({
      key = "<Leader>.",
      execute_command = "openk.py --linkmode=end %s",
    })
  end
}

Usage

:Go [URL]

Fetches a Gemini page using opnk --linkmode=end and appends the content to the current buffer.

<Leader>. in Normal Mode

In text files (which includes Gemini content), pressing <Leader>. will automatically use the :Go command to fetch and display the link content.

Example

How you might use it

  1. Create or open a text file in Neovim
  2. Navigate to or insert a Gemini link (e.g., gemini://thatit.be)
  3. Press <Leader>.

The content from opnk --linkmode=end will be appended to your buffer.

What that might look like

Before navigation:

gemini://thatit.be

After navigation (escape sequences preserved, highly recommend :AnsiEnable with ansi.nvim):

# gemini://thatit.be
2026-02-19 21:14: Fetched gemini://thatit.be

    thatit.be (14 links)   (last accessed on Tue Feb 17 11:01:27 2026)
    THAT IT BE
    
    > “Yes, it is,” not “That it be.” And you don’t have to talk in that
    > stupid voice to me, I’m not a tourist!
    
    – Blackadder
    
    Among other content here is a collection of miscellaneous notes. They’re
    not as clear and coherent as the entry-points below. They’re more ZK-
    style notes that I’ve tagged as publishable so that I can review or
    reference them later. They can be found by browsing the tags or cross
    linked from other notes, or from the massive page of all notes.
    
    Posts
    
    [1] 2026-02-09 - launch email from offpunk
    [2] 2026-02-07 - Doing Not Much Tweaking
    [3] 2026-02-05 - Git and Email Patches
    [4] 2026-02-04 - NixOS Books
    [5] 2026-02-03 - added a pipeline
    [6] 2026-01-30 - AI so far
    [7] 2026-01-28 - git repos on thatit.be
    [8] 2026-01-11 - Epy for Epub
    [9] 2026-01-10 - AI in Neovim
    [10] 2026-01-01 - making yogurt
    
    Navigation
    
    [11] all notes
    [12] tags
    [13] atom
    [14] contact me
    
    (re)generated: 2026-02-16
[1] gemini://thatit.be/2026-02-09-15-31-46.gmi
[2] gemini://thatit.be/2026-02-07-18-54-20.gmi
[3] gemini://thatit.be/2026-02-05-22-03-16.gmi
[4] gemini://thatit.be/2026-02-04-22-16-06.gmi
[5] gemini://thatit.be/2026-02-03-08-38-56.gmi
[6] gemini://thatit.be/2026-01-30-16-14-51.gmi
[7] gemini://thatit.be/2026-01-28-06-37-54.gmi
[8] gemini://thatit.be/2026-01-11-09-50-48.gmi
[9] gemini://thatit.be/2026-01-10-11-01-40.gmi
[10] gemini://thatit.be/2026-01-01-09-10-40.gmi
[11] gemini://thatit.be/notes-all.gmi
[12] gemini://thatit.be/tags-all.gmi
[13] gemini://thatit.be/atom.xml
[14] gemini://thatit.be/contact.gmi

Further pages can be fetched by invoking over a numbered link. If it's from a numbered link in the page body it has the added bonus of using that link label in the heading it creates upon fetching the next page.


Last updated: 2026-02-19 21:22:18