linux修改vim配置文件 linux vim怎么保存文件和退出文件

Vim 是我最喜爱的编辑器 。对于那些默认使用其他编辑器的程序,我对系统所做的这些改变可以使得 Vim 成为它们默认编辑器 。

linux修改vim配置文件 linux vim怎么保存文件和退出文件

文章插图
【linux修改vim配置文件 linux vim怎么保存文件和退出文件】我使用 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目录中 。
我在 /etc/profile.d中添加了一个名为myBashConfig.sh的文件 。/etc/profile.d目录中存放了所有已安装的 shell 的启动文件 。在启动终端会话时,每个 shell 仅会根据文件名的扩展名,读取为其准备的启动文件 。例如,Bash shell 只读取扩展名为.sh的文件 。
alias vim=vim -c "colorscheme desert"# 把 vi 设置为 Bash 的默认编辑器set -o vi# 为所有检查 $EDITOR 变量的程序设置默认编辑器为 viEDITOR=vi在这个全局 Bash 配置文件段中,set -o vi将 Vi 设置为默认编辑器 。这个set命令中的-o选项将vi定义为编辑器 。为使配置生效,你需要关闭所有正在运行的 Bash 会话 , 并打开新的会话 。
现在,你现在可以使用所有你熟悉的 Vim 命令,包括光标移动 。只要按下 Esc键就可以进入 Vim 编辑模式 。我特别喜欢多次使用b将光标移回多个字的功能 。
将 Vim 设置为其他程序的默认值一些 Linux 命令行工具和程序会检查 $EDITOR环境变量来决定使用哪个编辑器 。你可以用下面的命令检查这个变量的当前值 。我在一个新安装的虚拟机上运行过该命令,以查看默认的编辑器到底是什么 。
# echo $EDITOR/usr/bin/nano#默认情况下,检查 $EDITOR环境变量的 Fedora 程序会使用 Nano 编辑器 。在myBashConfig.sh中添加一行EDITOR=vi(如上面的片段所示) , 可以将默认值改为 Vi(Vim)编辑器 。然而,不是所有使用外部编辑器的命令行程序都会检查这个环境变量 。
在 Alpine 中编辑电子邮件几周前 , 我认为 Pico 不太适合作为我的电子邮件编辑器 。我可以使用它,而且在从 Thunderbird 转到 Alpine之后的一段时间内我也用了一段时间 。但我发现,Pico 妨碍了我,我总是习惯使用 Vim 按键序列,这影响了我的工作效率 。
我在 Alpine 的用户帮助中看到,默认编辑器是可以修改的 。我决定把它改成 Vim 。实际上这很容易做到 。
在 Alpine 主菜单上,按 S键进入设置,然后按C键进行配置 。在 “编辑器设置Composer Preferences” 部分 , 按X选择 “启用外部编辑器命令Enable Alternate Editor Command” 和 “隐式启用外部编辑器Enable Alternate Editor Implicitly” 项目 。在往下滚动几页的 “高级用户设置Advanced User Preferences” 部分,找到 `Editor 那一行 。如果它还没有被修改的话 , 它应该是这样的:
Editor =用光标栏突出显示 Editor这一行,然后按回车键来编辑 。将 改为vim,再按回车键,然后按E键退出,最后按Y键保存修改 。
要用 Vim 编辑电子邮件,只需进入电子邮件正文,Vim 就会自动启动 , 就像 Pico 那样 。所有我喜欢的编辑功能都还在,因为它实际上是在使用 Vim 。甚至退出 Vim 的 Esc :wq序列也是一样的 。
总结与其他编辑器相比 , 我更喜欢 Vim,对我的系统进行的这些改动后,那些默认使用其他编辑器的应用程序,将使用 Vim 来替代它们的默认编辑器 。有些程序使用 $EDITOR环境变量,因此你只需要做一次修改就够了 。其他有用户配置选项的程序,如 Alpine , 则必须为每个程序单独设置 。
这种可以选择你喜欢的外部编辑器的能力,非常符合 Unix 哲学的宗旨:“每个程序都只做一件事 , 而且要做得出色” 。既然已经有几个优秀的编辑器,为什么还要再写一个呢?而且它也符合 Linux 哲学的宗旨:“使用你最喜欢的编辑器” 。
当然,你可以把你的默认文本编辑器改为 Nano、Pico、Emacs 或任何其他你喜欢的编辑器 。
via: https://opensource.com/article/22/2/configure-vim-default-editor
作者:David Both选题:lujun9972译者:lkxed校对:wxy
本文由 LCTT原创编译,Linux中国荣誉推出