Kevin Sonney 发布的文章

在 2020 年用开源实现更高生产力的二十种方式的最后一篇文章中,了解开源世界还需要什么。

去年,我在 19 天里给你介绍了 19 个新(对你而言)的生产力工具。今年,我换了一种方式:使用你在使用或者还没使用的工具,构建一个使你可以在新一年更加高效的环境。

然而…

在搜索生产力应用程序时,我找不到想要的所有应用,而且几乎总是会丢失一些读者与我分享的精彩内容。 因此,当我结束本系列文章时,是时候再次谈论我在本年度系列文章中未能涵盖的一些主题。

 title=

在 Vim 中聊天

我试过了。我真的非常、非常想能够在 Vim 中聊天,但我做不到。我找到的一个软件包 VimIRC.vim 一直就工作不起来,我试了几天也没用。我探索的另一个选项是 Irc it,这需要我付出更多的努力去设置,超过了我正常可以付出的耐心或时间。我尝试过了,也确实做到了,但对于同处于相同境地的 Vim 用户,对不起,我无法帮到你。

Org 模式

 title=

我喜欢 Org 模式,并且每天都使用它。关于 Org 模式我可以滔滔不绝的说上几天。它提供了基本的任务跟踪;谷歌日历同步和 CalFW 集成;富文本文档、网站和演示文稿;链接到任何事物;等等、等等……

我希望你会在 2020 年从我这里收到更多有关 Org 模式的信息,因为它真的很酷。

图形用户界面程序

在 2019 年的生产力系列中,我共享了很多图形用户界面程序,而今年几乎都是命令行应用程序。有一些很棒的图形程序可以帮助解决我今年谈论的一些问题,例如可以使用 Maildir 邮箱的邮件程序、用于读取本地日历文件的日历程序、天气应用程序等等。我甚至尝试了几项对我而言新奇的事物,看它们是否适合这个主题。除了 twin 之外,我没有感觉到有什么图形用户界面程序是新颖的(对我而言)或值得注意的(同样对我而言)是今年要写的。至于……

移动应用程序

越来越多的人将平板电脑(有时与笔记本电脑结合使用)作为主要设备。我将手机用于大多数社交媒体和即时消息传递,并且经常使用平板电脑(好的,老实说,好几个平板电脑)来阅读或浏览网络。可以肯定的是,并不是没有开源移动应用程序,但是它们与我今年的主题不符。开源和移动应用程序正在发生很多变化,我正在仔细地寻找可以帮助我在手机和平板电脑上提高工作效率的事物。

该你了

非常感谢你阅读今年的系列文章。请你发表评论,告诉我错过的或需要在 2021 年看到的内容。正如我在 Productivity Alchemy 播客上所说:“哥们,记着:要保持生产力!”

本系列汇总

  1. 使用 Syncthing 在多个设备间同步文件
  2. 使用 Stow 管理多台机器配置
  3. 使用 OfflineIMAP 同步邮件
  4. 使用 Notmuch 组织你的邮件
  5. 使用 khal 和 vdirsyncer 组织和同步你的日历
  6. 用于联系人管理的三个开源工具
  7. 开始使用开源待办事项清单管理器
  8. 使用这个 Python 程序记录你的活动
  9. 一个通过 IRC 管理所有聊天的开源聊天工具
  10. 使用这个 Twitter 客户端在 Linux 终端中发推特
  11. 在 Linux 终端中阅读 Reddit
  12. 使用此开源工具在一起收取你的 RSS 订阅源和播客
  13. 使用这个开源工具获取本地天气预报
  14. 使用此开源窗口环境一次运行多个控制台
  15. 使用 tmux 创建你的梦想主控台
  16. 使用 Vim 发送邮件和检查日历
  17. 使用 Vim 管理任务列表和访问 Reddit 和 Twitter
  18. 使用 Emacs 发送电子邮件和检查日历
  19. 使用 Emacs 进行社交并跟踪你的待办事项列表
  20. 我的愿望清单上的 4 种开源生产力工具

