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
The language Server Protocol (LSP) can use the Markdown Language Server to provide enhanced Markdown editing.
| |
| Index Card Notebook |
The configuration for the LSP can be 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