Linux快速入门(七)效率工具(Vim)
Vim编辑器
所有的Linux系统都会内建一个Vi文本编辑器,而Vim是从Vi发展出来的一个高度可配置的文本编辑器,旨在高效的创建和更改任何类型的文本,它还可以根据文件的扩展名判别编程语言。
使用方式:vim 文件名。
编辑器模式
Vim有三种编辑模式分别是:
(1) 普通命令模式
用户刚启动Vim时,就处于命令模式,在命令模式下,用户的输入会被识别为命令。在这个模式下可以进行文本的复制、粘贴、剪切等操作。在此模式下命令可以进行组合操作。

(2) 编辑模式
在命令模式下按a、i、o中的任意一个按键就可以切换到编辑模式,在编辑模式下按Esc键可以切换到普通命令模式。编辑模式主要是对文件的内容进行编辑。

(3) 底线命令模式
在命令模式下按:就可以切换到底线命令模式,在底线命令模式下按Esc可以切换到普通命令模式。在底线命令模式下,可以对文件内容进行检索、保存、退出等操作。

这三种模式的关系可以表示为(图像来源:菜鸟教程):

Vim命令汇总(图像来源:菜鸟教程):

常用命令
命令模式
通过Vim打开文件之后处于命令模式,在此模式下可以:
光标移动
(1)h和左箭头键表示光标向左移动一个字符,j和下箭头表示光标向下移动一个字符、k和上箭头表示光标向上移动一个字符、l和右箭头表示光标向右移动一个字符
(2)gg:可以将光标移动到文件第一行;G:可以将光标移动到文件的最后一行。如果要移动到指定的某一行可以使用nG,n为一个具体的数字,比如想要移动到第三行可以输入3G,就可以跳转到第三行。
(3)$:将光标移动到当前光标所在行的末尾,n<space>:可以将光标从当前位置向后移动n个位置。文本操作
(1)v:选择模式,在此模式下可以通过上下左右选择需要的文本,然后进行操作。
(2)d:剪切当前选中的文本;dd:剪切当前行;ndd:剪切包括当前行在内的n行;dG:剪切从光标所在行到最后一行的数据,如果想要删除所有数据,可以将gg命令和dG命令组合使用,输入ggdG,光标会先跳转到第一行,然后删除当前行到最后一行的所有数据。可以将这几个命令当删除使用。
(3)y:复制选中的文本;yy:复制当前行;nyy:复制当前行在内的n行
(4)p:在当前光标位置粘贴之前剪切或者复制的内容
(5)u:撤销上一步操作
编辑模式
对文件的内容进行编辑,类似Word操作,在当前模式下可以通过Esc切换到普通命令模式,再通过:、/、?中的任意一个就可以切换到底线命令模式。
底线命令模式
在底线命令模式下Enter键表示输入完成,在此命令模式下可以:
- 格式设置
(1):set nu:显示当前文本的行号;:set nonu:取消行号显示 - 文本检索、替换
(1)/word:从光标当前位置向下查找第一个为word的字符串,使用n可以重复前一个查找操作,这样就可以从光标当前位置一直向下查找带有word的字符串,使用N可以反向重复前一个操作,与n相反,这样就可以从光标当前位置向上查找带有word的字符串;?word从光标当前位置向上查找第一个为word的字符串。
(2):n1,n2s/w1/w2/g:其中n1、n2位数字,g表示全局搜索,该命令表示在第n1行与n2行之间寻找w1这个字符串,并将该字符串替换为w2;:1,$s/w1/w2/g:将第一行到最后一行的w1替换为w2;:1,$s/w1/w2/gc:将第一行到最后一行的w1替换为w2,且在替换前要求用户确认。 - 文件操作
(1):w:保存当前文件
(2):q:退出当前文件(不保存)
(3):q!:强制退出当前文件(不保存)
(4):wq:保存当前文件并退出
(5):wq!:强制保存当前文件并退出,如果是写入之后强制保存需要确保当前文件有写权限 
Linux快速入门(七)效率工具(Vim)的更多相关文章
- Linux快速入门打开你的学习之道
		
Linux快速入门打开你的学习之道 相信看到这篇文章的你一定是想要学习Linux,或者已经在学习Linux的人了,那我们就可以一起探讨一下,学习Linux如何快速入门呢? 首先,希望大家弄清楚自己为什 ...
 - Linux快速入门教程-进程管理ipcs命令学习
		
使用Linux系统必备的技能之一就是Linux进程管理,系统运行的过程正是无数进程在运行的过程.这些进程的运行需要占用系统的内存等资源,做好系统进程的管理,对于我们合理分配.使用系统资源有非常大的意义 ...
 - Linux快速入门03-系统管理
		
这部分将涉及常用的各类linux命令和一些系统高级管理特性,尤其是shell script的创建,这部分在系统自动化运维时会很有作用. Linux系列文章 快速入门系列--Linux--01基础概念 ...
 - Linux快速入门02-文件系统管理
		
