factlog - File ACTivity LOGger
Factlog logs your activity on files and uses it for searching.
Rich command line interface. Useful for unix style searching:
factlog list | xargs grep 'def record'
“I want to see some Python files I edited recently”:
factlog list --include-glob '*.py'
“I want to list files in this particular project I touched. I don’t care about in which branch I opened the file.”:
factlog list --under BRANCH-A --under BRANCH-B --relative
“I want to see last 50 notes I took with title”:
factlog list --under MY-NOTE-DIRECTORY --relative --title --limit 50
“The files I touched are huge. I want to search only the locations I touched.”:
factlog list -C 50 | grep 'def record'
Factlog currently only have Emacs integration. If you make a plugin for other editors, please let me know. See interfaces for plugin for more information.
Factlog has Emacs plugin. You can get factlog.el from factlog repository.
Command line programs
Factlog is easy to integrate with command line programs such as less and vim. See shell/config.sh for sample setup. You can use shell/config.sh like this:
source PATH/TO/factlog/shell/config.sh alias less="factlog-record-wrapper \less" alias vim="factlog-record-wrapper \vim"
Interfaces for plugin
Command line interface
If your editor can run a command line program, it is possible to write a factlog plugin! See factlog record --help.
Work in progress…
Work in progress…
More to come / ideas
- Ranking based on many data points: how many times you write to the file, how recent you visited the file, etc.
- Understand “project” (VCS repository).
- Concurrent grep.
- Extract URLs in the documents and use them as URL bookmark.
Factlog is licensed under LGPL v3. See COPYING for details.