I use neovim to write all of my notes in markdown and then use Obsidian to view and search my notes.
Simply put, Zettlekasten is a way of organizing your notes by creating a interconnected web/graph using metadata like tags and subject headings. Being able to group your notes based on metadata creates a powerful way of relating other ideas and thoughts together.
I use markdown because it makes writing professional and organized documents easy. Due to markdown and its simplistic nature it reduces your cognitive load when it comes to formatting and aesthetics. Markdown can also be converted to other formats including PDF and HTML. You might want to look at Pandoc for that.
Neovim has many plugins you can install makes writing markdown documents easy. Below will be a list of the plugins I use and brief explanation of what they do.
Zk is a program that allows you to create Zettlekasten based notes in the terminal. This program has an easy to set up configuration file in TOML and supports things like tags, searching, templates, and much more. You are able to use other programs like fzf and bat to make it easier to look through your notes. The creator of zk also built a neovim plugin called zk-nvim that allows you to interface with zk through neovim.
Obsidian is a free markdown editor that uses Zettlekasten as a framework for managing and organizing your notes. Even though I do not need Obsidian for my note taking setup, I really like the UI, visualizations, and overall format of the markdown documents.
I write my markdown documents/notes in neovim and then visualize and study them using Obsidian. My workflow whether I am taking notes or writing code always involves the terminal. Being able to have a streamlined note taking set up with neovim, the terminal, and Obsidian makes it very simple to take quick and organized notes.