使用 Vim 发送电子邮件和查看日历

在本系列关于 2020 年使用开源提高效率的 20 种方法的第 16 部分中,直接从您的文本编辑器管理您的电子邮件和日历。
83 位读者喜欢这篇文章。
Poll: Upcoming open source conferences

Dafne Cholet。CC BY-SA 2.0。

 

去年,我为您带来了 2019 年的 19 天新(对您而言)效率工具。今年,我采取了不同的方法:构建一个环境,让您在新的一年里更有效率,使用您可能已经在使用或可能没有使用的工具。

用 Vim 做(几乎)所有事情,第 1 部分

我经常使用两个文本编辑器——VimEmacs。 为什么要同时使用两者?它们有不同的用例,我将在本系列的接下来几篇文章中讨论其中的一些用例。

好的,那么为什么要用 Vim 做所有事情呢?因为如果说我能访问的每台机器上都有一个应用程序,那就是 Vim。如果您像我一样,您可能已经花费大量时间在使用 Vim。那么为什么不将它用于所有事情呢?

不过,在那之前,您需要做一些事情。首先是确保您的 Vim 中有 Ruby 支持。您可以使用 vim --version | grep ruby 来检查。如果结果不是 +ruby,则需要修复它。这可能很棘手,您应该查看您的发行版的文档,以找到要安装的正确软件包。在 MacOS 上,这是官方的 MacVim(不是来自 Brew),在大多数 Linux 发行版上,这是 vim-nox 或 vim-gtk——而不是 vim-gtk3。

我使用 Pathogen 来自动加载我的插件和捆绑包。如果您使用 Vundle 或其他 Vim 包管理器,您需要调整下面的命令以使其与它一起工作。

在 Vim 中处理您的电子邮件

使 Vim 成为您提高效率计划中更重要部分的一个好的起点是使用它来发送和接收电子邮件,使用 Notmuch 并使用 abook 访问您的联系人列表。您需要为此安装一些东西。以下所有示例代码都在 Ubuntu 上,因此如果您使用不同的发行版,则需要进行调整。使用以下命令进行设置

sudo apt install notmuch-vim ruby-mail
curl -o ~/.vim/plugin/abook --create-dirs https://raw.githubusercontent.com/dcbaker/vim-abook/master/plugin/abook.vim

到目前为止,一切顺利。现在启动 Vim 并执行 :NotMuch。由于邮件库 notmuch-vim 编写时使用的版本较旧,可能会出现一些警告,但总的来说,Vim 现在将成为功能齐全的 Notmuch 邮件客户端。

Reading Mail in Vim

如果您想搜索特定标签,请键入 \t,输入标签名称,然后按 Enter 键。这将调出包含该标签的所有消息的列表。 \s 组合键会弹出一个 搜索: 提示符,它将对 Notmuch 数据库进行全面搜索。使用箭头键导航消息列表,按 Enter 键显示选定的项目,然后输入 \q 退出当前视图。

要撰写邮件,请使用 \c 键。您将看到一条空白消息。这就是 abook.vim 插件的用武之地。按 Esc 键并输入 :AbookQuery <SomeName>,其中 <SomeName> 是您要查找的姓名或电子邮件地址的一部分。您将获得 abook 数据库中与您的搜索匹配的条目列表。通过键入其编号来选择您想要的地址,将其添加到电子邮件的地址行。完成键入和编辑电子邮件,按 Esc 键退出编辑模式,然后输入 ,s 发送。

如果您想在 :NotMuch 启动时更改默认文件夹视图,您可以将变量 g:notmuch_folders 添加到您的 .vimrc 文件中

let g:notmuch_folders = [
      \ [ 'new', 'tag:inbox and tag:unread' ],
      \ [ 'inbox', 'tag:inbox' ],
      \ [ 'unread', 'tag:unread' ],
      \ [ 'News', 'tag:@sanenews' ],
      \ [ 'Later', 'tag:@sanelater' ],
      \ [ 'Patreon', 'tag:@patreon' ],
      \ [ 'LivestockConservancy', 'tag:livestock-conservancy' ],
    \ ]

Notmuch 插件的文档中涵盖了更多设置,包括设置标签键和使用备用邮件程序。

在 Vim 中查阅您的日历

遗憾的是,似乎没有任何 Vim 日历程序使用 vCalendar 或 iCalendar 格式。有一个 Calendar.vim,它做得非常好。使用以下命令设置 Vim 以访问您的日历

cd ~/.vim/bundle
git clone git@github.com:itchyny/calendar.vim.git

现在,您可以通过输入 :Calendar 在 Vim 中查看您的日历。您可以使用 <> 键在年、月、周、日和时钟视图之间切换。如果您想从特定视图开始,请使用 -view= 标志告诉它您希望看到的视图。您还可以向任何视图添加日期。例如,如果我想查看 2020 年 7 月 4 日这一周会发生什么,我将输入 :Calendar -view week 7 4 2020。帮助非常完善,可以通过 ? 键访问。

Calendar.vim 还支持 Google 日历(我需要它),但在 2019 年 12 月,Google 禁用了对它的访问。作者在 GitHub 上的问题 中发布了一个解决方法。

这就是您所拥有的,您的邮件、地址和日历都在 Vim 中。但您还没有完成;明天您将使用 Vim 做更多的事情!

接下来阅读什么
标签
User profile image.
Kevin Sonney 是一名技术专业人士、媒体制作人和播客。作为 Linux 系统管理员和开源倡导者,Kevin 在 IT 行业拥有超过 25 年的经验,在开源领域拥有超过 15 年的经验。他目前在 Elastic 担任 SRE。

4 条评论

您在那里提出的论点有点违反直觉。这篇文章以“您有 vim”开头,然后开始安装围绕 vim 的大量软件。因此,很自然地推断,如果您需要安装 ruby-mail 和 notmuch,那么为什么不安装真正的电子邮件客户端呢?因为您实际上并没有使用 Vim 来阅读邮件,只是显示它...

这有点像声称“这是如何在 bash 中阅读电子邮件”,然后解释如何安装 mutt。它在您的 bash shell 中运行,不是吗?您只能将这一点延伸到如此程度。

Vim 命令利用新技术

对于任何遇到 vim-notmuch 插件给出“Deprecated”问题的人来说,这是一个简单的修复。插件中使用的方法已被弃用,可以通过使用较新版本轻松修复。按如下方式编辑文件

vi ~/.vim/plugin/notmuch.vim

然后在 vim 中按 esc 键并键入以下内容

:%s/Field\.new/Field.parse/g

然后保存并重启(esc 和 :wq!)并重启 vim。NotMuch 应该可以正常工作,不再有弃用问题。

所有人:文章中遗漏的是“sudo gem install mail”

知识共享许可协议本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.