我使用 Linux 大约 25 年了,在此之前使用 Unix 几年。在此期间,我培养了对一些日常使用工具的偏好。我使用的最重要的工具之一是 Vim 编辑器。
我在 90 年代初学习 Solaris 时开始使用 Vi,因为我被告知它始终可以在任何系统上使用,我的经验证明这是真的。我尝试过其他编辑器,它们都可以完成工作。但是,我发现 Vim 最适合我,而且我经常使用它,以至于我的 Vim 肌肉记忆导致我即使在使用其他编辑器时也尝试使用它的命令键。
此外,我真的很喜欢 Vim。
许多配置文件使用 Vi 而不是 Vim,您可以运行 vi
命令。但是,vi
命令是指向 vim
的链接。
许多 Linux 工具使用模拟或直接调用 Nano、Emacs 或 Vim 的编辑器。其他一些工具允许用户(比如那些有明确偏好的用户)链接到他们喜欢的编辑器。对我影响最大的两个例子是 Bash 命令行编辑(默认使用 Emacs)和 Alpine 文本模式电子邮件客户端(默认使用 Pico 编辑器)。事实上,Pico 编辑器是专门为 Pine 电子邮件客户端编写的,Pine 电子邮件客户端是 Alpine 的前身。
并非所有使用外部编辑器的程序都是可配置的。有些仅使用开发人员指定的编辑器。对于那些可配置的应用程序,有不同的方法来选择您首选的编辑器。
Linux 命令行编辑
除了实际编辑文本文件外,我使用的另一个需要最多编辑的工具是 Bash shell。默认的 Bash 编辑器是 Emacs。虽然我用过 Emacs,但我绝对更喜欢 Vim。所以很多年前,我将 Bash 命令行编辑的默认编辑风格从 Emacs 切换到 Vim,这让我感觉更舒服。
配置 Bash 有多种方法。您可以使用本地配置文件,例如 /home/yourhomedirectory/.bashrc
,它只会更改您的用户帐户的默认设置,而不会更改同一系统上的其他用户。我更喜欢全局更改这些类型的更改,基本上意味着我的个人帐户和 root。在第二种情况下,您可以创建自己的配置文件并将其放在 /etc/profile.d
目录中。
我添加了一个名为 myBashConfig.sh
的文件到/etc/profile.d。/etc/profile.d
目录中包含所有已安装的 shell 的文件。在启动终端会话期间,每个 shell 只会根据文件名扩展名读取为它指定的文件。例如,Bash shell 只读取扩展名为 .sh
的文件。
<SNIP>
alias vim='vim -c "colorscheme desert" '
# Set vi for bash editing mode
set -o vi
# Set vi as the default editor for all apps that check this
EDITOR=vi
<SNIP>
此全局 Bash 配置文件段中的行 set -o vi 将 Vi 设置为默认编辑器。此 set 命令上的 -o 选项将 vi 定义为编辑器。您需要关闭任何正在运行的 Bash 会话并打开新的会话才能使其生效。
此时,您现在可以使用所有熟悉的 Vim 编辑命令,包括光标移动。只需按 Escape 键进入 Vim 编辑模式。我特别喜欢多次使用 b 向后移动多个单词的光标的能力。
将 Vim 设置为其他程序的默认编辑器
一些 Linux 命令行工具和程序检查 $EDITOR 环境变量以确定要使用哪个编辑器。您可以使用以下命令检查此变量的当前值。我在我新安装的虚拟机上执行此操作以验证默认值实际上是什么。
# echo $EDITOR
/usr/bin/nano
#
默认情况下,检查 $EDITOR 环境变量的 Fedora 程序将使用 Nano 编辑器。如上面的代码片段所示,将行 EDITOR=vi 添加到 myBashConfig.sh
会将默认值更改为 Vi (Vim) 编辑器。并非所有使用外部编辑器的命令行程序都会检查此环境变量。
在 Alpine 中编辑电子邮件
几周前,我决定 Pico 作为我的电子邮件编辑器对我来说不太好用。我可以让它工作,并且在从 Thunderbird 切换到 Alpine 后一段时间内确实这样做了。我发现当我尝试使用 Vim 键序列时,Pico 会妨碍我,从而影响我的生产力。
我在 Alpine 帮助中读到,可以更改默认编辑器。我决定将其更改为 Vim。这实际上很容易做到。
在 Alpine 主菜单上,按 S 键进入设置,然后按 C 进行配置。在Composer Preferences(撰写器首选项)部分中,使用 X 选择 Enable Alternate Editor Command(启用备用编辑器命令)和 Enable Alternate Editor Implicitly(隐式启用备用编辑器)项。在 Advanced User Preferences(高级用户首选项)部分中的几个页面下,找到 Editor(编辑器)行。如果尚未更改,则应如下所示。
Editor = <No Value Set>
使用光标条突出显示此 Editor(编辑器)行,然后按 Enter 键以编辑该行。将 <No Value Set> 更改为 vim,按 Enter,然后按 E 键退出并按 Y 保存您所做的更改。
要使用 Vim 编辑电子邮件,只需输入电子邮件正文,Vim 就会自动启动,就像 Pico 一样。我所有喜欢的编辑功能都在那里,因为它实际上使用的是 Vim。即使是退出 Vim 的 Esc :wq 序列也是相同的。
最后的想法
我非常喜欢 Vim 而不是其他编辑器,我对系统进行的这些更改使其可以在默认情况下使用其他编辑器的程序中使用。一些程序使用 $EDITOR 环境变量,因此您只需进行一次更改。其他程序(如 Alpine)具有用户配置选项,您必须为每个程序单独设置。
这种选择首选外部编辑器的能力非常符合 Unix 哲学宗旨,“每个程序应该只做一件事并做好”。当已经有几个非常好的编辑器时,为什么要编写另一个编辑器呢?它也符合 Linux 哲学宗旨,“使用你最喜欢的编辑器”。
当然,您可以将默认文本模式编辑器更改为 Nano、Pico、EMACS 或您喜欢的任何其他编辑器。
5 条评论