-1
私はメモを取る方法で自分の癖を変えたいと思っています。私は、ディレクトリ内YYYYmmddHHiiss.txt
という名前のファイルを追加し、それらをこのように起動したいGTDでのVimの使用
:私が好きな
=Call somebody (title of my note)
@work (context of my note)
!todo (type of the note, I'll use !inbox, !todo, !waiting, !someday and !reference, each one his habit)
#project_name
#call
#Name of the person
#other tags if needed...
Details...
何がある:
Vimの(なしプラグイン、ちょうどビルトイン機能を使用して- ;外部プログラムなし、個人的なvimrcのほんのいくつかの自動作成、マッピング、関数)
- すべてのマイノートを1つのディレクトリに保存し、必要なものを見つけるためにVimとmyタグを信頼します。
- この種のコマンドを1つ使用してこのシステムを使用し始める場合は、
:GtdGrep
と思ってください。
モデル
:GtdGrep !todo @work
:GtdGrep !inbox
:GtdGrep @waiting @home
:GtdGrep !todo @work #this_project
:GtdGrep #name_of_a_co-worker #this_project
今、私はあなたに私の必要性を導入したことを、私は後ろに関数を作成したい^^私の問題を説明起動することができます。GtdGrepコマンドが、たくさんのIドンがあります集めて管理する...ここに私の草案です。最初の空行の前に検索を抑制する方法
let gtd_dir=expand($HOME)."/Desktop/notes"
function! GtdGrep(...)
execute "silent! vimgrep /\%<10l".join(a:000, "\\_.*")."/j ".gtd_dir."/**"
execute "copen"
endfunction
command! -nargs=* GtdGrep call GtdGrep(<f-args>)
- ?私は最初の9行で正規表現
\%<10l
でタグを探しましたが、それだけです。 - ファイル内の位置に関係なくタグを検索するにはどうすればよいですか?私はちょうど復帰用の
\_.*
regexpでいくつかの行にgrepを実行するのに成功しました。 - ケーキのアイシングは、クイックフィックスウィンドウの表示が私のメモのタイトル部分(
/^=
の後)に焦点を当てることになります。私は^=\zs.*\ze
で可能だと思うが、それは1つのvimgrepで私にとっては大変だ!
EDIT私は、以前の結果に連続vimgrepを行うことで、私の "AND" vimgrepの問題を解決します。それは良い解決策ですか?
let gtd_dir=expand($HOME)."/Desktop/notes"
function! GtdGrep(...)
let dest = g:gtd_dir."/**"
for arg in a:000
execute "silent! vimgrep /^".arg."$/j ".dest
let dest = []
let results = getqflist()
if empty(results)
break
else
for res in results
call add(dest, bufname(res.bufnr))
endfor
let dest = join(dest, ' ')
endif
endfor
" Last vimgrep to focus on titles before displaying results
let results = getqflist()
if !empty(results)
echom dest
execute "silent! vimgrep /\\%<10l^=.*/j ".dest
execute "copen"
else
echom "No results"
endif
endfunction
command! -nargs=* GtdGrep call GtdGrep(<f-args>)
私は、最初の空白行の前の行に私のvimgrepを拘束したいのですが、私はこれを行うには成功しませんでした。何か案が?
私の検索パターンについてのコメントが賢明です。理想的には、関数の引数にregexpを使用する可能性があります。あなたが提出するvimgrepコマンドは、foo OR barまたはblah ORを検索するためのものです。私が必要とするのは、どのような順序であっても、最初の行を見てAND正規表現を構築することです。あなたのregexpを改善するための任意のアイデア?私はいくつかの行( '\ _。*')または任意の順序( '??。* foo)(?=。* bar)'で検索するためのいくつかの手掛かりを発見しましたが、 –