在 Linux 上把 Vim 配置为默认编辑器

news2024/11/14 6:06:50

图片

目录

⛳️推荐

在 Linux 命令行中编辑

将 Vim 设置为其他程序的默认值

在 Alpine 中编辑电子邮件

总结


⛳️推荐

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站

我使用 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 变量的程序设置默认编辑器为 vi

EDITOR=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    = <No Value Set>

用光标栏突出显示 Editor 这一行,然后按回车键来编辑。将 <No Value Set> 改为 vim,再按回车键,然后按 E 键退出,最后按 Y 键保存修改。

要用 Vim 编辑电子邮件,只需进入电子邮件正文,Vim 就会自动启动,就像 Pico 那样。所有我喜欢的编辑功能都还在,因为它实际上是在使用 Vim。甚至退出 Vim 的 Esc :wq 序列也是一样的。

总结

与其他编辑器相比,我更喜欢 Vim,对我的系统进行的这些改动后,那些默认使用其他编辑器的应用程序,将使用 Vim 来替代它们的默认编辑器。有些程序使用 $EDITOR 环境变量,因此你只需要做一次修改就够了。其他有用户配置选项的程序,如 Alpine,则必须为每个程序单独设置。

这种可以选择你喜欢的外部编辑器的能力,非常符合 Unix 哲学的宗旨:“每个程序都只做一件事,而且要做得出色”。既然已经有几个优秀的编辑器,为什么还要再写一个呢?而且它也符合 Linux 哲学的宗旨:“使用你最喜欢的编辑器”。

当然,你可以把你的默认文本编辑器改为 Nano、Pico、Emacs 或任何其他你喜欢的编辑器。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1616031.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深入docker-swarm overlay网络模型

目录 1.简介 2.网络模型 3.docker_gwbridge网络 3.1.docker_gwbridge网关地址 3.2.检查docker_gwbridge网络 3.2.1.查找任务容器eth接口 3.2.2.查找ingress-sbox容器eth接口 4.检查ingress网络 4.1.检查ingress网络 4.2.检查ingress网络的命名空间 4.2.1.查找任务容…

Linux查看僵尸进程

1、查看系统是否有僵尸进程 使用Top命令查找&#xff0c;当zombie前的数量不为0时&#xff0c;即系统内存在相应数量的僵尸进程。 2、定位僵尸进程 使用命令ps -A -ostat,ppid,pid,cmd |grep -e ‘^[Zz]’定位僵尸进程以及该僵尸进程的父进程。 3、杀死僵尸进程 使用Kill -…

深入了解直播美颜工具与视频美颜SDK的实现与优化策略

今天&#xff0c;小编将为大家详解视频美颜SDK技术的视线方案与优化策略。 一、美颜工具的实现原理 利用特征提取算法提取人脸的各种特征&#xff0c;如皮肤色调、眼睛大小等。接下来&#xff0c;根据用户设定的美颜参数&#xff0c;对提取的特征进行修改。最后&#xff0c;将…

Unet网络架构讲解(从零到一,逐行编写并重点讲解数据维度变化)

&#x1f4da;博客主页&#xff1a;knighthood2001 ✨公众号&#xff1a;认知up吧 &#xff08;目前正在带领大家一起提升认知&#xff0c;感兴趣可以来围观一下&#xff09; &#x1f383;知识星球&#xff1a;【认知up吧|成长|副业】介绍 ❤️感谢大家点赞&#x1f44d;&…

【bug】使用mmsegmentaion遇到的问题

利用mmsegmentaion跑自定义数据集时的bug处理&#xff08;使用bisenetV2&#xff09; 1. ValueError: val_dataloader, val_cfg, and val_evaluator should be either all None or not None, but got val_dataloader{batch_size: 1, num_workers: 4}, val_cfg{type: ValLoop}, …

Mysql 在Windows Server系统下修改数据文件存储路径遇到的坑

因项目需要搭建一个Mysql数据库&#xff0c;为了方便日常运维操作开始选择了Windows Server 2012R2(已有的虚拟机)&#xff0c;考滤到要300G空间&#xff0c;原来的盘空间不够了,就是给虚拟机加了磁盘&#xff0c;Mysql 8.0.26社区版安装路径没得选择&#xff0c;默认就装在C&a…

OpenHarmony开发实例:【 待办事项TodoList】

简介 TodoList应用是基于OpenHarmony SDK开发的安装在润和HiSpark Taurus AI Camera(Hi3516d)开发板标准系统上的应用&#xff1b;应用主要功能是以列表的形式&#xff0c;展示需要完成的日程&#xff1b;通过本demo可以学习到 JS UI 框架List使用&#xff1b; 运行效果 样例…

记一次 Vscode + Latex 正向/反向搜索忽然失效

遥望大半个月前&#xff0c;完成论文撰写后&#xff0c;这些天虽然多次打开项目&#xff0c;但我真的一个字都没动过&#xff0c;今天想着开始着手修改一下&#xff0c;打开项目发现正向/反向搜索忽然失效了&#xff0c;感觉浑身有蚂蚁在爬&#xff0c;思索再三后找到问题&…

