我使用 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
#
默认情况下,Fedora 程序会检查 $EDITOR 环境变量,并将使用 Nano 编辑器。将代码片段中所示的 EDITOR=vi 行添加到 myBashConfig.sh
会将默认值更改为 Vi (Vim) 编辑器。并非所有使用外部编辑器的命令行程序都会检查此环境变量。
在 Alpine 中编辑电子邮件
几周前,我决定 Pico 作为我的电子邮件编辑器对我来说效果不佳。我可以使其工作,并且在从 Thunderbird 切换到 Alpine 后,我使用了一段时间。我发现当我尝试使用 Vim 键序列时,Pico 会妨碍我,影响我的工作效率。
我在 Alpine 帮助中读到可以更改默认编辑器。我决定将其更改为 Vim。这实际上非常容易做到。
在 Alpine 主菜单上,按 S 键进入设置,然后按 C 进入配置。在作曲器首选项部分中,使用 X 选择启用备用编辑器命令和隐式启用备用编辑器项。在高级用户首选项部分向下滚动几页,找到 编辑器 行。如果尚未更改,则应如下所示。
Editor = <No Value Set>
使用光标栏突出显示此 编辑器 行,然后按 Enter 键编辑该行。将 <未设置值> 更改为 vim,按 Enter 键,然后按 E 键退出,再按 Y 键保存您所做的更改。
要使用 Vim 编辑电子邮件,只需输入电子邮件正文,Vim 就会自动启动,就像 Pico 一样。我所有喜欢的编辑功能都在那里,因为它实际上是在使用 Vim。甚至退出 Vim 的 Esc :wq 序列也是相同的。
最终想法
我非常喜欢 Vim 而不是其他编辑器,我对系统进行的这些更改使其可以在默认情况下使用不同编辑器的程序中作为默认编辑器使用。某些程序使用 $EDITOR 环境变量,因此您只需进行一次更改。其他程序(如 Alpine)具有用户配置选项,您必须为每个程序单独设置。
这种选择您首选的外部编辑器的能力非常符合 Unix 哲学宗旨,“每个程序都应该做好一件事并做好”。当已经有几个非常好的编辑器时,为什么要编写另一个编辑器呢?它也符合 Linux 哲学宗旨,“使用您最喜欢的编辑器。”
当然,您可以将默认文本模式编辑器更改为 Nano、Pico、EMACS 或您喜欢的任何其他编辑器。
5 条评论