Personal Knowledge Management With VIM and Logseq
Personal Knowledge Management (PKM) systems have emerged as powerful tools for individuals to collect, organize, and retrieve information effectively. At its core, a PKM system serves as a centralized hub for storing personal insights, notes, ideas, and resources, enabling users to cultivate a repository of knowledge tailored to their unique needs and interests.
Logseq
Logseq is a versatile tool that can be effectively utilized for journaling, an important part of a PKM. An empty Logseq graph is a folder with a predefined structure, shown below.
+-- journals
+-- logseq
| +-- .recycle
| +-- config.edn
| +-- custom.css
+-- pages
| +-- contents.md
Each day's entry will be stored in a text file within the journals directory. The setting for the preferred date format is shown in the figure below.
Wiki.vim
The Logseq graph filesystem structure closely aligns with the organization created by the Vim plugin wiki.vim, especially when configured as follows:
" wiki.vim customization
let g:wiki_root = expand("%:p:h")
let g:wiki_filetypes=["md"]
let g:wiki_link_target_type='md'
let g:wiki_mappings_use_defaults='all'
let g:wiki_mappings_local = {
\ '<plug>(wiki-journal-prev)' : '<c-h>',
\ '<plug>(wiki-journal-next)' : '<c-l>',
\}
call wiki#init#option('wiki_index_name', 'contents')
call wiki#init#option('wiki_journal', {
\ 'name' : 'journals',
\ 'root' : '',
\ 'frequency' : 'daily',
\ 'date_format' : {
\ 'daily' : '%Y_%m_%d',
\ 'weekly' : '%Y_w%V',
\ 'monthly' : '%Y_m%m',
\ },
\})
LSP
LSP can be implemented with the Language Server Protocol (LSP) plugin utilizing the Markdown Language Server for enhanced markdown editing capabilities.
The configuration for the LSP can included in the root directory of the graph with the following .moxide.toml file:
dailynote = "%Y_%m_%d"
heading_completions = true
title_headings = false
unresolved_diagnostics = false
semantic_tokens = false
tags_in_codeblocks = true
references_in_codeblocks = true
new_file_folder_path = "C:\\Users\\Seve\\workspace\\GridMemo\\pages"
daily_notes_folder = "C:\\Users\\Seve\\workspace\\GridMemo\\journals"
include_md_extension_md_link = false
include_md_extension_wikilink = false
hover = false
Calendar and Fuzzy File Finder
The last segment of the video below demonstrates the integration of Vim's plugin calendar and the fuzzy file finder, enhancing navigation within the graph.
The fuzzy file finder conveniently hides supporting files and directories using the following .fdignore file.
logseq
vimrc.local