From: [email protected]
Date: 2018-01-06
Subject: Contact Management with Ranger and Vim

We  all  keep a list of contacts. Family, friends, colleagues, ser-
vice providers -- everyone from your  Mom  to  the  pizza  delivery
place.  Before  contact management went digital, people had address
books and those circular Rolodex card organizers. For a while, peo-
ple  kept  contact information in PDAs and spreadsheets. Soon after
that, address books were built into  feature  phones.  Today,  just
having  a  Google account gives you access to basic, but well-inte-
grated, contact management features.

There are lots of tools that will store names  and  addresses,  but
this  falls short if you need to track your interactions over time.
On the other end of the scale are tools like  Goldmine  and  Sales-
force,  but  these are overkill for most individuals, both in terms
of cost and complexity. Since I got into contracting,  I've  needed
to  keep  track  of  very basic contact information, but also track
conversations I've been having with each of my contacts. I actually
stumbled  onto  this  solution while testing out ranger, a console-
based file manager for Unix-like environments. I found that  ranger
would not only list the files in a folder, but provide a preview of
the currently selected file. From within ranger, I can open a  text
file in my default editor. Ranger does this *out of the box*.

I  combined  my work journal idea with basic contact management and
came up with the following solution. Information for  each  contact
is stored in its own text file. This includes properties like name,
email address, phone number, and any other property I might want to
record. Doing it this way, I don't need to impose a consistent data
model on each contact record.  Each  file  also  includes  a  date-
stamped  log  of  interactions: notes from emails, phone calls, and
meetings. Looking at this refreshes my memory when a call comes  in
or  when  I'm  writing a follow-up email. Using GNU text processing
tools gives me even more ways to work with this information.

I've recorded a short (2 minutes) demo of this workflow.  Most  im-
portantly,  I  hope this demonstrates how a do-it-yourself approach
can deliver a solution that fits your needs and workflow.

[1]: https://asciinema.org/a/yYuo52Vrpd1NRw6JiOH4mr1cs