via: https://opensource.com/article/20/1/open-source-productivity-tools

作者:Kevin Sonney 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

在 2020 年用开源实现更高生产力的二十种方式的第十九篇文章中,访问 Twitter、Reddit、 交谈、电子邮件 、RSS 和你的待办事项列表。

去年,我在 19 天里给你介绍了 19 个新(对你而言)的生产力工具。今年,我换了一种方式:使用你在使用或者还没使用的工具,构建一个使你可以在新一年更加高效的环境。

使用 Emacs 做(几乎)所有的事情,第 2 部分

昨天,我谈到了如何在 Emacs 中读取电子邮件、访问电子邮件地址和显示日历。Emacs 功能繁多,你还可以将它用于 Twitter、交谈、待办事项列表等等!

 title=

要完成所有这些,你需要安装一些 Emacs 包。和昨天一样,用 Meta+x package-manager 打开 Emacs 包管理器(Meta 键在大多数键盘上是 Alt,在 MacOS 上是 Option)。然后通过 i 选择以下带有的软件包,然后输入 x 进行安装:

nnreddit
todotxt
twittering-mode

安装之后,按下 Ctrl+x ctrl+f 打开 ~/.emacs.d/init.el,并在 (custom-set-variables 行前加上:

;; Todo.txt
(require 'todotxt)
(setq todotxt-file (expand-file-name "~/.todo/todo.txt"))

;; Twitter
(require 'twittering-mode)
(setq twittering-use-master-password t)
(setq twittering-icon-mode t)

;; Python3 for nnreddit
(setq elpy-rpc-python-command "python3")

按下 Ctrl+x Ctrl+s 保存文件,使用 Ctrl+x Ctrl+c 退出 Emacs,然后重启 Emacs。

使用 twittering-mode 在 Emacs 中发推

 title=

Twittering-mode 是 Twitter 最好的 Emacs 接口之一。它几乎支持 Twitter 的所有功能,并且键盘快捷键也易于使用。

首先,输入 Meta+x twit 来启动 twittering-mode。它会提供一个 URL 并提示你启动浏览器来访问它,你登录该 URL 后就能获得授权令牌。将令牌复制并粘贴到 Emacs 中,你的 Twitter 时间线就会加载了。你可以使用箭头键滚动,使用 Tab 从一个项目移动到另一个项目,并按回车访问光标所在的 URL。如果光标在用户名上,按回车将在 web 浏览器中打开时间轴。如果你在一条推文的文本上,按回车将回复该推文。你可以用 u 创建一个新的推文,用 Ctrl+c+Enter 转发一些内容,然后用 d 发送一条即时消息——它打开的对话框中有关于如何发送、取消和缩短 URL 的说明。

V 会打开一个提示让你跳转到其他时间线。输入 :mentions 打开你的提及。输入 :home 打开你的主时间线,输入用户名将进入该用户的时间线。最后,按 q 会退出 twittering-mode 并关闭窗口。

twitter-mode 还有更多功能,我鼓励你阅读它 GitHub 页面上的完整功能列表

在 Emacs 上使用 Todotxt.el 追踪你的待办事项

 title=

Todotxt.el 是一个很棒的 todo.txt 待办列表管理器接口。它的快捷键几乎无所不包。

输入 Meta+x todotxt 启动它将加载 todotxt-file 变量中指定的 todo.txt 文件(本文的第一部分中设置了该文件)。在 todo.txt 的缓冲区(窗口),你可以按 a 添加新任务并和按 c 标记它已被完成。你还可以使用 r 设置优先级,并使用 t 添加项目和上下文。完成事项后只需要按下 A 即可将任务移如 done.txt。你可以使用 / 过滤列表,也可以使用 l 刷新完整列表。同样,你可以按 q 退出。

在 Emacs 中使用 ERC 进行交谈

 title=

Vim 的缺点之一是很难用它与人交谈。另一方面,Emacs 则将 ERC 客户端内置到默认发行版中。使用 Meta+x ERC 启动 ERC,系统将提示你输入服务器、用户名和密码。你可以使用几天前介绍设置 BitlBee 时使用的相同信息:服务器为 localhost,端口为 6667,相同用户名,无需密码。

ERC 使用起来与其他 IRC 客户端一样。每个频道单独一个缓冲区(窗口),你可以使用 Ctrl+x ctrl+b 进行频道间切换,这也可以在 Emacs 中的其他缓冲区之间进行切换。/quit 命令将退出 ERC。

使用 Gnus 阅读电子邮件,Reddit 和 RSS

 title=

我相信昨天在我提及在 Emacs 中阅读邮件时,许多 Emacs 的老用户会问,“怎么没有 Gnus 呢?”

这个疑问很合理。Gnus 是一个内置在 Emacs 中的邮件和新闻阅读器,尽管它这个邮件阅读器不支持以 Notmuch 作为搜索引擎。但是,如果你将其配置来阅读 Reddit 和 RSS feed(稍后你将这样做),那么同时使用它来阅读邮件是个聪明的选择。

Gnus 是为阅读 Usenet 新闻而创建的,并从此发展而来。因此,它的很多外观和感觉(以及术语)看起来很像 Usenet 的新闻阅读器。

Gnus 以 ~/.gnus 作为自己的配置文件。(该配置也可以包含在 ~/.emacs.d/init.el 中)。使用 Ctrl+x Ctrl+f 打开 ~/.gnus,并添加以下内容:

;; Required packages
(require 'nnir)
(require 'nnrss)

;; Primary Mailbox
(setq gnus-select-method
      '(nnmaildir "Local"
                  (directory "~/Maildir")
                  (nnir-search-engine notmuch)
      ))
(add-to-list 'gnus-secondary-select-methods
             '(nnreddit ""))

Ctrl+x Ctrl+s 保存文件。这分配置告诉 Gnus 从 ~/Maildir 这个本地邮箱中读取邮件作为主源(参见 gnus-select-method 变量),并使用 nnreddit 插件添加辅源(gnus-secondary-select-methods 变量)。你还可以定义多个辅助源,包括 Usenet 新闻(nntp)、IMAP (nnimap)、mbox(nnmbox)和虚拟集合(nnvirtual)。你可以在 Gnus 手册 中了解更多有关所有选项的信息。

保存文件后,使用 Meta+x Gnus 启动 Gnus。第一次运行将在 Python 虚拟环境中安装 Reddit 终端查看器,Gnus 通过它获取 Reddit 上的文章。然后它会启动浏览器来登录 Reddit。之后,它会扫描并加载你订阅的 Reddit 群组。你会看到一个有新邮件的邮件夹列表和一个有新内容的看板列表。在任一列表上按回车将加载该组中的消息列表。你可以使用箭头键导航并按回车加载和读取消息。在查看消息列表时,按 q 将返回到前一个视图,从主窗口按 q 将退出 Gnus。在阅读 Reddit 群组时,a 会创建一条新消息;在邮件组中,m 创建一个新的电子邮件;并且在任何一个视图中按 r 回复邮件。

你还可以向 Gnus 接口中添加 RSS 流,并像阅读邮件和新闻组一样阅读它们。要添加 RSS 流,输入 G+R 并填写 RSS 流的 URL。会有提示让你输入 RSS 的标题和描述,这些信息可以从流中提取出来并填充进去。现在输入 g 来检查新消息(这将检查所有组中的新消息)。阅读 RSS 流 就像阅读 Reddit 群组和邮件一样,它们使用相同的快捷键。

Gnus 中有很多功能,还有大量的键组合。Gnus 参考卡为每个视图列出了所有这些键组合(以非常小的字体显示在 5 页纸上)。

使用 nyan-mode 查看位置

最后,你可能会一些截屏底部注意到 Nyan cat。这是 nyan-mode,它指示了你在缓冲区中的位置,因此当你接近文档或缓冲区的底部时,它会变长。你可以使用包管理器安装它,并在 ~/.emacs.d/init.el 中使用以下代码进行设置:

;; Nyan Cat
(setq nyan-wavy-trail t)
(setq nyan-bar-length 20)
(nyan-mode)

Emacs 的基本功能

这只是 Emacs 所有功能的皮毛。Emacs 非常强大,是我用来提高工作效率的必要工具之一,无论我是在追踪待办事项、阅读和回复邮件、编辑文本,还是与朋友和同事交流我都用它。这需要一点时间来适应,但是一旦你习惯了,它就会成为你桌面上最有用的工具之一。


via: https://opensource.com/article/20/1/emacs-social-track-todo-list

作者:Kevin Sonney 选题:lujun9972 译者:lujun9972 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

在 2020 年用开源实现更高生产力的二十种方式的第十八篇文章中,使用 Emacs 文本编辑器管理电子邮件和查看日程安排。

去年,我给你们带来了 2019 年的 19 天新生产力工具系列。今年,我将采取一种不同的方式:建立一个新的环境,让你使用已用或未用的工具来在新的一年里变得更有效率。

使用 Emacs 做(几乎)所有的事情,第 1 部分

两天前,我曾经说过我经常使用 VimEmacs,在本系列的 1617 天,我讲解了如何在 Vim 中做几乎所有的事情。现在,Emacs 的时间到了!

 title=

在深入之前,我需要说明两件事。首先,我这里使用默认的 Emacs 配置,而不是我之前写过Spacemacs。为什么呢?因为这样一来我使用的就是默认快捷键,从而使你可以参考文档,而不必将“原生的 Emacs” 转换为 Spacemacs。第二,在本系列文章中我没有对 Org 模式进行任何设置。Org 模式本身几乎可以自成一个完整的系列,它非常强大,但是设置可能非常复杂。

配置 Emacs

配置 Emacs 比配置 Vim 稍微复杂一些,但以我之见,从长远来看,这样做是值得的。首先我们创建一个配置文件,并在 Emacs 中打开它:

mkdir ~/.emacs.d
emacs ~/.emacs.d/init.el

接下来,向内置的包管理器添加一些额外的包源。在 init.el 中添加以下内容:

(package-initialize)
(add-to-list 'package-archives '("melpa" . "<http://melpa.org/packages/>"))
(add-to-list 'package-archives '("org" . "<http://orgmode.org/elpa/>") t)
(add-to-list 'package-archives '("gnu" . "<https://elpa.gnu.org/packages/>"))
(package-refresh-contents)

使用 Ctrl+x Ctrl+s 保存文件,然后按下 Ctrl+x Ctrl+c 退出,再重启 Emacs。Emacs 会在启动时下载所有的插件包列表,之后你就可以使用内置的包管理器安装插件了。输入 Meta+x 会弹出命令提示符(大多数键盘上 Meta 键就是的 Alt 键,而在 MacOS 上则是 Option)。在命令提示符下输入 package-list-packages 就会显示可以安装的包列表。遍历该列表并使用 i 键选择以下包:

bbdb
bbdb-vcard
calfw
calfw-ical
notmuch

选好软件包后按 x 安装它们。根据你的网络连接情况,这可能需要一段时间。你也许会看到一些编译错误,但是可以忽略它们。安装完成后,使用组合键 Ctrl+x Ctrl+f 打开 ~/.emacs.d/init.el,并在 (package-refresh-packages) 之后、 (custom-set-variables 之前添加以下行到文件中。 (custom-set-variables 行由 Emacs 内部维护,你永远不应该修改它之后的任何内容。以 ;; 开头的行则是注释。

;; Set up bbdb
(require 'bbdb)
(bbdb-initialize 'message)
(bbdb-insinuate-message)
(add-hook 'message-setup-hook 'bbdb-insinuate-mail)
;; set up calendar
(require 'calfw)
(require 'calfw-ical)
;; Set this to the URL of your calendar. Google users will use
;; the Secret Address in iCalendar Format from the calendar settings
(cfw:open-ical-calendar "<https://path/to/my/ics/file.ics>")
;; Set up notmuch
(require 'notmuch)
;; set up mail sending using sendmail
(setq send-mail-function (quote sendmail-send-it))
(setq user-mail-address "[[email protected]][9]"
      user-full-name "My Name")

现在,你已经准备好使用自己的配置启动 Emacs 了!保存 init.el 文件(Ctrl+x Ctrl+s),退出 Emacs(Ctrl+x Ctrl+c),然后重启之。这次重启要多花些时间。

使用 Notmuch 在 Emacs 中读写电子邮件

一旦你看到了 Emacs 启动屏幕,你就可以使用 Notmuch 来阅读电子邮件了。键入 Meta+x notmuch,你将看到 notmuch 的 Emacs 界面。

 title=

所有加粗的项目都是指向电子邮件视图的链接。你可以通过点击鼠标或者使用 tab 键在它们之间跳转并按回车来访问它们。你可以使用搜索栏来搜索 Notmuch 的数据库,语法与 Notmuch 命令行上的语法 相同。如果你愿意,还可以使用 [save] 按钮保存搜索以便未来使用,这些搜索会被添加到屏幕顶部的列表中。如果你进入一个链接就会看到一个相关电子邮件的列表。你可以使用箭头键在列表中导航,并在要读取的消息上按回车。按 r 可以回复一条消息,f 转发该消息,q 退出当前屏幕。

你可以通过键入 Meta+x compose-mail 来编写新消息。撰写、回复和转发都将打开编写邮件的界面。写完邮件后,按 Ctrl+c Ctrl+c 发送。如果你决定不发送它,按 Ctrl+c Ctrl+k 关闭消息撰写缓冲区(窗口)。

使用 BBDB 在 Emacs 中自动补完电子邮件地址

 title=

那么通讯录怎么办?这就是 BBDB 发挥作用的地方。但首先我们需要从 abook 导入所有地址,方法是打开命令行并运行以下导出命令:

abook --convert --outformat vcard --outfile ~/all-my-addresses.vcf --infile ~/.abook/addresses

Emacs 启动后,运行 Meta+x bbdb-vcard-import-file。它将提示你输入要导入的文件名,即 ~/all-my-address.vcf。导入完成后,在编写消息时,可以开始输入名称并使用 Tab 搜索和自动完成 “to” 字段的内容。BBDB 还会打开一个联系人缓冲区,以便你确保它是正确的。

既然在 vdirsyncer 中已经为每个地址都生成了对应的 .vcf 文件了,为什么我们还要这样做呢?如果你像我一样,有许多地址,一次处理一个地址是很麻烦的。这样做,你就可以把所有的东西都放在 abook 里,做成一个大文件。

使用 calfw 在 Emacs 中浏览日历

 title=

最后,你可以使用 Emacs 查看日历。在上面的配置中,你安装了 calfw 包,并添加了一些行来告诉它在哪里可以找到要加载的日历。Calfw 是 “ Emacs 日历框架 Calendar Framework for Emacs ”的简称,它支持多种日历格式。我使用的是谷歌日历,这也是我放在配置中的链接。日历将在启动时自动加载,你可以通过 Ctrl+x+b 命令切换到 cfw-calendar 缓冲区来查看日历。

Calfw 提供日、周、双周和月视图。你可以在日历顶部选择视图,并使用箭头键导航日历。不幸的是,calfw 只能查看日历,所以你仍然需要使用 khal 之类的工具或通过 web 界面来添加、删除和修改事件。

这就是 Emacs 中的邮件、日历和邮件地址。明天我会展示更多。


via: https://opensource.com/article/20/1/emacs-mail-calendar

作者:Kevin Sonney 选题:lujun9972 译者:lujun9972 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

在 2020 年用开源实现更高生产力的二十种方式的第十七篇文章中,了解在编辑器中处理待办列表以及获取社交信息。

去年,我在 19 天里给你介绍了 19 个新(对你而言)的生产力工具。今年,我换了一种方式:使用你在使用或者还没使用的工具,构建一个使你可以在新一年更加高效的环境。

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

昨天的文章中,你开始用 Vim 检查邮件和日历。今天,你可以做的更多。首先,你会在 Vim 编辑器中跟踪任务,然后获取社交信息。

使用 todo.txt-vim 在 Vim 中跟踪待办任务

 title=

使用 Vim 编辑一个文本待办事件是一件自然的事,而 todo.txt-vim 包使其更加简单。首先安装 todo.txt-vim 包:

git clone https://github.com/freitass/todo.txt-vim ~/.vim/bundle/todo.txt-vim
vim ~/path/to/your/todo.txt

todo.txt-vim 自动识别以 todo.txtdone.txt 结尾的文件作为 todo.txt 文件。它添加特定于 todo.txt 格式的键绑定。你可以使用 \x 标记“已完成”的内容,使用 \d 将其设置为当前日期,然后使用 \a\b\c 更改优先级。你可以提升(\k)或降低(\j)优先级,并根据项目(\s+)、上下文(\s@)或日期(\sd)排序(\s)。完成后,你可以和平常一样关闭和保存文件。

todo.txt-vim 包是我几天前写的 todo.sh 程序的一个很好的补充,使用 todo edit 加载项,它可以增强的你待办事项列表跟踪。

使用 vim-reddit 读取 Reddit

 title=

Vim 还有一个不错的用于 Reddit 的加载项,叫 vim-reddit。它不如 Tuir 好,但是用于快速查看最新的文章,它还是不错的。首先安装捆绑包:

git clone https://github.com/DougBeney/vim-reddit.git ~/.vim/bundle/vim-reddit
vim

现在输入 :Reddit 将加载 Reddit 首页。你可以使用 :Reddit name 加载特定子板。打开文章列表后,使用箭头键导航或使用鼠标滚动。按 o 将在 Vim 中打开文章(除非它多媒体文章,它会打开浏览器),然后按 c 打开评论。如果要直接转到页面,请按 O 而不是 o。只需按 u 就能返回。当你 Reddit 看完后,输入 :bd 就行。vim-reddit 唯一的缺点是无法登录或发布新文章和评论。话又说回来,有时这是一件好事。

使用 twitvim 在 Vim 中发推

 title=

最后,我们有 twitvim,这是一个于阅读和发布 Twitter 的 Vim 软件包。它需要更多设置。首先从 GitHub 安装 twitvim:

git clone https://github.com/twitvim/twitvim.git ~/.vim/bundle/twitvim

现在你需要编辑 .vimrc 文件并设置一些选项。它帮助插件知道使用哪些库与 Twitter 交互。运行 vim --version 并查看哪些语言的前面有 + 就代表你的 Vim 支持它。

 title=

因为我的是 +perl -python +python3,所以我知道我可以启用 Perl 和 Python 3 但不是 Python 2 (python)。

" TwitVim Settings
let twitvim_enable_perl = 1
" let twitvim_enable_python = 1
let twitvim_enable_python3 = 1

现在,你可以通过运行 :SetLoginTwitter 启动浏览器窗口,它会打开一个浏览器窗口要求你授权 VimTwit 访问你的帐户。在 Vim 中输入提供的 PIN 后就可以了。

Twitvim 的命令不像其他包中一样简单。要加载好友和关注者的时间线,请输入 :FriendsTwitter。要列出提及你的和回复,请使用 :MentionsTwitter。发布新推文是 :PosttoTwitter <Your message>。你可以滚动列表并输入 \r 回复特定推文,你可以用 \d 直接给某人发消息。

就是这些了。你现在可以在 Vim 中做(几乎)所有事了!


via: https://opensource.com/article/20/1/vim-task-list-reddit-twitter

作者:Kevin Sonney 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

在 2020 年用开源实现更高生产力的二十种方式的第十六篇文章中,直接通过文本编辑器管理你的电子邮件和日历。

去年,我在 19 天里给你介绍了 19 个新(对你而言)的生产力工具。今年,我换了一种方式:使用你在使用或者还没使用的工具,构建一个使你可以在新一年更加高效的环境。

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

我经常使用两个文本编辑器 —— 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 邮件客户端。

 title=

如果要搜索特定标签,请输入 \t,输入标签名称,然后按回车。这将拉出一个带有该标签的所有消息的列表。\s 组合键会弹出 Search: 提示符,可以对 Notmuch 数据库进行全面搜索。使用箭头键浏览消息列表,按回车键显示所选项目,然后输入 \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 中查询日历

遗憾的是,似乎没有使用 vCalendar 或 iCalendar 格式的 Vim 日历程序。有个 Calendar.vim,做得很好。设置 Vim 通过以下方式访问你的日历:

cd ~/.vim/bundle
git clone [email protected]:itchyny/calendar.vim.git

现在,你可以通过输入 :Calendar 在 Vim 中查看日历。你可以使用 <> 键在年、月、周、日和时钟视图之间切换。如果要从一个特定的视图开始,请使用 -view= 标志告诉它你希望看到哪个视图。你也可以在任何视图中定位日期。例如,如果我想查看 2020 年 7 月 4 日这一周的情况,请输入 :Calendar -view week 7 4 2020。它的帮助信息非常好,可以使用 ? 键参看。

Calendar.vim 还支持 Google Calendar(我需要),但是在 2019 年 12 月,Google 禁用了它的访问权限。作者已在 GitHub 上的这个提案中发布了一种变通方法。

这样你就在 Vim 中有了这些:你的邮件、地址簿和日历。但是这些还没有完成; 下一篇你将在 Vim 上做更多的事情!

Vim 为作家提供了很多好处,无论他们是否具有技术意识。

需要保持时间表正确吗?了解如何使用这些免费的开源软件来做到这一点。


via: https://opensource.com/article/20/1/vim-email-calendar

作者:Kevin Sonney 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

使用 tmux 可以做很多事情,尤其是在将 tmuxinator 添加到其中时。在我们的二十篇系列文章的第十五期中查看它们,以在 2020 年实现开源生产力的提高。

去年,我在 19 天里给你介绍了 19 个新(对你而言)的生产力工具。今年,我换了一种方式:使用你在使用或者还没使用的工具,构建一个使你可以在新一年更加高效的环境。

使用 tmux 和 tmuxinator 全部放到主控台上

到目前为止,在本系列文章中,我已经撰写了有关单个应用程序和工具的文章。从今天开始,我将把它们放在一起进行全面设置以简化操作。让我们从命令行开始。为什么使用命令行?简而言之,在命令行上工作可以使我能够从运行 SSH 的任何位置访问许多这些工具和功能。我可以 SSH 进入我的一台个人计算机,并在工作计算机上运行与我的个人计算机上所使用的相同设置。我要使用的主要工具是 tmux

大多数人都只使用了 tmux 非常基础的功能,比如说在远程服务器上打开 tmux,然后启动进程,也许还会打开第二个会话以查看日志文件或调试信息,然后断开连接并在稍后返回。但是其实你可以使用 tmux 做很多工作。

 title=

首先,如果你有一个已有的 tmux 配置文件,请对其进行备份。tmux 的配置文件是 ~/.tmux.conf。将其移动到另一个目录,例如 ~/tmp。现在,用 Git 克隆 Oh My Tmux 项目。从该克隆目录中将 .tmux.conf 符号链接到你的家目录,并复制该克隆目录中的 .tmux.conf.local 文件到家目录中以进行调整:

cd ~
mkdir ~/tmp
mv ~/.tmux.conf ~/tmp/
git clone https://github.com/gpakosz/.tmux.git
ln -s ~/.tmux/.tmux.conf ./
cp ~/.tmux/.tmux.conf.local ./

.tmux.conf.local 文件包含了本地设置和覆盖的设置。例如,我稍微更改了默认颜色,然后启用了 Powerline 分隔线。下面的代码段仅显示了我更改过的内容:

tmux_conf_theme_24b_colour=true
tmux_conf_theme_focused_pane_bg='default'
tmux_conf_theme_pane_border_style=fat
tmux_conf_theme_left_separator_main='\uE0B0'
tmux_conf_theme_left_separator_sub='\uE0B1'
tmux_conf_theme_right_separator_main='\uE0B2'
tmux_conf_theme_right_separator_sub='\uE0B3'
#tmux_conf_battery_bar_symbol_full='◼'
#tmux_conf_battery_bar_symbol_empty='◻'
tmux_conf_battery_bar_symbol_full='♥'
tmux_conf_battery_bar_symbol_empty='·'
tmux_conf_copy_to_os_clipboard=true
set -g mouse on

请注意,你不需要安装 Powerline,你只需要支持 Powerline 符号的字体即可。我在与控制台相关的所有内容中几乎都使用 Hack Nerd Font,因为它易于阅读并且具有许多有用的额外符号。你还会注意到,我打开了操作系统剪贴板支持和鼠标支持。

现在,当 tmux 启动时,底部的状态栏会以吸引人的颜色提供更多信息。Ctrl + b 仍然是输入命令的 “引导” 键,但其他一些进行了更改。现在水平拆分(顶部/底部)窗格为 Ctrl + b + -,垂直拆分为 Ctrl + b + _。启用鼠标模式后,你可以单击以在窗格之间切换,并拖动分隔线以调整其大小。打开新窗口仍然是 Ctrl + b + n,你现在可以单击底部栏上的窗口名称在它们之间进行切换。同样,Ctrl + b + e 将打开 .tmux.conf.local 文件以进行编辑。退出编辑器时,tmux 将重新加载配置,而不会重新加载其他任何内容。这很有用。

到目前为止,我仅对功能和视觉显示进行了一些简单的更改,并增加了鼠标支持。现在,我将它设置为以一种有意义的方式启动我想要的应用程序,而不必每次都重新定位和调整它们的大小。为此,我将使用 tmuxinator。tmuxinator 是 tmux 的启动器,它允许你指定和管理布局以及使用 YAML 文件自动启动应用程序。要使用它,请启动 tmux 并创建要在其中运行程序的窗格。然后,使用 Ctrl + b + n 打开一个新窗口,并执行 tmux list-windows。你将获得有关布局的详细信息。

 title=

请注意上面代码中的第一行,我在其中设置了四个窗格,每个窗格中都有一个应用程序。保存运行时的输出以供以后使用。现在,运行 tmuxinator new 20days 以创建名为 “20days” 的布局。这将显示一个带有默认布局文件的文本编辑器。它包含很多有用的内容,我建议你阅读所有选项。首先输入上方的布局信息以及所需的应用程序:

# /Users/ksonney/.config/tmuxinator/20days.yml
name: 20days
root: ~/
windows:
   - mail:
      layout: d9da,208x60,0,0[208x26,0,0{104x26,0,0,0,103x26,105,0,5},208x33,0,27{104x33,0,27,1,103x33,105,27,4}]] @0
      panes:
        - alot
        - abook
        - ikhal
        - todo.sh ls +20days

注意空格缩进!与 Python 代码一样,空格和缩进关系到文件的解释方式。保存该文件,然后运行 tmuxinator 20days。你应该会得到四个窗格,分别是 alot 邮件程序、abook、ikhal(交互式 khal 的快捷方式)以及 todo.txt 中带有 “+20days” 标签的任何内容。

 title=

你还会注意到,底部栏上的窗口标记为 “Mail”。你可以单击该名称(以及其他命名的窗口)以跳到该视图。漂亮吧?我在同一个文件中还设置了名为 “Social” 的第二个窗口,包括 TuirNewsboat、连接到 BitlBee 的 IRC 客户端和 Rainbow Stream

tmux 是我跟踪所有事情的生产力动力之源,有了 tmuxinator,我不必在不断调整大小、放置和启动我的应用程序上费心。


via: https://opensource.com/article/20/1/tmux-console

作者:Kevin Sonney 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出