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操作 ...
随机推荐
- .NET 云原生架构师训练营(模块二 基础巩固 Host)--学习笔记
2.2.4 核心模块--Host 什么是 Host Host 的默认配置做了哪些事情 框架提供的服务 HostedService 后台服务 ASP.NET Core Web 主机:https://do ...
- Laravel入坑指南(8)——控制台程序
我们知道,php代码不仅可以用web的形式对外提供服务,同时也可以在命令行下执行. 对于原生的php来说,假设我们有一个php文件,名为Command.php,如果想要在控制台下执行这个文件,那么我们 ...
- 如何查看当前Ubuntu系统的版本-【转 https://www.cnblogs.com/chenxiaomeng/p/10038492.html】
如何查看当前Ubuntu系统的版本 一.系统位数 在控制台输入:sudo uname --m 如果显示i686,则表示安装了32位操作系统 如果显示 x86_64,则表示安装了64位操作系统 sudo ...
- Layui项目实战干货总结(精品)
写代码时遇到的知识点拿出来分享. 1.layer弹出层显示在top顶层 // 监听工具条 table.on('tool(tb-book)', function (obj) { var data = o ...
- mysql中如何批量生成百万级数据
# 准备 #1. 准备表 create table s1( id int, name varchar(20), gender char(6), email varchar(50), first_nam ...
- ASP.NET XML序列化
整理一下ASP.NET里面如何序列化实体为XML,获取解析XML内容为实体. 第一步要添加程序集引用,项目-->引用-->鼠标右键-->添加引用-->选择程序集-->Sy ...
- 如何在矩池云复现开源对话语言模型 ChatGLM
ChatGLM-6B 是一个开源的.支持中英双语的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数.结合模型量化技术,用户可以在消费级的显卡上进行 ...
- m1芯片mac安装homebrew
安装 ARM 版 Homebrew ARM版Homebrew最终被安装在/opt/homebrew路径下. 直接执行: /bin/bash -c "$(curl -fsSL https:// ...
- 【Azure Developer】使用Azure Key Vault 的Key签名后,离线验证的一些参考资料
问题描述 使用 key Vault 的sign接口,Request Body中的 Value 是要传什么呢? 签名后的内容如何在本地离线验证呢? Azure Key Vault Sign 接口:htt ...
- 【Azure 应用程序见解】通过无代码方式在App Service中启用Application Insights后,如何修改在Application Insights中显示的App Service实例名呢?
问题描述 在App Service中,可以非常容易的启动Application Insights服务.默认情况中,在Application Insights中查看信息时候,其中的对象名称默认为App ...