Ya no tengo tiempo para mantener este proyecto. Si está interesado en hacerse cargo, comuníquese conmigo en los problemas de GitHub.
Libera los bloqueos mentales para registrar información. Quite el sarro de las convenciones que impide su recuperación.
--- Página de inicio de Notacional Velocity
Notational Velocity es una aplicación para tomar notas en la que buscar una nota y crearla son la misma operación.
Busca una consulta y, si ninguna nota coincide, crea una nueva nota con esa consulta como título.
Mira el siguiente GIF o mira este asciinema:
" with vim-plug
Plug 'https://github.com/alok/notational-fzf-vim'
Lea CHANGELOG.md
.
Vim es genial para escribir. Pero no está optimizado para tomar notas, donde a menudo creas muchas notas pequeñas y cambias frecuentemente las notas más grandes en un directorio separado del que estás trabajando. Durante años usé nvALT y cada vez que tenía que hacer ediciones serias. , abriría el archivo en Vim.
Pero algunas cosas sobre nvALT me molestaron.
No está diseñado para archivos de texto grandes y abrirlos provocará un gran retraso.
no puedo usar divisiones
Hago la mayor parte de mi trabajo en Vim, entonces, ¿por qué tener otra ventana abierta, desperdiciando un valioso espacio en la pantalla con sus inferiores capacidades de edición? Lo siento Brett, pero nvALT no puede igualar la velocidad de edición de Vim.
Tampoco estoy de acuerdo con algunas partes de la filosofía de Notational Velocity.
Los complementos como vim-pad tampoco me sirvieron porque:
README.md
. Cuando Junegunn creó fzf
, me di cuenta de que podía tener todo eso en Vim.
Este complemento le permite definir una lista de directorios en los que desea buscar. El primer directorio de la lista se utiliza como directorio principal, a menos que configure g:nv_main_directory
. Si presiona control-x
después de escribir algunas palabras, usará esas palabras como nombre de archivo para crear un archivo en el directorio principal. Luego abrirá ese archivo en una división vertical. Si ese archivo ya existe, no te preocupes, no lo sobrescribirá. Este complemento nunca modifica sus archivos en ningún momento. Sólo puede leerlos, abrirlos y crearlos.
Puede definir enlaces relativos, por lo que agregar ./docs
y ./notes
funcionará. Tenga en cuenta que es relativo a su directorio de trabajo actual (como lo interpreta Vim).
Se requiere rg
para su búsqueda rápida.
fzf
.
Complemento fzf
Vim. Instale el complemento Vim que viene con fzf
, lo cual se puede hacer así si usa vim-plug.
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
Python 3.5 o superior, para la ventana de vista previa y el acortamiento de la ruta del archivo.
Debe definir una lista de directorios o archivos (todos los cuales deben ser cadenas) para buscar. Esta configuración se denomina g:nv_search_paths
.
Recuerda que estos pueden ser enlaces relativos.
" example
let g:nv_search_paths = ['~/wiki', '~/writing', '~/code', 'docs.md' , './notes.md']
Este complemento une la búsqueda y la creación de archivos. Define un comando único :NV
, que puede tomar 0 o más argumentos, que se interpretan como expresiones regulares.
Escriba :NV
o vincúlelo a una asignación para que aparezca un menú de búsqueda difusa. Escriba sus términos de búsqueda y los buscará de forma difusa. Agregar un signo de exclamación al comando ( :NV!
) lo ejecutará en pantalla completa.
Puede escribir :NV
para ver todos los resultados y luego filtrarlos con FZF. Puede escribir :NV python
para restringir su búsqueda inicial a líneas que contengan la frase python
. :NV [0-9] [0-9]
encontrará todos los números separados por un espacio. Ya sabes, expresiones regulares.
No busca de forma totalmente confusa porque es menos útil para la prosa. Busca palabras completas, pero no es necesario que estén una al lado de la otra, sólo en la misma línea. Puede usar las teclas de flecha o cp
y cn
para desplazarse por los resultados de la búsqueda y luego presionar una de estas teclas para abrir un archivo:
Tenga en cuenta que las siguientes opciones se pueden personalizar.
cx
: utilice la cadena de búsqueda como nombre de archivo y ábralo en división vertical.cv
: Abierto en división verticalcs
horizontalct
: Abrir en una nueva pestañacy
: elimina los nombres de archivos seleccionados<Enter>
: abre el resultado de búsqueda resaltado en el búfer actualLas líneas alrededor del archivo seleccionado serán visibles en una ventana de vista previa.
Este complemento solo define un comando :NV
y, si desea un mapeo para él, puede definirlo usted mismo. Esto no se hace intencionalmente de forma predeterminada. Debe utilizar cualquier mapeo que funcione mejor para usted.
Por ejemplo,
nnoremap <silent> <c-s> :NV<CR>
Puede mostrar la ruta completa configurando g:nv_use_short_pathnames = 0
.
Puede alternar la visualización de la ventana de vista previa presionando alt-p
. Esto es útil en pantallas más pequeñas. Si no desea mostrar la vista previa de forma predeterminada, configure 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á en la RUTA, entonces se utilizará. Utilizará $BAT_THEME
si está configurado.
También puede definir su propia función de controlador, en caso de que no le guste cómo este complemento maneja la entrada pero le gusta cómo envuelve todo lo demás. Debe llamarse NV_note_handler
.
~/notes
y ~/wiki
para que sus notas estén a solo una tecla de distancia../notes
, ./doc
, etc. a g:nv_search_paths
para que siempre pueda ver/actualizar la documentación de su proyecto actual y mantener notas personales actualizadas. Para citar a scrod,
El razonamiento detrás de la actual falta de soporte de bases de datos múltiples de Notational Velocity es que almacenar notas en bases de datos separadas 1) Requeriría el mismo tipo de decisiones que los organizadores basados en categorías/carpetas imponen a sus usuarios (por ejemplo, "¿Esta nota va a ser un trabajo?" -¿específico o específico del hogar?"), y 2) Derrotar el objetivo de la búsqueda instantánea al requerir, en última instancia, que el usuario repita cada búsqueda para cada base de datos en uso.
Al proporcionar un directorio predeterminado, ofrecemos (una) solución al primer problema.
Al buscar en todo el conjunto de directorios simultáneamente, manejamos el segundo.
También maneja el problema de Notational Velocity con múltiples bases de datos. UNIX no permite nombres de archivos repetidos en la misma carpeta, pero a menudo la carpeta principal proporciona contexto, como en workout/TODO.md
y coding/TODO.md
.
Este complemento intenta abstraer la operación de toma de notas sobre todas las notas que toma, dando prioridad a un directorio de notas principal.
Siempre es bienvenido. Si tienes alguna idea o problema, házmelo saber e intentaré solucionarlo. No todos se implementarán, pero si encajan en la filosofía de este complemento o parecen realmente útiles, haré lo mejor que pueda.
apache 2