ليس لدي الوقت للحفاظ على هذا المشروع بعد الآن. إذا كنت مهتمًا بتولي المهمة، فيرجى الاتصال بي بخصوص مشكلات GitHub.
تخفيف العوائق العقلية لتسجيل المعلومات. اكشط جير التقليد الذي يعيق استرجاعه.
--- الصفحة الرئيسية للسرعة الترميزية
Notational Velocity هو تطبيق لتدوين الملاحظات حيث يكون البحث عن ملاحظة وإنشاء واحدة هما نفس العملية.
تقوم بالبحث عن استعلام، وإذا لم تتطابق أي ملاحظة، فسيتم إنشاء ملاحظة جديدة باستخدام هذا الاستعلام كعنوان.
شاهد صورة GIF التالية أو شاهد هذا الفيلم:
" with vim-plug
Plug 'https://github.com/alok/notational-fzf-vim'
اقرأ CHANGELOG.md
.
Vim رائع للكتابة. ولكنه غير مُحسَّن لتدوين الملاحظات، حيث غالبًا ما تقوم بإنشاء الكثير من الملاحظات الصغيرة وتغيير الملاحظات الأكبر بشكل متكرر في دليل منفصل عن الدليل الذي تعمل فيه. لسنوات عديدة، كنت أستخدم nvALT وكلما اضطررت إلى إجراء تحرير جدي ، سأفتح الملف في Vim.
لكن بعض الأشياء المتعلقة بـ nvALT أزعجتني.
إنه ليس مخصصًا للملفات النصية الكبيرة، وفتحها سيؤدي إلى تأخير كبير .
لا أستطيع استخدام الانقسامات
أقوم بمعظم عملي باستخدام Vim، فلماذا أفتح نافذة أخرى، مما يؤدي إلى إهدار مساحة الشاشة الثمينة بفضل إمكانيات التحرير الرديئة. عذرًا بريت، لكن nvALT لا يمكنه مطابقة سرعة التحرير الخاصة بـ Vim.
أنا أيضًا لا أتفق مع بعض أجزاء فلسفة السرعة الترميزية.
المكونات الإضافية مثل vim-pad لم تفعل ذلك بالنسبة لي أيضًا، للأسباب التالية:
README.md
. عندما أنشأ Junegunn fzf
، أدركت أنه يمكنني الحصول على كل ذلك في Vim.
يتيح لك هذا البرنامج المساعد تحديد قائمة بالأدلة التي تريد البحث فيها. يتم استخدام الدليل الأول في القائمة كدليل رئيسي، إلا إذا قمت بتعيين g:nv_main_directory
. إذا قمت بالضغط على control-x
بعد كتابة بعض الكلمات، فسوف يستخدم هذه الكلمات كاسم ملف لإنشاء ملف في الدليل الرئيسي. سيتم بعد ذلك فتح هذا الملف في تقسيم عمودي. إذا كان هذا الملف موجودًا بالفعل، فلا تقلق، فلن يتم استبداله. لا يقوم هذا البرنامج الإضافي بتعديل ملفاتك أبدًا في أي وقت. يمكنه فقط قراءتها وفتحها وإنشائها.
يمكنك تحديد الروابط النسبية، لذا فإن إضافة ./docs
و ./notes
سيعمل. ضع في اعتبارك أنه مرتبط بدليل العمل الحالي الخاص بك (كما يفسره Vim).
مطلوب rg
للبحث السريع.
fzf
.
البرنامج المساعد fzf
فيم. قم بتثبيت البرنامج الإضافي 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 وسيطة أو أكثر، والتي يتم تفسيرها على أنها regexes.
اكتب :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
موجودًا في المسار، فسيتم استخدامه. سيستخدم $BAT_THEME
إذا تم ضبطه.
يمكنك أيضًا تحديد وظيفة المعالج الخاصة بك، في حالة عدم إعجابك بالطريقة التي يتعامل بها هذا المكون الإضافي مع الإدخال ولكنك تحب كيفية تغليف كل شيء آخر. يجب أن يسمى NV_note_handler
.
~/notes
و ~/wiki
بحيث تكون ملاحظاتك مرتبطة بمفتاح واحد فقط../notes
و ./doc
وما إلى ذلك إلى g:nv_search_paths
حتى تتمكن دائمًا من رؤية/تحديث وثائق مشروعك الحالي والاحتفاظ بملاحظات شخصية محدثة. على حد تعبير سكرود ،
السبب وراء افتقار Notational Velocity الحالي لدعم قواعد البيانات المتعددة هو أن تخزين الملاحظات في قواعد بيانات منفصلة من شأنه أن: 1) يتطلب نفس أنواع القرارات التي يفرضها المنظمون المعتمدون على الفئة/المجلد على مستخدميهم (على سبيل المثال، "هل ستعمل هذه الملاحظة -محدد أم خاص بالمنزل؟")، و2) التغلب على نقطة البحث الفوري من خلال مطالبة المستخدم، في نهاية المطاف، بتكرار كل بحث لكل قاعدة بيانات قيد الاستخدام.
ومن خلال توفير الدليل الافتراضي، فإننا نقدم إصلاحًا (واحدًا) للمشكلة الأولى.
من خلال البحث في مجموعة الأدلة بأكملها في وقت واحد، فإننا نتعامل مع الثاني.
كما أنه يتعامل مع مشكلة Notational Velocity مع قواعد بيانات متعددة. لا يسمح نظام UNIX بأسماء الملفات المتكررة في نفس المجلد، ولكن غالبًا ما يوفر المجلد الأصلي سياقًا، كما هو الحال في workout/TODO.md
و coding/TODO.md
.
يحاول هذا البرنامج الإضافي تجريد عملية تدوين الملاحظات على جميع الملاحظات التي تقوم بتدوينها، مع إعطاء الأولوية لدليل ملاحظات رئيسي واحد.
هو دائما موضع ترحيب. إذا كانت لديك أي أفكار أو مشكلات، فأخبرني وسأحاول معالجتها. لن يتم تنفيذ جميعها، ولكن إذا كانت تتناسب مع فلسفة هذا البرنامج الإضافي أو تبدو مفيدة حقًا، فسوف أبذل قصارى جهدي.
أباتشي 2