继续进入Linux文件系统的学习,加油,早日突破MS压在自己身上的那道束缚. Linux系列文章 快速入门系列--Linux--01基础概念 快速入门系列--Linux--02文件系统管理 快速入门系 ...
 - Linux快速入门04-扩展知识
		
这部分是快速学习的最后一部分知识,其中最重要的内容就是源码的打包和软件的安装的学习,由于个人的Linux学习目的就是自己能在阿里云Ubuntu上搭建一个简单的nodejs发布环境. Linux系列文章 ...
 - NOI Linux 快速入门指南
		
目录 关于安装 NOI Linux 系统配置 网络 输入法 编辑器 1. gedit 打开 配置 外观展示 2. vim 打开 配置 使用 makefile 编译运行 1. 编写 makefile 2 ...
 - Linux快速入门01-基础概念
		
4年多前,刚到上海时报过一个关于Oracle的培训班,在那里接触到了Linux,不过一直都没真正去试着使用它.现在经过慢慢的成长,越来越觉得,Linux是每一个服务端工程师必须掌握的系统,即使是现在最 ...
 - linux的基本操作(文本编辑工具vim)
		
文本编辑工具vim * 命令模式:在一般模式下,输入”:”或者”/”即可进入命令模式.在该模式下,你可以搜索某个字符或者字符串,也可以保存.替换.退出.显示行号等等. 下面笔者教你如何在一个空白文档中 ...
 - linux快速入门 1.1命令行操作
		
http://lovesoo.org/linux-command-line-operation.html 1.1命令行操作 目录: <wp_nokeywordlink>Shell简介 &l ...
 - Linux快速入门
		
一.Linux介绍 1.Linux是基于Unix的开源免费的操作系统 2.Linux的分类: (1)Linux根据市场需求不同,基本分为两个方向: 1)图形化界面版:注重用户体验,类似window操作 ...
 
随机推荐
- ArrayList中的遍历删除
			
ArrayList 中的遍历删除 在代码编写过程中经常会遇到这样的要求:遍历一个线性表,要求只遍历一遍(时间复杂度\(O(n)\)),删除符合指定条件的元素,且要求空间复杂度 \(O(1)\). 例如 ...
 - 回顾复习之坐标DP
			
定义 坐标型动态规划一般是给定网格.序列,求满足条件的MAX或MIN. 开数组时,dp[i]一般代表以ai结尾的满足条件的子序列,dp[i][j]代表以i.j结尾的满足条件的最优解 例题 数塔 典中典 ...
 - NC19246 数据结构
			
题目链接 题目 题目描述 qn姐姐最好了~ qn姐姐给你了一个长度为n的序列还有m次操作让你玩, 1 l r 询问区间[l,r]内的元素和 2 l r 询问区间[l,r]内的元素的平方和 3 l r ...
 - NC15479 最短路
			
题目链接 题目 题目描述 企鹅国中有 \(N\) 座城市,编号从 \(1\) 到 \(N\) . 对于任意的两座城市 \(i\) 和 \(j\),企鹅们可以花费 \((i\,\,xor\,\, j)* ...
 - IPNS和DNSLink的使用说明
			
IPNS和DNSLink的使用说明 IPNS说明 IPNS全称InterPlanetary Name System,就是IPFS下的一个名称解析系统,类似于互联网的DNS,但是与DNS不同的是,IPN ...
 - SQL中为什么不要使用1=1?
			
最近看几个老项目的SQL条件中使用了1=1,想想自己也曾经这样写过,略有感触,特别拿出来说道说道. 编写SQL语句就像炒菜,每一种调料的使用都会影响菜品的最终味道,每一个SQL条件的加入也会影响查询的 ...
 - Laravel入坑指南(10)——事件Event
			
不知不觉,我们已经来到了第10小节.这一小节,我们一起讨论关于"事件"这个话题.众所周知,从二进制到汇编,再到高等级语言,这一路发展下来,代码都是顺序执行的,那么事件是什么?这个事 ...
 - 【Map】【List】【数组】获得两个数组的交集
			
给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入: nums1 = [1,2,2,1], nums2 = [2,2] 输出: [2,2] 示例 2: 输入: nums1 = [1,2,2 ...
 - 项目实战:Qt+OSG三维2D文字实时效果查看工具
			
需求 OSG三维中2D文字的基本属性较多,方便实时查看效果,并出对应文本代码. Demo 工具下载地址 CSDN免积分下载地址:https://download.csdn.net ...
 - gunzip命令
			
解压提取文件内容 语法格式:gunzip 参数 压缩包 常用参数 -a 使用ASCII文本模式 -q 静默执行模式 -c 将解压后的文件输出到标准输出设备 -r 递归处理所有子文件 -f 强制解压文件 ...