Não tenho mais tempo para manter esse projeto. Se você estiver interessado em assumir, entre em contato comigo nas questões do GitHub.
Solte os bloqueios mentais para registrar informações. Raspe o tártaro das convenções que prejudica a sua recuperação.
--- Página inicial da velocidade notacional
Notational Velocity é um aplicativo de anotações onde procurar uma nota e criá-la são a mesma operação.
Você pesquisa uma consulta e, se nenhuma nota corresponder, uma nova nota será criada com essa consulta como título.
Veja o seguinte GIF ou assista a este asciinema:
" with vim-plug
Plug 'https://github.com/alok/notational-fzf-vim'
Leia CHANGELOG.md
.
Vim é ótimo para escrever. Mas não é otimizado para fazer anotações, onde você costuma criar muitas pequenas notas e frequentemente alterar notas maiores em um diretório separado daquele em que você está trabalhando. Durante anos usei o nvALT e sempre que tive que fazer edições sérias , eu abriria o arquivo no Vim.
Mas algumas coisas sobre o nvALT me incomodaram.
Não se destina a arquivos de texto grandes e abri-los causará muito atraso.
Não posso usar divisões
Eu faço a maior parte do meu trabalho no Vim, então por que abrir outra janela, desperdiçando espaço precioso na tela com seus recursos de edição inferiores? Desculpe, Brett, mas o nvALT não pode corresponder à velocidade de edição do Vim.
Também discordo de algumas partes da filosofia da Notational Velocity.
Plugins como o vim-pad também não funcionaram para mim, porque:
README.md
. Quando Junegunn criou fzf
, percebi que poderia ter tudo isso no Vim.
Este plugin permite definir uma lista de diretórios que você deseja pesquisar. O primeiro diretório da lista é usado como diretório principal, a menos que você defina g:nv_main_directory
. Se você pressionar control-x
depois de digitar algumas palavras, ele usará essas palavras como nome de arquivo para criar um arquivo no diretório principal. Em seguida, esse arquivo será aberto em uma divisão vertical. Se esse arquivo já existir, não se preocupe, ele não será substituído. Este plugin nunca modifica seus arquivos em nenhum momento. Ele só pode lê-los, abri-los e criá-los.
Você pode definir links relativos, portanto, adicionar ./docs
e ./notes
funcionará. Tenha em mente que é relativo ao seu diretório de trabalho atual (conforme o Vim o interpreta).
rg
é necessário para sua pesquisa rápida.
fzf
.
Plug-in fzf
Vim. Instale o plugin Vim que vem com fzf
, o que pode ser feito da mesma forma se você usar o vim-plug.
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
Python 3.5 ou superior, para janela de visualização e encurtamento de caminho de arquivo.
Você deve definir uma lista de diretórios ou arquivos (todos devem ser strings) para pesquisar. Essa configuração é denominada g:nv_search_paths
.
Lembre-se de que podem ser links relativos.
" example
let g:nv_search_paths = ['~/wiki', '~/writing', '~/code', 'docs.md' , './notes.md']
Este plugin une pesquisa e criação de arquivos. Ele define um único comando :NV
, que pode receber 0 ou mais argumentos, que são interpretados como regexes.
Digite :NV
ou vincule-o a um mapeamento para abrir um menu de pesquisa difuso. Digite seus termos de pesquisa e a pesquisa será confusa. Adicionar um ponto de exclamação ao comando ( :NV!
) irá executá-lo em tela cheia.
Você pode digitar :NV
para ver todos os resultados e filtrá-los com FZF. Você pode digitar :NV python
para restringir sua pesquisa inicial a linhas que contenham a frase python
. :NV [0-9] [0-9]
encontrará todos os números separados por um espaço. Você sabe, regexes.
Ele não pesquisa de maneira totalmente confusa porque isso é menos útil para prosa. Procura palavras completas, mas elas não precisam estar próximas umas das outras, apenas na mesma linha. Você pode usar as teclas de seta ou cp
e cn
para rolar pelos resultados da pesquisa e, em seguida, pressionar uma destas teclas para abrir um arquivo:
Observe que as opções a seguir podem ser personalizadas.
cx
: Use a string de pesquisa como nome do arquivo e abra em divisão vertical.cv
: Aberto em divisão verticalcs
: Aberto em divisão horizontalct
: Abrir em nova abacy
: arranca os nomes dos arquivos selecionados<Enter>
: abre o resultado da pesquisa destacado no buffer atualAs linhas ao redor do arquivo selecionado ficarão visíveis em uma janela de visualização.
Este plugin define apenas um comando :NV
, e se você quiser um mapeamento para ele, você mesmo pode defini-lo. Isso não é feito intencionalmente por padrão. Você deve usar qualquer mapeamento que funcione melhor para você.
Por exemplo,
nnoremap <silent> <c-s> :NV<CR>
Você pode exibir o caminho completo configurando g:nv_use_short_pathnames = 0
.
Você pode alternar a exibição da janela de visualização pressionando alt-p
. Isso é útil em telas menores. Se você não quiser mostrar a visualização por padrão, defina 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 = []
Se bat
estiver no PATH então ele será usado. Ele usará $BAT_THEME
se estiver definido.
Você também pode definir sua própria função de manipulador, caso não goste de como este plugin lida com a entrada, mas sim de como ele envolve todo o resto. Deve ser chamado NV_note_handler
.
~/notes
e ~/wiki
para que suas notas estejam a apenas uma tecla de distância../notes
, ./doc
, etc. a g:nv_search_paths
para que você possa sempre ver/atualizar a documentação do seu projeto atual e manter notas pessoais atualizadas. Para citar scrod,
O raciocínio por trás da atual falta de suporte a vários bancos de dados do Notational Velocity é que o armazenamento de notas em bancos de dados separados 1) exigiria os mesmos tipos de decisões que os organizadores baseados em categorias/pastas impõem a seus usuários (por exemplo, "Esta nota vai funcionar -específico ou específico da casa?") e 2) Derrote o ponto da pesquisa instantânea, exigindo, em última análise, que o usuário repita cada pesquisa para cada banco de dados em uso.
Ao fornecer um diretório padrão, oferecemos (uma) correção para o primeiro problema.
Ao pesquisar todo o conjunto de diretórios simultaneamente, tratamos do segundo.
Ele também lida com o problema do Notational Velocity com vários bancos de dados. O UNIX não permite nomes de arquivos repetidos na mesma pasta, mas geralmente a pasta pai fornece contexto, como em workout/TODO.md
e coding/TODO.md
.
Este plug-in tenta abstrair a operação de anotações de todas as anotações que você faz, com prioridade dada a um diretório principal de notas.
É sempre bem-vindo. Se você tiver alguma ideia ou problema, me avise e tentarei resolvê-los. Nem todos serão implementados, mas se se enquadrarem na filosofia deste plugin ou parecerem realmente úteis, farei o meu melhor.
Apache2