Saya tidak punya waktu untuk mempertahankan proyek ini lagi. Jika Anda tertarik untuk mengambil alih, silakan hubungi saya di masalah GitHub.
Kendurkan hambatan mental dalam mencatat informasi. Singkirkan karang gigi konvensi yang menghalangi pengambilannya kembali.
--- Halaman beranda Kecepatan Notasi
Notational Velocity adalah aplikasi pencatatan yang mana pencarian catatan dan pembuatannya merupakan operasi yang sama.
Anda mencari kueri, dan jika tidak ada catatan yang cocok, catatan baru akan dibuat dengan kueri tersebut sebagai judul.
Lihat GIF berikut atau tonton asciinema ini:
" with vim-plug
Plug 'https://github.com/alok/notational-fzf-vim'
Baca CHANGELOG.md
.
Vim sangat bagus untuk menulis. Tapi itu tidak dioptimalkan untuk pembuatan catatan, di mana Anda sering membuat banyak catatan kecil dan sering mengubah catatan yang lebih besar di direktori terpisah dari direktori tempat Anda bekerja. Selama bertahun-tahun saya menggunakan nvALT dan setiap kali saya harus melakukan pengeditan serius , saya akan membuka file di Vim.
Namun beberapa hal tentang nvALT mengganggu saya.
Ini tidak dimaksudkan untuk file teks besar, dan membukanya akan menyebabkannya sangat lambat.
Saya tidak bisa menggunakan split
Saya melakukan sebagian besar pekerjaan saya di Vim, jadi mengapa membuka jendela lain, membuang-buang ruang layar yang berharga dengan kemampuan pengeditan yang lebih rendah. Maaf Brett, tapi nvALT tidak bisa menandingi kecepatan pengeditan Vim.
Saya juga tidak setuju dengan beberapa bagian filosofi Notational Velocity.
Plugin seperti vim-pad juga tidak membantu saya, karena:
README.md
. Ketika Junegunn membuat fzf
, saya menyadari bahwa saya bisa memiliki semua itu, di Vim.
Plugin ini memungkinkan Anda menentukan daftar direktori yang ingin Anda cari. Direktori pertama dalam daftar digunakan sebagai direktori utama, kecuali Anda menyetel g:nv_main_directory
. Jika Anda menekan control-x
setelah mengetik beberapa kata, kata tersebut akan digunakan sebagai nama file untuk membuat file di direktori utama. Ini kemudian akan membuka file itu secara vertikal. Jika file tersebut sudah ada, jangan khawatir, file tersebut tidak akan ditimpa. Plugin ini tidak pernah mengubah file Anda kapan pun. Ia hanya dapat membaca, membuka, dan membuatnya.
Anda dapat menentukan tautan relatif, sehingga menambahkan ./docs
dan ./notes
akan berhasil. Ingatlah bahwa ini relatif terhadap direktori kerja Anda saat ini (seperti yang ditafsirkan oleh Vim).
rg
diperlukan untuk pencarian cepatnya.
fzf
.
plugin fzf
Vim. Instal plugin Vim yang disertakan dengan fzf
, yang dapat dilakukan seperti jika Anda menggunakan vim-plug.
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
Python 3.5 atau lebih tinggi, untuk jendela pratinjau dan pemendekan jalur file.
Anda harus menentukan daftar direktori atau file (yang semuanya harus berupa string) untuk dicari. Pengaturan ini diberi nama g:nv_search_paths
.
Ingatlah bahwa ini bisa menjadi hubungan relatif.
" example
let g:nv_search_paths = ['~/wiki', '~/writing', '~/code', 'docs.md' , './notes.md']
Plugin ini menyatukan pencarian dan pembuatan file. Ini mendefinisikan satu perintah :NV
, yang dapat mengambil 0 atau lebih argumen, yang ditafsirkan sebagai regex.
Ketik :NV
atau ikat ke pemetaan untuk memunculkan menu pencarian fuzzy. Ketikkan istilah pencarian Anda dan pencariannya akan tidak jelas. Menambahkan tanda seru ke perintah ( :NV!
), akan menjalankannya dalam layar penuh.
Anda dapat mengetik :NV
untuk melihat semua hasil, lalu memfilternya dengan FZF. Anda dapat mengetik :NV python
untuk membatasi pencarian awal Anda pada baris yang berisi frasa python
. :NV [0-9] [0-9]
akan menemukan semua angka yang dipisahkan oleh spasi. Anda tahu, regex.
Pencarian ini tidak sepenuhnya kabur karena kurang berguna untuk prosa. Tampaknya kata-katanya lengkap, tetapi tidak harus bersebelahan, cukup dalam satu baris. Anda dapat menggunakan tombol panah atau cp
dan cn
untuk menelusuri hasil pencarian, lalu tekan salah satu tombol berikut untuk membuka file:
Perhatikan bahwa opsi berikut dapat disesuaikan.
cx
: Gunakan string pencarian sebagai nama file dan buka secara vertikal.cv
: Buka secara vertikalcs
: Buka secara horizontalct
: Buka di tab barucy
: Tarik nama file yang dipilih<Enter>
: Membuka hasil pencarian yang disorot dalam buffer saat iniGaris-garis di sekitar file yang dipilih akan terlihat di jendela pratinjau.
Plugin ini hanya mendefinisikan sebuah perintah :NV
, dan jika Anda menginginkan pemetaannya, Anda dapat mendefinisikannya sendiri. Hal ini sengaja tidak dilakukan secara default. Anda harus menggunakan pemetaan apa pun yang paling cocok untuk Anda.
Misalnya,
nnoremap <silent> <c-s> :NV<CR>
Anda dapat menampilkan jalur lengkap dengan menyetel g:nv_use_short_pathnames = 0
.
Anda dapat beralih menampilkan jendela pratinjau dengan menekan alt-p
. Ini berguna pada layar yang lebih kecil. Jika Anda tidak ingin menampilkan pratinjau secara default, setel 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 = []
Jika bat
ada di PATH maka itu akan digunakan. Ini akan menggunakan $BAT_THEME
jika disetel.
Anda juga dapat menentukan fungsi handler Anda sendiri, jika Anda tidak menyukai cara plugin ini menangani input tetapi menyukai cara plugin ini membungkus semuanya. Itu harus disebut NV_note_handler
.
~/notes
dan ~/wiki
sehingga catatan Anda hanya tinggal satu kunci saja../notes
, ./doc
, dll. ke g:nv_search_paths
sehingga Anda selalu dapat melihat/memperbarui dokumentasi proyek Anda saat ini dan selalu memperbarui catatan pribadi. Mengutip scrod,
Alasan di balik kurangnya dukungan multi-database Notational Velocity saat ini adalah bahwa menyimpan catatan dalam database terpisah akan 1) Membutuhkan jenis keputusan yang sama dengan yang dipaksakan oleh penyelenggara berbasis kategori/folder kepada penggunanya (misalnya, "Apakah catatan ini akan berfungsi -spesifik atau spesifik rumah?"), dan 2) Mengalahkan tujuan pencarian instan dengan mengharuskan, pada akhirnya, pengguna mengulangi setiap pencarian untuk setiap database yang digunakan.
Dengan menyediakan direktori default, kami menawarkan (satu) perbaikan untuk masalah pertama.
Dengan mencari seluruh rangkaian direktori secara bersamaan, kami menangani yang kedua.
Ini juga menangani masalah Notational Velocity dengan banyak database. UNIX tidak mengizinkan pengulangan nama file dalam folder yang sama, tetapi sering kali folder induk menyediakan konteks, seperti di workout/TODO.md
dan coding/TODO.md
.
Plug-in ini mencoba mengabstraksikan operasi pencatatan atas semua catatan yang Anda buat, dengan prioritas diberikan pada satu direktori catatan utama.
Selalu diterima. Jika Anda memiliki ide atau masalah, beri tahu saya dan saya akan mencoba mengatasinya. Tidak semuanya akan diterapkan, tetapi jika sesuai dengan filosofi plugin ini atau tampak sangat berguna, saya akan melakukan yang terbaik.
Apache 2