|
Tamas Papp |
|
|
Hi,
I just started using notmuch. It is fascinating, but I still need to figure out a few things: 1. How can I restrict searches (eg of my inbox) to the last few messages (eg 50-100) or some date (eg last 2 weeks)? I am using the Emacs interface. 2. Could someone point me to some guides on workflow with notmuch in Emacs? So far I have been using mutt, and I guess I need to rethink a few things. 3. If I have multiple accounts, how can I change my e-mail address (From:) when I am writing messages (within emacs, using the m key). Thanks, Tamas _______________________________________________ notmuch mailing list [hidden email] http://notmuchmail.org/mailman/listinfo/notmuch |
|
albin stjerna-2 |
|
|
On Fri, 3 Feb 2012 12:59:34 +0100, Tamas Papp <[hidden email]> wrote:
> Hi, Hi Tamas, and (I suppose) welcome to the Notmuch mailing list! > I just started using notmuch. It is fascinating, but I still need to > figure out a few things: > > 1. How can I restrict searches (eg of my inbox) to the last few > messages (eg 50-100) or some date (eg last 2 weeks)? I am using the > Emacs interface. Well, the query syntax is <start unix timestamp>..<end unix timestamp>. I know there's been talk on the list about some way to use it more easily in the queries, and it wouldn't be hard to write a function that generated a query using a more human-friendly notation of time. So far I don't know about anyone actually having written such a function though, but I wouldn't be surprised if someone has. > 2. Could someone point me to some guides on workflow with notmuch in > Emacs? So far I have been using mutt, and I guess I need to rethink a > few things. Possibly. I've only used mutt briefly and a very long time ago, so I don't really remember, but as you've probably already seen notmuch relies very heavily on tags, as opposed to just about any other email client out there (except Gmail, which I've found to be very similar). So »inbox«, »archived«, »read« and so on isn't really »boxes« the way one is used to, rather than separate labels you can set (and unset) on each thread. My workflow is something like this: first I fetch mail from IMAP using offlineimap, then I run a script that tags incoming mail as personal, list, notmuch, rss and so on (notmuch is also my RSS reader). I've set the saved searches in Emacs to show fairly standard »tag:<tag title> AND tag:inbox« searches for most of my tags. Then each morning, I begin by processing »personal« from the top to the bottom, because the »personal« tag is the one most likely to contain important and/or time-critical mail (in effect it is the catch-all tag for all mail that isn't directed to a mailing list or otherwise filtered out as probably uninteresting). If you're interested, I can send you my mail tagging script. When I'm done with each mail I archive it (using the standard keybinding »a«). Most mails are handled more or less immediately, but some (in particular posts from RSS) take longer time to read. Those I tag with »read/review« using a custom keybinding »T«. I can then process those when I have the time. > 3. If I have multiple accounts, how can I change my e-mail address > (From:) when I am writing messages (within emacs, using the m key). I'm mostly changing this by just typing my other email address (and tab-completing it of course). I actually haven't thought about there being any other way, but now that you mention it there probably is. :) Hope this helps! Albin _______________________________________________ notmuch mailing list [hidden email] http://notmuchmail.org/mailman/listinfo/notmuch |
|
Tomi Ollila-2 |
|
|
In reply to this post by Tamas Papp
On Fri, 3 Feb 2012 12:59:34 +0100, Tamas Papp <[hidden email]> wrote:
> Hi, > > I just started using notmuch. It is fascinating, but I still need to > figure out a few things: > > 1. How can I restrict searches (eg of my inbox) to the last few > messages (eg 50-100) or some date (eg last 2 weeks)? I am using the > Emacs interface. Currently, if you have GNU date you can run from command line: date +%s.. --date '2 weeks ago' Then paste the string 1327300096.. to the search field. > 2. Could someone point me to some guides on workflow with notmuch in > Emacs? So far I have been using mutt, and I guess I need to rethink a > few things. guides??? what guides??? ;) http://notmuchmail.org/ has some (old) practices available... > 3. If I have multiple accounts, how can I change my e-mail address > (From:) when I am writing messages (within emacs, using the m key). This is something I've long been planning to look out but so far my needs have been so small that the effort threshold has not been passed... > Thanks, > > Tamas Tomi _______________________________________________ notmuch mailing list [hidden email] http://notmuchmail.org/mailman/listinfo/notmuch |
|
Jesse Rosenthal |
|
|
On Mon, 06 Feb 2012 08:51:15 +0200, Tomi Ollila <[hidden email]> wrote:
> On Fri, 3 Feb 2012 12:59:34 +0100, Tamas Papp <[hidden email]> wrote: > > > > 1. How can I restrict searches (eg of my inbox) to the last few > > messages (eg 50-100) or some date (eg last 2 weeks)? I am using the > > Emacs interface. > > Currently, if you have GNU date you can run from command line: > > date +%s.. --date '2 weeks ago' > > Then paste the string 1327300096.. to the search field. FWIW, I actually have a hacky date parser baked into my remote-usage-and-other-stuff script (a more idiosyncratc python version of the bash script on the wiki). I found that I needed date-searching pretty frequently, since language and senders seem to be repeated pretty often in my world. It just parses a "date:" term, passes it to GNU date, and proceeds with a term in notmuch language. It also does some day-rounding, since by "date:'2 days ago'..yesterday", I mean "beginning of day before yesterday to end of yesterday," not "48 hours ago until 24 hours ago." I'm not swearing by its efficiency, or even its correctness, but it has made my life easier. The basics are as follows: DATE_PATTERN = re.compile(r'^date:([^.]+)(\.\.)?([^.]+)?') def replace_date_args(st): out = subprocess.check_output([GNU_DATE, "+%s", "-d", st]) return out.strip() def round_day_down(timestamp): tup = datetime.fromtimestamp(int(timestamp)).date().timetuple() return time.mktime(tup) def round_day_up(timestamp): date = datetime.fromtimestamp(int(timestamp)).date() date += timedelta(days=1) tup = date.timetuple() return time.mktime(tup) def parse_date_args(st): re_match = DATE_PATTERN.match(st) if re_match: grps = re_match.groups() start_term = grps[0] if not (grps[1] or grps[2]): stop_term = start_term elif not grps[2]: stop_term = "now" else: stop_term = grps[2] try: start = round_day_down(replace_date_args(start_term)) stop = round_day_up(replace_date_args(stop_term)) return "%d..%d" % (start, stop) except OSError: return st else: return st And then in the main routine, I have a parse-and-replace step: args = sys.argv[1:] try: if args[-1] == ")'": args = args[:-2] + shlex.split(sys.argv[-2]) + [")'"] else: args = args[:-1] + shlex.split(sys.argv[-1]) except IndexError, ValueError: pass args = [parse_date_args(a) for a in args] I'm only giving the relevant parts here, of course. Best, Jesse _______________________________________________ notmuch mailing list [hidden email] http://notmuchmail.org/mailman/listinfo/notmuch |
| Powered by Nabble | See how NAML generates this page |