У меня больше нет времени поддерживать этот проект. Если вы заинтересованы во вступлении во владение, свяжитесь со мной в вопросах GitHub.
Ослабьте ментальные блокировки на пути к записи информации. Соскребите налет условностей, мешающий его восстановлению.
--- Домашняя страница обозначенной скорости
Notational Velocity — это приложение для создания заметок, в котором поиск и создание заметки — это одна и та же операция.
Вы ищете запрос, и если ни одна заметка не соответствует, создается новая заметка с этим запросом в качестве заголовка.
Посмотрите следующий GIF или посмотрите эту asciinema:
" with vim-plug
Plug 'https://github.com/alok/notational-fzf-vim'
Прочтите CHANGELOG.md
.
Vim отлично подходит для письма. Но он не оптимизирован для ведения заметок, когда вы часто создаете много маленьких заметок и часто меняете более крупные заметки в отдельном каталоге, отличном от того, в котором вы работаете. В течение многих лет я использовал nvALT и всякий раз, когда мне приходилось серьезно редактировать , я бы открыл файл в Vim.
Но некоторые моменты в nvALT меня беспокоили.
Он не предназначен для больших текстовых файлов, и их открытие приведет к значительному замедлению работы.
Я не могу использовать сплиты
Я выполняю большую часть своей работы в Vim, так зачем же открывать еще одно окно, тратя драгоценное место на экране из-за его плохих возможностей редактирования? Извините, Бретт, но nvALT не может сравниться со скоростью редактирования Vim.
Я также не согласен с некоторыми частями философии Notational Velocity.
Плагины вроде vim-pad мне тоже не помогли, потому что:
README.md
. Когда Джунганн создал fzf
, я понял, что все это можно получить в Vim.
Этот плагин позволяет вам определить список каталогов, в которых вы хотите выполнить поиск. Первый каталог в списке используется в качестве основного, если вы не установите g:nv_main_directory
. Если вы нажмете control-x
после ввода некоторых слов, эти слова будут использоваться в качестве имени файла для создания файла в основном каталоге. Затем он откроет этот файл в вертикальном разрезе. Если этот файл уже существует, не волнуйтесь, он не перезапишет его. Этот плагин никогда не изменяет ваши файлы. Он может только читать, открывать и создавать их.
Вы можете определить относительные ссылки, поэтому добавление ./docs
и ./notes
будет работать. Имейте в виду, что это относится к вашему текущему рабочему каталогу (как его интерпретирует Vim).
rg
необходим для его быстрого поиска.
fzf
.
плагин fzf
для Vim. Установите плагин Vim, который поставляется с fzf
, что можно сделать так, если вы используете vim-plug.
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
Python 3.5 или выше для окна предварительного просмотра и сокращения пути к файлу.
Вам необходимо определить список каталогов или файлов (все они должны быть строками) для поиска. Этот параметр называется g:nv_search_paths
.
Помните, что это могут быть относительные ссылки.
" example
let g:nv_search_paths = ['~/wiki', '~/writing', '~/code', 'docs.md' , './notes.md']
Этот плагин объединяет поиск и создание файлов. Он определяет одну команду :NV
, которая может принимать 0 или более аргументов, которые интерпретируются как регулярные выражения.
Введите :NV
или привяжите его к сопоставлению, чтобы открыть меню нечеткого поиска. Введите условия поиска, и поиск будет нечетким. Если добавить к команде восклицательный знак ( :NV!
), она запустится в полноэкранном режиме.
Вы можете ввести :NV
, чтобы просмотреть все результаты, а затем отфильтровать их с помощью FZF. Вы можете ввести :NV python
, чтобы ограничить первоначальный поиск строками, содержащими фразу python
. :NV [0-9] [0-9]
найдет все числа, разделенные пробелом. Знаете, регулярные выражения.
Он не выполняет полностью нечеткий поиск, потому что это менее полезно для прозы. Он ищет полные слова, но они не обязательно должны находиться рядом друг с другом, просто на одной строке. Вы можете использовать клавиши со стрелками или cp
и cn
для прокрутки результатов поиска, а затем нажать одну из этих клавиш, чтобы открыть файл:
Обратите внимание, что следующие параметры можно настроить.
cx
: использовать строку поиска в качестве имени файла и открыть его с вертикальным разделением.cv
: Открыть с вертикальным разделениемcs
: Открыть в горизонтальном разрезеct
: Открыть в новой вкладкеcy
: скопировать выбранные имена файлов.<Enter>
: открыть выделенный результат поиска в текущем буфере.Линии вокруг выбранного файла будут видны в окне предварительного просмотра.
Этот плагин определяет только команду :NV
, и если вам нужно ее сопоставление, вы можете определить его самостоятельно. По умолчанию это намеренно не сделано. Вам следует использовать те сопоставления, которые лучше всего подходят для вас.
Например,
nnoremap <silent> <c-s> :NV<CR>
Вы можете отобразить полный путь, установив g:nv_use_short_pathnames = 0
.
Вы можете переключить отображение окна предварительного просмотра, нажав alt-p
. Это удобно на небольших экранах. Если вы не хотите показывать предварительный просмотр по умолчанию, установите 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 = []
Если bat
находится в PATH, он будет использоваться. Он будет использовать $BAT_THEME
, если он установлен.
Вы также можете определить свою собственную функцию-обработчик на тот случай, если вам не нравится, как этот плагин обрабатывает ввод, но нравится, как он оборачивает все остальное. Он должен называться NV_note_handler
.
~/notes
и ~/wiki
, чтобы ваши заметки находились на расстоянии всего одной привязки клавиш../notes
, ./doc
и т. д., в g:nv_search_paths
, чтобы вы всегда могли просматривать/обновлять документацию вашего текущего проекта и сохранять актуальные личные заметки. Цитируя Скрода,
Причина нынешнего отсутствия поддержки нескольких баз данных в Notational Velocity заключается в том, что хранение заметок в отдельных базах данных: 1) потребует принятия тех же решений, которые организаторы на основе категорий/папок навязывают своим пользователям (например: «Будет ли эта заметка работать?» -специфично или конкретно для дома?"), и 2) устранить необходимость мгновенного поиска, требуя, в конечном итоге, от пользователя повторять каждый поиск для каждой используемой базы данных.
Предоставляя каталог по умолчанию, мы предлагаем (одно) решение первой проблемы.
Обыскивая одновременно весь набор каталогов, мы справляемся со вторым.
Он также решает проблему Notational Velocity с несколькими базами данных. UNIX не допускает повторения имен файлов в одной и той же папке, но часто родительская папка предоставляет контекст, например, вwork workout/TODO.md
и coding/TODO.md
.
Этот плагин пытается абстрагировать операцию создания заметок для всех ваших заметок, отдавая приоритет одному основному каталогу заметок.
Всегда приветствуется. Если у вас есть какие-либо идеи или проблемы, дайте мне знать, и я постараюсь их решить. Не все будут реализованы, но если они впишутся в философию этого плагина или покажутся действительно полезными, я сделаю все возможное.
Апач 2