一个折腾的笔记系统

目标

  1. 快速收集
  2. 全文查找
  3. 支持markdown

基本思路

  1. 使用autohotkey脚原本支持与CintaNotes同样的Ctrl+F12快速收集当前所选内容.
  2. 使用gvim自带的vimgrep命令来实现全文查找
  3. 使用gvimvim-pandocvim-pandoc-syntax两个插件来支持markdown, pandoc工具来转换.

代码

  1. 快速收集
^f12::
clipboard = ;首先清空剪贴板,使 ClipWait 命令能检测到文本什么时候被复制到了剪贴板中。
Send ^c
ClipWait ;等待文本被复制到剪贴板中。
filename=e:\dknlnl\notes\万剑归宗\note-%A_Now%.mkd
;filename auther date
FileAppend, `%note-%A_Now%`n, %filename%
FileAppend, `%zhou512031123@gmail.com`n, %filename%
FileAppend, `%%A_Now%`n, %filename%
FileAppend, # note-%A_Now%`n`n, %filename%

FileAppend, %clipboard%, %filename%
ToolTip, note saved to %filename%
Sleep 3000
ToolTip
return

^f11::
clipboard = ;首先清空剪贴板,使 ClipWait 命令能检测到文本什么时候被复制到了剪贴板中。
Send ^c
ClipWait ;等待文本被复制到剪贴板中。
filename=e:\dknlnl\notes\万剑归宗\note-%A_Now%.mkd
;filename auther date
FileAppend, `%note-%A_Now%`n, %filename%
FileAppend, `%zhou512031123@gmail.com`n, %filename%
FileAppend, `%%A_Now%`n`n, %filename%
FileAppend, # note-%A_Now%`n`n, %filename%

FileAppend, %clipboard%, %filename%
run gvim %filename%
return
  1. 全文查找
  • vimrc里的代码
"use vimgrep to search pattern
function! Ag(args)
    execute "silent! vimgrep /" . a:args . "/g ./**/*"
    botright copen
    exec "redraw!"
    "exec "only"
    "o will open the file in a new tab
    exec "nnoremap <silent> <buffer>o <C-w><CR><C-w>T"
endfunction
function! Ng(args)
    execute "cd e:/dknlnl/notes/"
    execute "silent! vimgrep /" . a:args . "/g ./**/*"
    botright copen
    exec "redraw!"
    "exec "only"
    "o will open the file in a new tab
    exec "nnoremap <silent> <buffer>o <C-w><CR><C-w>T"
endfunction
command! -nargs=* -complete=file Ag call Ag(<q-args>)
command! -nargs=* -complete=file Ng call Ng(<q-args>)
  • ng.bat里的代码

ng.bat是一个批处理, 用于放在$PATH环境变量用, 经过Ctrl+R来快带调用.css

start gvim -c "Ng %1"
  1. 支持markdown
  • vundlerc里的代码

使用vundle来管理gvim插件.html

Bundle 'vim-pandoc/vim-pandoc'
Bundle 'vim-pandoc/vim-pandoc-syntax'
  • vimrc里的代码
autocmd FileType PANDOC map <silent> <Leader>pd :!pandoc -t docx -o %:r.docx %<cr>
autocmd FileType PANDOC map <silent> <Leader>pt :!pandoc -t html -c default.css -o %:r.html %<cr>

效果

调用查找

查找结果

其它

  • 为何用vimgrep而不用其它查找工具好比grep, ack,ag等等

由于后面这三个在在某些状况下彷佛查不出须要的东西. 具体什么样的文件没有分析出来. 估计与文件编码有关. 但不肯定.git

  • pandoc转换失败?

文件请使用utf-8编码. set fileencoding=utf8vim

  • 本折腾涉及autohotkey, gvim, pandoc三种工具, 若是你刚好在用这三个工具, 却是能够折腾一下. 不然为这一个简陋的笔记引入三个工具实在太折腾了.markdown

  • 本折腾适合与公司内部不容许使用外部笔记,同步工具的状况下的一种离线笔记. 固然离线笔记也有现成的工具,好比免费的职前面提到的CintaNotes, 收费的mybase等. 只不过我想使用markdown罢了. 我我还写了一个CintaNotes插件, 用来支持markdown高亮: VimCintaNotes插件工具

相关文章
相关标签/搜索