Enhancing Note-Taking Efficiency: Neovim, Markdown, and Git/GitHub
Tags: github, git, markdown
Published: 2024-02-03 15:58:50

In this post, I want to share how I use Neovim to take notes in markdown, and git/github for storing and syncing the notes. This is a simple and powerful way to organize your thoughts, ideas, and projects without relying too much on any third-party service that might compromise your privacy, or convenience.

Neovim is a fast, modern text editor that supports many plugins and features. I chose this over Vs-code because it is faster to open.

Markdown is a lightweight markup language that lets you format your text using simple syntax. You can create headings, lists, tables, links, images, code blocks, and more with just a few characters. Markdown is widely used for writing documentation, blogs, books, and websites. It is easy to read, and write and can be converted to other formats like HTML or PDF. I also use it to write my resume, as explained in this [post](https://dev.to/dunkbing/managing-my-resume-with-git-a-version-control-approach-7hk).

For syncing and storing the notes, I use git and Github. Because Github offers a 5Gb limit for a repository, I think it is enough for me. You can use other tools for syncing like Rsync or Rclone.

So how do I use these tools to take notes? Here are the steps I follow:

1. I create a folder for each topic or project I want to take notes on. For example, I have a folder called "notes" where I store all my notes.

![notes](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qu6hf0f8jwxg2uwdy5e3.png)

2. Navigate to the folder I want to work on and open Neovim. I'm using Lazyvim btw, it has a plugin pre-installed called NeoTree that shows me a file explorer on the left side of the screen.
3. Write my notes with markdown, and push the changes to GitHub, where I can access them from any device. You can also set up a crontab to run the sync command periodically, something like mine:


![sync](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eccch9q1v9aozumek6p2.png)

That's it! This is how I take notes using neovim, markdown, and git/github. You might wonder why I prefer this approach over other note-taking services like Apple Notes, Google Keep, or Notion. Here are some of the reasons:

- I tried Notion once, but it was too slow on my laptop, and I don't like electron apps.
- I was going to try Obsidian, but it's electron-based.
- Apple Notes is nice, but it only works on Apple devices. The same goes for Sticky Notes (Windows).
- Google Keep doesn't seem to have a desktop app 🤔.
- I can use any text editor I like. Neovim is my favorite, but you can use any editor that supports markdown and git. You can also customize your editor with plugins and settings to suit your preferences and workflow.
- I can use any platform I like. Neovim, markdown, and git are cross-platform and work on Windows, Mac, Linux. You can also access your notes from any web browser by visiting your GitHub repository.
- I can leverage the power of markdown and git for other purposes. Markdown and git are not only useful for taking notes, but also for writing documentation, blogs, books, websites, and more. You can use tools like **pandoc** to convert your markdown files to other formats or generate static websites from them. You can also use git hooks or GitHub actions to automate tasks like testing, deploying, or publishing your content.

This approach might not suit everyone's needs or preferences. You might find it too complex or too simple for your taste. You might prefer a more graphical or more minimalist interface. You might need more features or integrations that these tools don't provide. That's fine. There is no one right way to take notes. You should use whatever tools and methods work best for you.