如何将 Vim 变成一个 Word 处理器

信不信由你,我使用 Vim 作为我的日常文字处理器。 我喜欢它简单的布局和它的模式设计,它有利于在鼠标点击之上的键盘命令。

虽然你可能知道 Vim 是一个更适合编码而不是散文的文本编辑器,但通过一些调整,你也可以像现在一样编写文档 Word 或 LibreOffice,同时留在舒适的终端范围内。

入门

如果您还没有熟悉 Vim 的基础知识,请查看这篇文章,这是四篇系列文章中的第一篇。 确保您了解如何打开文本文件、进入和退出程序,以及使用键盘在屏幕上移动,然后再进一步了解此内容。

安装

您的 Linux 发行版可能在其软件包存储库中附带了 Vim,因此您可以使用软件管理器或软件包管理器轻松安装它。 当您稍后编辑 Vim 的配置文件时,您可以作为普通用户执行此操作。

Arch Linux:

Fedora:

Ubuntu:

其他人都可以从其 Github 存储库中获取 Vim:

Vim 配置文件

Vim 的安装可能会在您的主目录中创建一个 .vimrc 文件。 如果没有,请创建一个:

你可以用 Vim 本身打开它:

我们的 Word 处理器

现在您可能正在查看一个空文件。 让我们改变它。

我们可以创建一个名为“WordProcessor”的函数,您可以随时调用它。 它看起来像这样:

现在您将函数视为一个整体,我们可以分解它的各个部分。 接下来查看我们函数中用单引号注释掉的部分,单独的行是灰色的。

1.运动变化与 map j gjmap k gk

您在这里看到的是 Vim 中光标移动工作方式的变化。 如果你阅读了本文开头提到的之前的 Vim 文章,你就会知道 j 向下移动光标,k 向上移动光标。 类似地,gj 和 gk 使您上下移动,但它们逐行移动光标 屏幕上 而不是文件中的行。

我们将 j/k 映射到 gj/gk 使您的光标能够在屏幕上的换行中上下移动。 当您键入长段落并且需要轻松地将光标移动到这些段落的中间时,这会有所帮助。

2. 使用“setlocal”命令格式化文本

首先,看 setlocal formatoptions=1. “Formatoptions”可让您从多种文本格式模式中进行选择。 在选项“1”的情况下,Vim 将避免在一个字母的单词后换行。 如果可能,它将尝试在单字母单词之前换行。

下一个, setlocal noexpandtab 让你防止 Vim 将制表符变为空格。 作为一个 example,“expandtab”设置将告诉 Vim 将您按下的 Tab 键更改为适合相同长度的多个空格。 “Noexpandtab”则相反; 它将您的 Tab 按下保留为单个字符。

setlocal wrap 告诉 Vim 在文本到达屏幕末尾时换行。 这是您对文字处理器所期望的行为。

最后, setlocal linebreak 让 Vim 在合理的地方打破你的界限。 它可以防止您的行被包裹在适合屏幕的最后一个字符处。 这就是为什么,在某种程度上,您会看到文本行在它们换行之前到达屏幕上的各个点。 在下面的屏幕截图中查看这篇文章的未完成副本的外观

3. 拼写和离线词库

Vim 带有内置的拼写检查功能。 您可以使用以下命令使您的“WordProcessor”功能使用该功能 setlocal spell spelllang=en_us. 您可以在此处以逗号分隔的列表定义多种语言。

在这个 Vim FTP 站点上找到更多的语言文件。 将您选择的文件(每种语言的 .spl 和 .sug 文件)放在“$HOME/.vim/spell/”中。 将函数的行更改为 set spelllang=en_us,nl,medical, 为了 example检查英语、荷兰语和医学词汇。

拼写错误的单词将在您的文本中显示为下划线和粗体。

Vim 拼写检查

您可以通过输入搜索替换 :z= 在普通模式下。 (使用 Escape 键进入正常模式。)该命令将产生如下图所示的屏幕。

Vim 拼写错误的单词建议

你可以使用 Vim 的词库功能,告诉它你选择的词库目录 set thesaurus+=/home/<user>/.vim/thesaurus/mthesaur.txt 或类似的。 您可以找到“mthesaur.txt”文件 在古腾堡计划. 将下载的文本文件放入您使用该命令定义的目录中。

通过进入插入模式(在普通模式下按 i)搜索与突出显示的单词相似的单词,然后键入 Ctrl + x 和 Ctrl + t。 它将向您显示一个类似于下图的列表,您可以滚动浏览该列表以查找新单词。

Vim 词库建议

有时建议不是最好的。

4. 使用“完成”选项自动完成单词

看着 set complete+=s 供我们最后考虑。 这个选项告诉 Vim 在你的词库中搜索你想要自动完成的单词。

通常,您可以通过让 Vim 查看您之前输入的单词来自动完成单词,例如以下屏幕截图中的“拼写错误”和“错误”。 您只需进入插入模式并键入 Ctrl + n 或 Ctrl + p 即可查找一个单词,例如,半拼写的“mis”匹配。

Vim 自动补全建议

看看前两个选项不是来自同义词库吗? 如果我们的函数没有使用“complete+=s”,那么这两行是您在这里看到的唯一选项。 您可以省略或注释掉该行以更快地自动完成。

开始你的 Word 处理器

使 WordProcessor 函数工作的 .vimrc 的最后一行是 com! WP call WordProcessor(). 它可以让你输入 :WP 在普通模式下设置 Vim 的文字处理能力。

您可以编辑此行中的“WP”以阅读您喜欢的任何内容 – 只需确保文本是连续的。 您选择的任何文本都会将命令更改为 :<your-text>.

结论

我在这里讨论的功能只持续一个 Vim 会话。 因此,当你 close 并重新打开 Vim,默认设置将再次生效。 即使您再次打开同一个文件,也会发生这种情况。

您可以在函数之外设置这些选项以使它们一直工作,但它们可能无法正确处理 Vim 需要处理的许多编程任务。 无论如何,输入几个字符并不难。 享受您的新设置以及您已将终端变成强大的段落编辑器这一事实。

订阅我们的新闻!

我们的最新教程直接发送到您的收件箱

注册所有时事通讯。 注册即表示您同意我们的隐私政策并且欧洲用户同意数据传输政策。 我们不会共享您的数据,您可以随时取消订阅。 订阅