一个折腾的笔记系统

孤人 提交于 2019-12-13 18:43:55

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

目标

  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来快带调用.

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

使用vundle来管理gvim插件.

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等等

因为后面这三个在在某些情况下似乎查不出需要的东西. 具体什么样的文件没有分析出来. 估计与文件编码有关. 但不确定.

  • pandoc转换失败?

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

  • 本折腾涉及autohotkey, gvim, pandoc三种工具, 如果你恰好在用这三个工具, 倒是可以折腾一下. 否则为这一个简陋的笔记引入三个工具实在太折腾了.

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!