Je n'ai plus le temps de maintenir ce projet. Si vous souhaitez prendre la relève, veuillez me contacter dans les numéros GitHub.
Libérez les blocages mentaux liés à l’enregistrement des informations. Grattez le tartre des conventions qui handicape sa récupération.
--- Page d'accueil de la vélocité notationnelle
Notational Velocity est une application de prise de notes dans laquelle rechercher une note et en créer une sont la même opération.
Vous recherchez une requête et si aucune note ne correspond, une nouvelle note est créée avec cette requête comme titre.
Voir le GIF suivant ou regarder cet asciinema :
" with vim-plug
Plug 'https://github.com/alok/notational-fzf-vim'
Lisez CHANGELOG.md
.
Vim est idéal pour écrire. Mais il n'est pas optimisé pour la prise de notes, où vous créez souvent beaucoup de petites notes et modifiez fréquemment des notes plus volumineuses dans un répertoire distinct de celui dans lequel vous travaillez. Pendant des années, j'ai utilisé nvALT et chaque fois que je devais faire des modifications sérieuses. , j'ouvrirais le fichier dans Vim.
Mais certaines choses à propos de nvALT m'ont dérangé.
Il n'est pas destiné aux fichiers texte volumineux, et leur ouverture entraînera un retard important .
Je ne peux pas utiliser les fractionnements
Je fais la plupart de mon travail dans Vim, alors pourquoi ouvrir une autre fenêtre, gaspillant un espace précieux sur l'écran avec ses capacités d'édition inférieures. Désolé Brett, mais nvALT ne peut pas égaler la vitesse d'édition de Vim.
Je suis également en désaccord avec certaines parties de la philosophie de Notational Velocity.
Les plugins comme vim-pad ne l'ont pas fait pour moi non plus, car :
README.md
. Quand Junegunn a créé fzf
, j'ai réalisé que je pouvais avoir tout ça, dans Vim.
Ce plugin vous permet de définir une liste de répertoires dans lesquels vous souhaitez effectuer une recherche. Le premier répertoire de la liste est utilisé comme répertoire principal, sauf si vous définissez g:nv_main_directory
. Si vous appuyez sur control-x
après avoir tapé quelques mots, il utilisera ces mots comme nom de fichier pour créer un fichier dans le répertoire principal. Il ouvrira ensuite ce fichier dans une division verticale. Si ce fichier existe déjà, ne vous inquiétez pas, il ne l'écrasera pas. Ce plugin ne modifie à aucun moment vos fichiers. Il ne peut que les lire, les ouvrir et les créer.
Vous pouvez définir des liens relatifs, donc l'ajout de ./docs
et ./notes
fonctionnera. Gardez à l'esprit qu'il est relatif à votre répertoire de travail actuel (tel que Vim l'interprète).
rg
est requis pour sa recherche rapide.
fzf
.
plugin Vim fzf
. Installez le plugin Vim fourni avec fzf
, ce qui peut être fait ainsi si vous utilisez vim-plug.
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
Python 3.5 ou supérieur, pour la fenêtre d'aperçu et le raccourcissement du chemin de fichier.
Vous devez définir une liste de répertoires ou de fichiers (qui doivent tous être des chaînes) à rechercher. Ce paramètre est nommé g:nv_search_paths
.
N'oubliez pas qu'il peut s'agir de liens relatifs.
" example
let g:nv_search_paths = ['~/wiki', '~/writing', '~/code', 'docs.md' , './notes.md']
Ce plugin unit la recherche et la création de fichiers. Il définit une seule commande :NV
, qui peut prendre 0 ou plusieurs arguments, qui sont interprétés comme des expressions rationnelles.
Tapez :NV
ou liez-le à un mappage pour afficher un menu de recherche floue. Tapez vos termes de recherche et la recherche sera floue. L'ajout d'un point d'exclamation à la commande ( :NV!
) l'exécutera en plein écran.
Vous pouvez taper :NV
pour voir tous les résultats, puis les filtrer avec FZF. Vous pouvez taper :NV python
pour limiter votre recherche initiale aux lignes contenant l'expression python
. :NV [0-9] [0-9]
trouvera tous les nombres séparés par un espace. Vous savez, les expressions régulières.
La recherche n'est pas totalement floue car cela est moins utile pour la prose. Il recherche des mots complets, mais ils ne doivent pas nécessairement être côte à côte, mais simplement sur la même ligne. Vous pouvez utiliser les touches fléchées ou cp
et cn
pour faire défiler les résultats de la recherche, puis appuyer sur l'une de ces touches pour ouvrir un fichier :
Notez que les options suivantes peuvent être personnalisées.
cx
: utilisez la chaîne de recherche comme nom de fichier et ouvrez-la en division verticale.cv
: Ouvert en fractionnement verticalcs
: Ouvert en fractionnement horizontalct
: Ouvrir dans un nouvel ongletcy
: Tirez sur les noms de fichiers sélectionnés<Enter>
: Ouvrir le résultat de recherche en surbrillance dans le tampon courantLes lignes autour du fichier sélectionné seront visibles dans une fenêtre d'aperçu.
Ce plugin définit uniquement une commande :NV
, et si vous souhaitez un mappage pour celle-ci, vous pouvez le définir vous-même. Ceci n'est intentionnellement pas fait par défaut. Vous devez utiliser le ou les mappages qui vous conviennent le mieux.
Par exemple,
nnoremap <silent> <c-s> :NV<CR>
Vous pouvez afficher le chemin complet en définissant g:nv_use_short_pathnames = 0
.
Vous pouvez basculer l'affichage de la fenêtre d'aperçu en appuyant sur alt-p
. C'est pratique sur les écrans plus petits. Si vous ne souhaitez pas afficher l'aperçu par défaut, définissez g:nv_show_preview = 0
.
" String. Set to '' (the empty string) if you don't want an extension appended by default.
" Don't forget the dot, unless you don't want one.
let g:nv_default_extension = '.md'
" String. Default is first directory found in `g:nv_search_paths`. Error thrown
"if no directory found and g:nv_main_directory is not specified
"let g:nv_main_directory = g:nv_main_directory or (first directory in g:nv_search_paths)
" Dictionary with string keys and values. Must be in the form 'ctrl-KEY':
" 'command' or 'alt-KEY' : 'command'. See examples below.
let g:nv_keymap = {
'ctrl-s': 'split ',
'ctrl-v': 'vertical split ',
'ctrl-t': 'tabedit ',
})
" String. Must be in the form 'ctrl-KEY' or 'alt-KEY'
let g:nv_create_note_key = 'ctrl-x'
" String. Controls how new note window is created.
let g:nv_create_note_window = 'vertical split'
" Boolean. Show preview. Set by default. Pressing Alt-p in FZF will toggle this for the current search.
let g:nv_show_preview = 1
" Boolean. Respect .*ignore files in or above nv_search_paths. Set by default.
let g:nv_use_ignore_files = 1
" Boolean. Include hidden files and folders in search. Disabled by default.
let g:nv_include_hidden = 0
" Boolean. Wrap text in preview window.
let g:nv_wrap_preview_text = 1
" String. Width of window as a percentage of screen's width.
let g:nv_window_width = '40%'
" String. Determines where the window is. Valid options are: 'right', 'left', 'up', 'down'.
let g:nv_window_direction = 'down'
" String. Command to open the window (e.g. `vertical` `aboveleft` `30new` `call my_function()`).
let g:nv_window_command = 'call my_function()'
" Float. Width of preview window as a percentage of screen's width. 50% by default.
let g:nv_preview_width = 50
" String. Determines where the preview window is. Valid options are: 'right', 'left', 'up', 'down'.
let g:nv_preview_direction = 'right'
" String. Yanks the selected filenames to the default register.
let g:nv_yank_key = 'ctrl-y'
" String. Separator used between yanked filenames.
let g:nv_yank_separator = "n"
" Boolean. If set, will truncate each path element to a single character. If
" you have colons in your pathname, this will fail. Set by default.
let g:nv_use_short_pathnames = 1
"List of Strings. Shell glob patterns. Ignore all filenames that match any of
" the patterns.
let g:nv_ignore_pattern = ['summarize-*', 'misc*']
" List of Strings. Key mappings like above in case you want to define your own
" handler function. Most users won't want to set this to anything.
let g:nv_expect_keys = []
Si bat
est dans le PATH alors il sera utilisé. Il utilisera $BAT_THEME
s'il est défini.
Vous pouvez également définir votre propre fonction de gestionnaire, au cas où vous n'aimeriez pas la façon dont ce plugin gère les entrées mais aimez la façon dont il enveloppe tout le reste. Il doit s'appeler NV_note_handler
.
~/notes
et ~/wiki
pour que vos notes ne soient qu'à une seule touche../notes
, ./doc
, etc. à g:nv_search_paths
afin que vous puissiez toujours voir/mettre à jour la documentation de votre projet en cours et tenir à jour vos notes personnelles. Pour citer Scrod,
Le raisonnement derrière le manque actuel de support multi-bases de données de Notational Velocity est que le stockage des notes dans des bases de données distinctes 1) nécessiterait les mêmes types de décisions que les organisateurs basés sur des catégories/dossiers imposent à leurs utilisateurs (par exemple, « Cette note va-t-elle être un travail ? » -spécifique ou spécifique à la maison ?"), et 2) Éliminer l'intérêt de la recherche instantanée en exigeant, en fin de compte, que l'utilisateur répète chaque recherche pour chaque base de données utilisée.
En fournissant un répertoire par défaut, nous proposons (un) correctif au premier problème.
En recherchant simultanément l’ensemble des répertoires, nous nous occupons du second.
Il gère également le problème de Notational Velocity avec plusieurs bases de données. UNIX n'autorise pas les noms de fichiers répétés dans le même dossier, mais souvent le dossier parent fournit un contexte, comme dans workout/TODO.md
et coding/TODO.md
.
Ce plug-in tente d'abstraire l'opération de prise de notes sur toutes les notes que vous prenez, avec la priorité donnée à un répertoire de notes principal.
Est toujours le bienvenu. Si vous avez des idées ou des problèmes, faites-le-moi savoir et j'essaierai d'y répondre. Tous ne seront pas implémentés, mais s'ils correspondent à la philosophie de ce plugin ou semblent vraiment utiles, je ferai de mon mieux.
Apache2