nvim-telekasten / telekasten.nvim

A Neovim (lua) plugin for working with a markdown zettelkasten / wiki and mixing it with a journal, based on telescope.nvim
MIT License
1.37k stars 86 forks source link

[FR] Home folder switcher #155

Closed adrianocorrea closed 2 years ago

adrianocorrea commented 2 years ago

Please confirm

Is your feature request related to a problem? Please describe. The release of Vim9 might become a fork in the road for Vim and Nvim users and plugin developers. Vim9 comes with Vim9script, a scripting language not supported by Nvim (see the Nvim's non-goals). Therefore, when some plugins start migrating from vimscript to Vim9script, they will no longer work on Nvim.

A popular plugin is VimWiki, originally released on May 4, 2008. It has over 7.4k stars on GitHub and many users. VimWiki was also a solution for people that wanted to implement a Zettelkasten in Vim in the past.

Due to VimWiki's legacy code base, the project is unlikely to be ported to Lua. However, Telekasten is already an alternative to VimWiki, once:

Thus, Telekasten is a viable alternative to VimWiki for Nvim users (especially users that want a full-Lua Nvim configuration).

That said, VimWiki has one key feature missing in Telekasten: the ability to have multiple "Wikis". However, by implementing a dictionary (or list) of home folders - instead of using a single value for it - and adding a selector (which is <leader>ws on VimWiki), this limitation is removed. This feature might also be valuable for people that do not use VimWiki but would like to isolate their Zettelkasten note cards. For example, one might want to have one for business and another for academic work - or even one where they keep joke ideas only. Different Zettelkastens can also be used to isolate notes from unrelated projects, especially when working with other team members that should not have access to one's personal diary notes.

Describe the solution you'd like Implement the home variable as a dictionary of home folders, where each value comprises (a) the Zettelkasten name (i.e. what the user decides to call it) and (b) the path to the note repository. If the user does not set a home folder dictionary, the home folder value defaults to {"Zettelkasten": "~/zettelkasten"} (or something similar).

There should also be a function that allows the selection of which Zettelkasten one wants to open. It could be a fuzzy finder or a list of the keys in the home dictionary. Users may assign the function to keybindings for ease of access.

Describe alternatives you've considered

Additional context N/A

lambtho12 commented 2 years ago

Agree. This would be a very good feature. See #96

I never realized that TK could become a viable replacement for vimwiki with the latest news regarding vim9. This would be an interesting twist of events. Hopefully this will bring lots of new contributors as well!

lambtho12 commented 2 years ago

Closed with commit fa667469815e3cf6d25a7b09e7e4ce31036c197c (squashed from PR #158)

renerocksai commented 2 years ago

I just stumbled across this issue. I wasn't aware of the implications of Vim9Script on vimwiki.

My thoughts: popular plugins like vimwiki now have 2 options:

  1. Stick with regular vimscript (no vim9script). Since neovim is unlikely to abandon the existing support for vimscript, vimwiki would remain usable from both vim and neovim.
  2. Get lured into Vim9Script (performance gains?) and lose neovim users.

It's a hard position to be in. I guess I would opt for option 1.

Anyway, in light of this discussion, we have to thank @shivanth even more!