A Neovim plugin that integrates with the i
command-line journaling tool, opening a modal dialogue for creating journal entries at scheduled intervals.
![image](https://private-user-images.githubusercontent.com/6867511/313307718-3de61f72-27be-498c-9853-c636e8cdf742.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQ3ODkzNTgsIm5iZiI6MTcyNDc4OTA1OCwicGF0aCI6Ii82ODY3NTExLzMxMzMwNzcxOC0zZGU2MWY3Mi0yN2JlLTQ5OGMtOTg1My1jNjM2ZThjZGY3NDIucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDgyNyUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA4MjdUMjAwNDE4WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZjcwYWRlYWQ3NGU4NGVjOTg4NzYxNGVhNjAxNjkwY2E4OGU4NjQ3Yzk4YTI1NWE1ODhiZGY1YzkzOTliZmZmMiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.5maloxmz-Qupn9sXtcckWDjUQvL3oVvFlh92MbEWrNc)
- Opens a modal dialogue for creating journal entries at configurable intervals.
- Submits journal entries directly to the
i
tool. - Customizable dialogue window size and default keymap.
- Automatically schedules the journal dialogue to open at the specified intervals.
- Neovim 0.5.0 or later
- The
i
command-line journaling tool (https://github.com/kungfusheep/i)
You can install the plugin using your preferred package manager, below is an example using Lazy:
{
"kungfusheep/i.nvim",
event = "VeryLazy",
config = function()
require("i").setup()
end,
You can customize the plugin's behavior by calling the setup
function in your Neovim configuration file:
require("i").setup({
use_schedule = true, -- Automatically open the dialogue at the specified intervals
launch_minutes = { 10, 40 }, -- Open the dialogue at 10 and 40 minutes past each hour
dialogue_width = 50, -- Set the dialogue window width to 50 columns
dialogue_height = 10, -- Set the dialogue window height to 10 lines
keymap = {
new_entry = "<leader>ie",
quit_entry_normal = "<ESC>",
quit_entry_insert = "<C-c>",
},
})
The available configuration options are:
use_schedule
: Whether to automatically schedule the journal dialogue to open at the specified intervals (default:true
).launch_minutes
: A table of minutes of the hour to open the journal dialogue (default:{ 10, 40 }
).dialogue_width
: The width of the journal dialogue window (default:50
).dialogue_height
: The height of the journal dialogue window (default:10
).keymap
: The default keymap to open the journal dialogue (see above).
- The journal dialogue will automatically open at the configured minutes of the hour.
- To manually open the journal dialogue, use the configured keymap (default:
<leader>ie
) or the:IEntry
command. - Enter your journal entry in the dialogue window.
- Press
<Enter>
to submit the journal entry using thei
tool.
:IEntry
: Opens the journal dialogue manually.
This plugin integrates with the i
command-line journaling tool (https://github.com/kungfusheep/i). When you submit a journal entry using the plugin, it is added to your i
journal repository.
You can then use the various features provided by the i
tool to manage, analyze, and interact with your journal entries. Some notable features include:
- Listing and filtering journal entries based on time ranges, mentions, and tags.
- Generating weekly digests and reminders using the GPT API.
- Analyzing your journal with arbitrary prompts using the GPT API.
- Executing Git commands on your journal repository for advanced operations.
For more details on how to use the i
tool and its features, please refer to its documentation: https://github.com/kungfusheep/i#readme
This plugin is released under the MIT License.
Contributions are welcome! If you find any issues or have suggestions for improvements, please submit a pull request on the GitHub repository.