从实用的角度聊聊Linux下文本编辑器VIM

本文从实用的角度聊聊Vim的常用命令。何为实用?我举个不实用的例子大家就明白了,用vim写代码。;)

“vim是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,和Emacs并列成为类Unix系统用户最喜欢的文本编辑器。”   ——摘自百度百科

vim功能强大,但很多人写代码都不用,因为有更好的编辑代码的软件(时代进步了)。但尽管如此,依然无法掩饰vim编辑器在某些领域用处不凡,有很多配置文件用vim编辑我感觉非他莫属,下面来聊一聊vim的使用。重点讲解复制一段文本粘贴文本删除行查找字符串等这些常用的操作。

vim是vi的增强版本,在终端输入vim命令后面加上文件名即可打开文件,例如:

vim test.txt

当然文件也可以是加路径的,没问题。如果目标文件存在,则vim打开该文件,若目标文件不存在,则新建该文件。这一点上比较人性化,不错。当你打开一个文件就会有下面的界面,如下图!

其中打开文件还有几种常用的方式:

vim -R test.txt

vim 加-R,这代表以只读的模式打开文本。如果打开文本想直接定位到某行,可以如下操作:

vim test.txt +10

这代表打开test.txt文本同时定位到第10行的位置。

当你刚打开这个编辑器的时候发现当前状态是无法输入的,只可以移动光标。因为vim拥有三种模式:命令模式、插入模式和ex模式。刚打开的时候的模式为命令模式,在这个状态下,无法输入,在命令模式中按“i”键可以进入到插入模式,在这个插入模式下才进行文本输入。在插入模式中按esc可以返回命令模式。在命令模式中按“:”可以进入ex模式,在ex模式中可以保存、修改和退出。下面列一下命令模式和插入模式和ex模式的操作。首先说一句,任何模式都可以通过esc键回到命令模式。

命令模式:通常用于文本操作,例如复制粘贴一类。

i:在光标前插入文本。

o:在当前行的下面插入新行。

dd:删除正行。

u:撤销上一个操作。

y:复制选中文本。

yy :复制当前行。

n+yy:n是数字,例如,先按5,接着按yy,则是将5行内容复制。

v:进入可视模式,进入可视模式后,通过上下左右可以选出文本,之后通过y进行复制。

V:选择当前行,通过j和k进行多行选择,之后通过y进行复制。

p:粘贴。

r:替换当前关键字。

/ :查找关键字,输入/ 后面加上想查找的字符串后回车,通过n或N,会切换上一个匹配项或下一个匹配项。

?:查找字符串,和上面的“/”查找正好相反,使用方式和上面的相同,但是查找的是上一个匹配项,n或N也和上面的命令相反,n会跳到上一个匹配项,N会跳到下一个匹配项。

插入模式:

命令模式下输入“i”进入该模式,这个模式非常之简单,因为插入模式就是输入文本。如果要对文本进行粘贴操作等等,刚才我们说过按esc回到命令模式。

EX模式

:w 保存当前修改。

:q 退出。

:q! 强制退出。

:x 保存并退出。

:set number 显示行号。(可以简写为:set nu)

:! 执行一个系统命令并显示结果。例如,:!ls,ls是系统命令。

:sh 切换到终端命令行,使用ctrl+d切换回vim。

:set nohls 搜索时会有高亮字,该命令用于去除高亮字背景。

:set hls 重启搜索时的高亮字。

现在来欣赏一下吧,用vim编辑器编写的在程序界经典到不容错过的helloworld程序。

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

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

相关文章

优化程序命名:提升专业感与用户体验

在软件开发的广阔天地中,程序命名这一环节常常被开发者们忽视。不少程序沿用着简单直白、缺乏雕琢的名字,如同素面朝天的璞玉,虽不影响其核心功能的发挥,但却在无形之中错失了许多提升用户印象与拓展应用场景的机会。今天&#xf…

LeetCode BFS解决最短路问题

广度优先搜索(BFS, Breadth-First Search)是一种用于图和树结构的遍历算法,特别适合解决无权图的最短路径问题。 算法思想: BFS从起始节点开始,按照"广度优先"的原则,逐层向外扩展搜索: 先访问起始节点的…

[物联网iot]对比WIFI、MQTT、TCP、UDP通信协议

第一步:先理解最基础的关系(类比快递) 假设你要给朋友寄快递: Wi-Fi:相当于“公路和卡车”,负责把包裹从你家运到快递站。 TCP/UDP:相当于“快递公司的运输规则”。 TCP:顺丰快递&…

基于python的电影数据分析及可视化系统

一、项目背景 随着电影行业的快速发展,电影数据日益丰富,如何有效地分析和可视化这些数据成为行业内的一个重要课题。本系统旨在利用Python编程语言,结合数据分析与可视化技术,为电影行业从业者、研究者及爱好者提供一个便捷的电…

Java8 到 Java21 系列之 Lambda 表达式:函数式编程的开端(Java 8)

