From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp12.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms9.migadu.com with LMTPS id 8Oj0MVkPQGQ0AgAASxT56A (envelope-from ) for ; Wed, 19 Apr 2023 17:57:13 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp12.migadu.com with LMTPS id IGXfMVkPQGRGaAAAauVa8A (envelope-from ) for ; Wed, 19 Apr 2023 17:57:13 +0200 Received: from mail.notmuchmail.org (yantan.tethera.net [IPv6:2a01:4f9:c011:7a79::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id E42E92A91C for ; Wed, 19 Apr 2023 17:57:12 +0200 (CEST) Received: from yantan.tethera.net (localhost [127.0.0.1]) by mail.notmuchmail.org (Postfix) with ESMTP id 2F15F5F6C5; Wed, 19 Apr 2023 15:57:10 +0000 (UTC) Received: from exoco.falsifian.org (exoco.falsifian.org [168.235.109.198]) by mail.notmuchmail.org (Postfix) with ESMTPS id 7E1F95F342 for ; Wed, 19 Apr 2023 15:57:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=2020-07-31; bh=Hz+q6T2H2 qDKLn1+nvJsINoz5IVStk+viimngxhKYxs=; h=in-reply-to:references:subject: cc:to:from:date; d=falsifian.org; b=L3aoenYlYFB5pZ/OI1TSz9UXobAH4Ktfxy fVHp6xVaGZjVb+fULRQEPo8ZQ9VQ9pKpvCeWjdbm6XJojTLT7jm/CXK91aAr9z907m+UFD nxqysEcb/V9WRWk99+m5fUsy85QXQu0ye+tEaXG7Rmr+OpenR7mg1Ev7M61uy7CFGFZsT9 znoKO+yd0YtDtTn/J8d4FZF4kwU7l3AXRL0tAiENspU50SStvmfrkelAqnDcmzgepDbe5t q9wIPNSBhbUuXfTZ0tYx6hGQ2GuG9UFBl0GLDLVBrKP9enEOCm3/SHTEYSPu37lobecDqi JqPy6PJFq05d0f7W+vGsYA/r/DUA== Received: from moth.falsifian.org (cpef81d0f9cb2f3-cmf81d0f9cb2f0.cpe.net.fido.ca [72.140.58.252]) by exoco.falsifian.org (OpenSMTPD) with ESMTPSA id d4138cce (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Wed, 19 Apr 2023 15:57:05 +0000 (UTC) Received: from localhost (moth.falsifian.org [local]) by moth.falsifian.org (OpenSMTPD) with ESMTPA id 772d7372; Wed, 19 Apr 2023 15:57:03 +0000 (UTC) Date: Wed, 19 Apr 2023 15:57:03 +0000 From: James Cook To: Michael J Gruber Subject: Re: Recommended method to pair Notmuch with Neovim? Message-ID: References: <87h6tfjjuy.fsf@ra.horus-it.com> <643d3e7389719_751a294db@chronos.notmuch> <878reqkv37.fsf@ra.horus-it.com> <87r0sim5ue.fsf@jonjfineman.com> <87pm81f1in.fsf@ra.horus-it.com> <878reonahk.fsf@jonjfineman.com> <87ttxcdczn.fsf@ra.horus-it.com> <168188941816.175140.2575980894072905411.michaeljgruber+grubix+git@gmail.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <168188941816.175140.2575980894072905411.michaeljgruber+grubix+git@gmail.com> Message-ID-Hash: OBENJJXCRBFP4SWPHXXAIIF7FMOL5WNH X-Message-ID-Hash: OBENJJXCRBFP4SWPHXXAIIF7FMOL5WNH X-MailFrom: falsifian@falsifian.org X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-notmuch.notmuchmail.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: notmuch@notmuchmail.org X-Mailman-Version: 3.3.3 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Migadu-Country: DE X-Migadu-Flow: FLOW_IN ARC-Seal: i=1; s=key1; d=yhetil.org; t=1681919833; a=rsa-sha256; cv=none; b=ZB7VChX50qUd6ARFMxA/T8CwzwTqQqiyTvzvV+gMuZTmauBaojbxWoxnaC+AiQ3/mHQrqe kEtAGiJV7Z+fDgt2WRl+6MFTgL9VemxetYysl3GjWmgxHfsmWHHqiySnABglvgTZlH0uL6 zlkgmRwI9zR+G2NpXhfGLnlSM2Kv1qYGiMExzRjMUmdI1JX0J3vdIFxSizr9PURJxcTP1Q +zjdmMD5Jw2e87NgAWPsHOfTeMHWyeJ5OuXM3K4HBdns8/kWlRvs7VsSOxaE97hFk9BD6c +2/ULm6AA8ThYYv2qA11zXEpbMHHGFICpp2GzrR6aYAdgoENTid3tfzRcWvVIg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("body hash did not verify") header.d=falsifian.org header.s=2020-07-31 header.b=L3aoenYl; dmarc=fail reason="SPF not aligned (relaxed)" header.from=falsifian.org (policy=none); spf=pass (aspmx1.migadu.com: domain of notmuch-bounces@notmuchmail.org designates 2a01:4f9:c011:7a79::1 as permitted sender) smtp.mailfrom=notmuch-bounces@notmuchmail.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1681919833; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-owner:list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=QCsdfqxSA/kL3bl/C5YN0BmDPJYapZmoQSuvdvlv8qs=; b=cBNE2Yha+u5M5UQP2NH6LbvXDzfuOSWqfS/+mulnD4bkn1BINK8vnrTPRY9Pr8YfpliGfi 5Fv3navfoIxRwszs38Ukjg3H76urim8Qq3WOHjGgfij/VayHYCs0djH4mJ2wqg5wVBnqW4 PB0cxs14SHd1bPrLZdUcI5YDqk7gt3diV7E89FaUpob+hdjdu97d6RXeNW3+RpGvbnjkjx 6n7qVu5AhoYp0RNzsbmJMTiJvy6rFQq5t+svCBVijcfF+W2+HrdoqUqp1kiRvMueFkuSLW 4TVnTnEBTRbDwIAO3bniD4ZYugcDMUiW3bHTEJLQkLaB22YdYEyfyuph7rOo+Q== X-Migadu-Scanner: scn1.migadu.com X-Migadu-Spam-Score: 0.74 X-Spam-Score: 0.74 X-Migadu-Queue-Id: E42E92A91C Authentication-Results: aspmx1.migadu.com; dkim=fail ("body hash did not verify") header.d=falsifian.org header.s=2020-07-31 header.b=L3aoenYl; dmarc=fail reason="SPF not aligned (relaxed)" header.from=falsifian.org (policy=none); spf=pass (aspmx1.migadu.com: domain of notmuch-bounces@notmuchmail.org designates 2a01:4f9:c011:7a79::1 as permitted sender) smtp.mailfrom=notmuch-bounces@notmuchmail.org X-TUID: waQkOJYfjbpW > Is there any good documentation on neomutt's notmuch support beyond what > is on their website? I currently use alot for its great notmuch support > (in particular tag completion with search and tag inyterfaces, multiple > "tabs"/views) but find myself switching to neomutt for its better mime > support (plus s/mime) and features like thread split & join, so far > mostly maildir backed. neomutt's doc probably tell you everything you > need to know to set up a notmuch-friendly user experience, but ... > I know multiple views will not be a thing in neomutt. Easy tagging and > nm-based search are a must, though. Being able to switch to the "maildir > view" of a message (so that you can rearrange messages within your > maildir folder tree) would be a plus. > > Michael I referred to this page a lot: https://neomutt.org/feature/notmuch There was an 11-month gap between releases (due to lingering bugs) so I suggest trying to get a version released this year (though the 20220429 version was working pretty well for me too). Searching: The vfolder-from-query command lets you type a notmuch search query and shows the results like a folder. To refresh the folder's content (e.g. after updating tags) I find it helpful to type "c" to switch folders, and type "^" as the folder name, which means "the folder I'm already at". For some reason "$" doesn't cause the folder to reload. The "entire-thread" command is useful too: if your search pulls in some emails from a thread and you want to see the reast, simply run the "entire-thread" command (I bind it to "+") with the cursor on one of them, and the rest will be added to the current virtual mailbox. Tagging: The modify-labels command lets you type e.g. "-inbox +spam" to change tags. It has tab completion. I've been meaning to add custom shortcuts for comman changes I make, e.g. -inbox. Maildir view: I don't know exactly what you mean by switching to the maildir view of a message. You can freely switch between real maildirs and notmuch search results when changing folders (see vfolder-from-query). Maybe you want a way to automatically go to the real Maildir folder containing the selected search result; I don't know if that's possible (and there could be ambiguity if files in different folders have the same message id). You might have to run "notmuch new" after making maildir changes? Other / example config: "%g" in the index_format option shows a message's tags. I've copied most of my own config below the signature. -- James ## ## Folder configuration ## set folder=~/var/mbsync/falsifian.org set spool_file="notmuch inbox" set postponed=+Drafts set record=+Sent ## ## Notmuch and mailboxes ## set nm_db_limit=10000 set nm_exclude_tags="spam" set nm_record=yes named-mailboxes "notmuch inbox" "notmuch://?query=tag:inbox and not tag:reading" ## ## Aliases ## alias a-b agora-business@agoranomic.org # etc...; instead of aliases, I mostly use my address book stored in khard by # pressing ctrl-T after typing the beginning of a name; see the "query_command" # option below. ## ## Key bindings, including macros ## # Make it (hopefully) really hard to accidentally delete messages. unbind * d unbind * "\Cd" bind index S vfolder-from-query # From https://neomutt.org/feature/custom-tags bind index,pager \` modify-labels # From https://neomutt.org/feature/notmuch bind index,pager + entire-thread ## ## Miscellaneous ## set forward_format="Fwd: %s" set from="James Cook " set index_format="%[%g%m%d %H%M] %Z %-15.15L %s%* |%g %?E?%e/%E?" set pager_index_lines=5 set pager_stop set query_command="khard email --parsable %s" set send_charset="utf-8" # Without this, sending mail from a DragonflyBSD machine via my SMTP server to the Agora mail lists fails because the envelope-from ends up being falsifian@ instead of agora@falsifian.org. set use_envelope_from=yes # I don't know if these are relevant to notmuch; I added these lines when I was # using IMAP with neomutt. # # Caching. header_cache_backend is appended later by drist script. # Use the same directory for both caches. (The manual says this will work.) set header_cache="~/.cache/neomutt" set message_cachedir="~/.cache/neomutt" # Per-recipient settings, and generic default settings. (Without the default # send-hook, the per-recipient settings would stick, since they last until the # end of the session.) send-hook . 'unmy_hdr From: ; set signature="echo James|"' send-hook '~t ^(agora-.*@agoranomic.org\|agora@listserver.tue.nl)$' 'my_hdr From: Falsifian ; set signature="echo Falsifian|"' # Header weeding and ordering ignore * unignore from date subject to cc list-id reply-to hdr_order subject from date to cc list-id reply-to set header_cache_backend="kyotocabinet"