端口被占用的解决方案汇总

端口被占用的解决方案汇总 【一】windows系统端口被占用【二】Linux系统端口被占用【三】Linux的ps命令查找&#xff08;1&#xff09;ps命令常用的方式有三种&#xff08;2&#xff09;ps -ef |grep 8080 【一】windows系统端口被占用 &#xff08;1&#xff09;键盘上按住Wi…

javaEE初阶——多线程(八)——常见的锁策略 以及 CAS机制

T04BF &#x1f44b;专栏: 算法|JAVA|MySQL|C语言 &#x1faf5; 小比特 大梦想 此篇文章与大家分享分治算法关于多线程进阶的章节——关于常见的锁策略以及CAS机制 如果有不足的或者错误的请您指出! 多线程进阶 1.常见的锁策略 我们需要了解的是,我们使用是锁,在加锁 / 解锁…

【软考】UML中的关系

目录 1. 说明2. 依赖3. 关联4. 泛化5. 实现 1. 说明 1.UML中有4种关系&#xff1a;依赖、关联、泛化和实现2.这 4种关系是 UML,模型中可以包含的基本关系事物。它们也有变体&#xff0c;例如&#xff0c;依赖的变体有精化、跟踪、包含和延伸 2. 依赖 1.依赖(Dependency)。2.…

文心一言 VS 讯飞星火 VS chatgpt (242)-- 算法导论17.4 1题

一、假定我们希望实现一个动态的开地址散列表。为什么我们需要当装载因子达到一个严格小于 1 的值 a 时就认为表满&#xff1f;简要描述如何为动态开地址散列表设计一个插入算法&#xff0c;使得每个插入操作的摊还代价的期望值为 O(1) 。为什么每个插入操作的实际代价的期望值…

Excel如何计算时间差

HOUR(B1-A1)&"小时 "&MINUTE(B1-A1)&"分钟 "&SECOND(B1-A1)&"秒"

下级平台级联EasyCVR视频汇聚安防监控平台后,设备显示层级并存在重复的原因排查和解决

视频汇聚平台/视频监控系统/国标GB28181协议EasyCVR安防平台可以提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制、平台级联、磁盘阵列存储、视频集中存储、云存储等丰富的视频能力&#xff0c;平台支持7*24小时实时高清视频监控&#xff0c;能同时…

机器学习-10-基于paddle实现神经网络

文章目录 总结参考本门课程的目标机器学习定义第一步&#xff1a;数据准备第二步&#xff1a;定义网络第三步&#xff1a;训练网络第四步&#xff1a;测试训练好的网络 总结 本系列是机器学习课程的系列课程&#xff0c;主要介绍基于paddle实现神经网络。 参考 MNIST 训练_副…

深入剖析机器学习领域的璀璨明珠——支持向量机算法

在机器学习的广袤星空中&#xff0c;支持向量机&#xff08;Support Vector Machine&#xff0c;简称SVM&#xff09;无疑是一颗璀璨的明珠。它以其独特的分类能力和强大的泛化性能&#xff0c;在数据分类、模式识别、回归分析等领域大放异彩。本文将详细剖析SVM算法的原理、特…

MLLM | InternLM-XComposer2-4KHD: 支持336 像素到 4K 高清的分辨率的大视觉语言模型

上海AI Lab&#xff0c;香港中文大学等 论文标题:InternLM-XComposer2-4KHD: A Pioneering Large Vision-Language Model Handling Resolutions from 336 Pixels to 4K HD 论文地址:https://arxiv.org/abs/2404.06512 Code and models are publicly available at https://gi…

互联网扭蛋机小程序:打破传统扭蛋机的局限,提高销量

扭蛋机作为一种适合全年龄层的娱乐消费方式&#xff0c;深受人们的喜欢&#xff0c;通过一个具有神秘性的商品给大家带来欢乐。近几年&#xff0c;扭蛋机在我国的发展非常迅速&#xff0c;市场规模在不断上升。 经过市场的发展&#xff0c;淘宝线上扭蛋机小程序开始流行起来。…

一文讲透彻Redis 持久化

文章目录 ⛄1.RDB持久化&#x1fa82;&#x1fa82;1.1.执行时机&#x1fa82;&#x1fa82;1.2.RDB原理&#x1fa82;&#x1fa82;1.3.小结 ⛄2.AOF持久化&#x1fa82;&#x1fa82;2.1.AOF原理&#x1fa82;&#x1fa82;2.2.AOF配置&#x1fa82;&#x1fa82;2.3.AOF文件…

40+ Node.js 常见面试问题 [2024]

今天就开始你的Node.js生涯。在这里&#xff0c;我们探讨了最佳Node.js面试问题和答案&#xff0c;以帮助应届生和经验丰富的候选人获得理想的工作。 Node.js 是许多大公司技术堆栈的重要组成部分&#xff0c;例如 PayPal、Trello、沃尔玛和 NASA。 根据 ZipRecruiter 的数据&…