1
"zeitgeist.vim - a Zeitgeist logger for Vim
2
"Author : Jonathan Lambrechts <jonathanlambrechts@gmail.com>
3
"Installation : drop this file in a vim plugin folder ($HOME/.vim/plugin,/usr/share/vim/vim72/plugin, ...). Vim should be compiled with python enabled.
5
function! ZeigtgeistLog(filename,use_id)
8
"read" : Interpretation.ACCESS_EVENT,
9
"new" : Interpretation.CREATE_EVENT,
10
"write" : Interpretation.MODIFY_EVENT} [vim.eval("a:use_id")]
12
uri = "file://" + vim.eval("a:filename")
13
fi = gio.File(uri).query_info(gio.FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE)
14
mimetype = fi.get_content_type()
15
subject = Subject.new_for_values(
17
text=unicode(uri.rpartition("/")[2]),
18
interpretation=unicode(Interpretation.DOCUMENT),
19
manifestation=unicode(Manifestation.FILE_DATA_OBJECT),
20
origin=unicode(uri.rpartition("/")[0]),
21
mimetype=unicode(mimetype)
23
event = Event.new_for_values(
24
timestamp=int(time.time()*1000),
25
interpretation=unicode(use),
26
manifestation=unicode(Manifestation.USER_ACTIVITY),
27
actor="application://gvim.desktop",
30
zeitgeistclient.insert_event(event)
38
from zeitgeist.client import ZeitgeistClient
39
from zeitgeist.datamodel import Subject, Event, Interpretation, Manifestation
42
zeitgeistclient = ZeitgeistClient()
43
except RuntimeError, e:
44
zeitgeistclient = None
48
au BufRead * call ZeigtgeistLog (expand("%:p"), "read")
49
au BufNewFile * call ZeigtgeistLog (expand("%:p"), "new")
50
au BufWrite * call ZeigtgeistLog (expand("%:p"), "write")