Java8 到 Java21 系列之 Lambda 表达式:函数式编程的开端(Java 8) 系列目录 Java8 到 Java21 系列之 Lambda 表达式:函数式编程的开端(Java 8)Java 8 到 Java 21 系列之 Stream API:数据处理的…

②EtherCAT/Ethernet/IP/Profinet/ModbusTCP协议互转工业串口网关

型号 协议转换通信网关 EtherCAT 转 Modbus TCP 配置说明 网线连接电脑到模块上的 WEB 网页设置网口,电脑所连网口的网段设置成 192.168.1.X(X 是除 8 外的任一数值)后,打开浏览器,地址栏输入 192.168.1.8 &#xff…

机器视觉--python基础语法

Python基础语法 1. Python标识符 在 Python 里,标识符由字母、数字、下划线组成。 在 Python 中,所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。 Python 中的标识符是区分大小写的。 以下划线开头的标识符是有特殊意义的…

算法日常记录

1. 链表 1.1 删除链表的倒数第 N 个结点 问题描述:给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 输入:head [1,2,3,4,5], n 2 输出:[1,2,3,5] 思路:先让fast跑n步,然后…

14使用按钮实现helloworld(1)

目录 还可以通过按钮的方式来创建 hello world 涉及Qt 中的信号槽机制本质就是给按钮的点击操作,关联上一个处理函数当用户点击的时候 就会执行这个处理函数 connect(谁发的信号, 信号类型, 谁来处理这个信息, 怎么处理的&…

【Golang】泛型与类型约束

文章目录 一、环境二、没有泛型的Go三、泛型的优点四、理解泛型(一)泛型函数(Generic function)1)定义2)调用 (二)类型约束(Type constraint)1)接…

k8s常用总结

1. Kubernetes 架构概览 主节点(Master): 负责集群管理,包括 API Server、Controller Manager、Scheduler 和 etcd 存储。 工作节点(Node): 运行 Pod 和容器,包含 kubelet、kube-pr…

Android 单例模式全解析:从基础实现到最佳实践

单例模式(Singleton Pattern)是软件开发中常用的设计模式,其核心是确保一个类在全局范围内只有一个实例,并提供全局访问点。在 Android 开发中,单例模式常用于管理全局资源(如网络管理器、数据库助手、配置…

ffmpeg滤镜使用

ffmpeg实现画中画效果 FFmpeg中,可以通过overlay将多个视频流、多个多媒体采集设备、多个视频文件合并到一个界面中,生成画中画的效果 FFmpeg 滤镜 overlay 基本参数 x和y x坐标和Y坐标 eof action 遇到 eof表示时的处理方式,默认为重复。…

OpenAI即将开源!DeepSeek“逼宫”下,AI争夺战将走向何方?

OpenAI 终于要 Open 了。 北京时间 4 月 1 日凌晨,OpenAI 正式宣布:将在未来几个月内开源一款具备推理能力的语言模型,并开放训练权重参数。这是自 2019 年 GPT-2 部分开源以来,OpenAI 首次向公众开放核心模型技术。 【图片来源于…

贪心算法,其优缺点是什么?

什么是贪心算法? 贪心算法(Greedy Algorithm)是一种在每一步选择中都采取在当前状态下最优(局部最优)的选择,从而希望导致全局最优解的算法策略。 它不像动态规划那样考虑所有可能的子问题,而是做出局部最优选择,依赖这些选择来…

python string 类型字符拼接 +=的缺点,以及取代方法

在Python中,使用进行字符串拼接虽然语法简单,但在性能和代码维护方面存在明显缺陷。以下是详细分析及替代方案: 一、的缺点 性能低下 内存分配问题:字符串在Python中不可变,每次操作会创建新字符串对象,导…

web前端开发-JS

web前端开发-JS 什么是JavaScript Web标准也称网页标准,由一系列的标准组成,大部分由W3C(World Wide Web Consortium,万维网联盟)负责制定。三个组成部分: HTML:负责网页的结构(页面元素和内容)。CSS:负责网页的表现(页面元素的外观、位置等页面样式,如:颜色、大小等)。JavaS…

Turtle综合案例实战(绘制复杂图形、小游戏)

在学习了 Turtle 基本的绘图技巧后,我们可以通过结合多个概念和技巧,绘制复杂的图形或实现简单的小游戏。本章将介绍两个实战案例: 绘制复杂图形:结合前面所学的知识,绘制一个精美的多层次复杂图案。简单的游戏:利用 Turtle 实现一个简单的小游戏——蛇形游戏,这是一个经…

Python设计模式:克隆模式

1. 什么是克隆模式 克隆模式的核心思想是通过复制一个已有的对象(原型)来创建一个新的对象(克隆)。这种方式可以避免重复的初始化过程,从而提高效率。克隆模式通常涉及以下几个方面: 原型对象&#xff1a…

逻辑漏洞之越权访问总结

什么是越权访问漏洞? “越权访问漏洞” 是 “逻辑漏洞” 的一种,是由于网站系统的权限校验的逻辑不够严谨,没有对用户权限进行严格的身份鉴别,导致普通权限的用户做到了其它普通用户或管理员才能完成的操作,称之为“越…