Linux——vim的使用

news2024/10/7 13:23:39

实验5 vim的使用

一、两种模式:

命令行模式和编辑模式(前者还有底行模式,命令行模式输入:就是底行模式)

切换方法:进入vim后默认在命令模式,可以通过输入a后者i进入编辑模式,或者(命令行模式下)通过输入:进入底行模式

编辑模式到命令模式:ESC

二、vim的进入和退出

进入:

1.vim 回车进入vim编辑文件

2. vim 文件名字,编辑某文件

3.vim file1 file2 ……编辑多个文件

4.vim –f file 上次编辑时发生系统崩溃,通过这个命令可以恢复。

退出:首先进入命令模式

1.:w 保存

2.:q 退出

3.:w filename 保存为某文件名

4.:x  ZZ  :wq 保存并退出

5.:q! 强制退出

三、编辑

1.怎么编辑

任何时候按下ESC键会进入普通模式.普通模式下可以按下: 来输入命令.

普通模式按下i或a 进入插入模式,这时你可以编辑文本。

2.简单编辑

  • (命令行模式下)移动光标 :你可以直接用方向键来移动光标, 更vim些的做法是hjkl(hl为左右移动,kj为上下移动)
  • 撤销操作 :u 或者命令模式下按下u

3.更快的编辑

现在你可以用vim写东西了.

我们需要更快的编辑

1.快速的定位光标:

  • ^ 跳到行首 (类似功能键Home)
  • $ 跳到行尾(类似功能键End)
  • :n 跳到第n行
  • :$ 跳到最后一行

2. 快速的编辑:

命令模式下:

  • dd 删除一行,剪切一行
  • yy 复制一行
  • p 粘贴
  • r 单个字符替换(不要求) (先按r再按要替换成的字符)
  • x删除一个字符(不要求)

3. 更精细的粘贴复制:

  • m,nd - 快速删除第m到第n行 (delete)
  • m,ny - 复制第m到第n行 (yank)
  • m,nmt - 第m行到第n行剪切到第t行(move)
  • m,ncot -第m行到第n行复制到第t行(copy to)

4. 操作回退,重复

u 操作回退

 . 前进

5.对齐

gg=G 快速对齐整个文件(本按语法对齐)

6.查找和替换

  • :/字符串    从光标处向文件尾搜索
  • :?字符串     从光标处向文件头

7. 多文件编辑

打开多个文件 vim file1 file2 file3 ……

  • :n 编辑下一个文件
  • :2n 编辑下两个文件
  • :N 编辑前一个文件
  • :f显示当前编辑文件信息
  • :ls显示编辑的所有文件
  • :e filename 再打开某文件
  • :r!command 把命令的输出写入到当前位置(不要求)
  • :r filename 读取filename文件,并将其内容添加到当前文件后
  • :qa退出所有文件(不要求)
  • (6)vi打开多文件
  • vi a b c
  • :n 跳至下一个文件,也可以直接指定要跳的文件,如:n c,可以直接跳到c文件
  • :e# 回到刚才编辑的文件
  • (7)文件浏览
  • :Ex 开启目录浏览器,可以浏览当前目录下的所有文件,并可以选择
  • :Sex 水平分割当前窗口,并在一个窗口中开启目录浏览器
  • :ls 显示当前buffer情况
  • (8)vi与shell切换
  • :shell 可以在不关闭vi的情况下切换到shell命令行:可以用于进程前后台切换的部分内容

8.Vim中运行shell命令

  • :sh 进入shell ,操作后,在终端输入exit,回到vim

三、vim环境设置命令(vim环境是指vim运行时的运行方式。在末行模式下,可以通过set命令进行设置。Set后面加选项名来进行该功能选项的设置,如果选项名前输入no,则表示关闭该选项)

也可在vim进入后在底行模式下(命令行模式下)设置

:set number在编辑文件时显示每行的行号等同于:set nu命令

:set nonumber

:set all 显示所有可以设置的选项

:set autoindent 自动缩进,与上一行相同

:set warn 显示未保存警告

:set ruler 屏幕底部显示光标所在行列位置

练习:

在底行模式下设置显示行号:

set nu;

显示光标位置:

set ruler;

在第19行下,添加printf(“I am parent!\n”):

:19

在第29行下,添加printf(“I am child1!\n”):

:29

在第46行下,添加printf(“I am child2!\n”)

:46

 

回退最后两次的操作,前进一次:

:u:u:.

查询文件中的read,标出行号

 

跳到第28行,删除它:

:28回车,按下dd

对齐整个文件:

命令模式下直接按gg=G

将第10行到第17行的内容复制到第19行以后

:10,17co19;

将第10行到第17行的内容移动到第5行以后:

:10,17m5

采用多文件编辑的方法,打开新文件yourname.c,将fifo.c的内容复制到新文件

:vim yourname.c fifo.c

:r fifo.c

:qa

 

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

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

相关文章

SQL学习day3

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 高级过滤Q1、检索供应商名称Q2、检索并列出已订购产品的清单(稍难)Q3、返回所有价格在 3美元到 6美元之间的产品的名称和价格总结Q1、检索供应商名称 编写 SQL 语…

2022全年度吸尘器十大热门品牌销量榜单

近年来,随着社会经济的发展及人们生活水平的提升,吸尘器的市场需求得到不断地释放,行业规模也在不断扩大。但由于起步较晚,居民的消费能力尚未得到完全释放,目前我国吸尘器市场的渗透率还较低。 根据鲸参谋平台的数据统…

初识Go语言

Go是一种静态强类型、编译型、并发型语言。 一、Go语言的设计思维 尽可能少的方式去处理事情,减少选择的烦恼。 go的特点: 仅有25个关键字,简洁的语法内置垃圾回收器,大大降低程序员管理内存的负担去除隐式类型转换、去除指针…

UNIAPP实战项目笔记56 注册时验证手机号是否存在

UNIAPP实战项目笔记56 注册时验证手机号是否存在 注册时候需要拦截并验证登录 通过验证的直接跳转,未通过验证的提示手机号已存在 实际案例图片 后端接口文件 index.js var express require(express); var router express.Router(); var connection require(../db/sql.js);…

成端/接续功能使用说明

在nVisual系统中,接续/成端功能可以高效、准确、清晰的查看熔纤盒内的光纤连接情况。今天小编来给大家介绍一下成端和接续功能的使用。 一、成端 1. 功能入口 成端功能的入口有两种方式,第一个是鼠标右击选中线缆,出现连线右键菜单&#xf…

互联网新热——元宇宙带来了全新数字应用模式,推动数字经济的发展

大家平时电视上看到的在元宇宙中逛街、购物、社交,娱乐、看直播和表演……这些高度沉浸式地互动体验,都可以在“大唐灵境”实现了! 近日,太一集团与大唐不夜城联手打造的中国首个文旅电商元宇宙“大唐灵境”将正式开放“东市”商…

阿里云轻量级服务器部署了项目外网无法访问

阿里云轻量级服务器部署了项目外网无法访问1、问题描述2、配置安全组权限2.1、阿里云控制台权限配置(热加载,不用重启)2.2、在服务器中查看防火墙中有哪些端口被开放(非热加载,最后一定要手动重新加载)3、如…

MAC Python 虚拟环境配置方法parcharm

MAC Python 虚拟环境配置方法&parcharm一、安装环境包1.找个风水宝地2.安装virtualenv包二、创建虚拟环境1.对比记录2.创建虚拟环境启动虚拟环境1.启动命令2.环境对比三、退出虚拟环境四、pycharm使用虚拟环境1.打开parcharm,新建一个项目,起个名字。…

excel账龄计算:两个经典公式快速制作账龄统计表

财务工作者对于账龄统计表都不陌生,我们之前也分享过很多关于账龄统计表的操作技巧和公式解析,但是今天遇到的这种账龄统计表,还是让财务小姐姐犯了难,到底是个怎样的账龄统计表呢,一起来看看吧: 如图所示&…

【工厂方法模式-3】工厂方法模式的代码实现及使用场景

在前面我们学习了简单工厂模式,简单工厂模式适用于产品对象比较固定的使用场景。简单工厂模式工厂模式存在两个比较大的问题,一个是新产品的加入必须修改工厂类,违反了开闭原则;另一个是所有产品对象都与工厂类耦合,无…

校友录网站

开发工具(eclipse/idea/vscode等): 数据库(sqlite/mysql/sqlserver等): 功能模块(请用文字描述,至少200字):网站前台: 关于我们、联系我们、资讯信息、用户信息、用户动态、动态评论 管理员功能: 1、管理关…

基于vmdk文件创建虚拟机

基于vmdk文件创建虚拟机 1、准备vmdk文件 下载地址如下: 链接:https://pan.baidu.com/s/1coQuZw8cgg5oU5bSegsS7Q?pwd=5mv0 提取码:5mv0 账号/密码:root/sinzuo 2、创建虚拟机 选择自定义的方式创建虚拟机 硬件兼容性选择17,尽可能的向下兼容。 选择稍后安装操作系…

使用 IQR、Z-score、LOF 和 DBSCAN 进行异常值检测

你在处理异常值吗?哪种方法更适合检测偏斜或正态分布数据的异常值? 无论你是在执行 EDA 之前进行数据清理过程,将数据传递给机器学习模型,还是执行任何统计测试,本文都将帮助你获得许多此类问题的答案以及实际应用。 …

Static、#define、const、mutable、typedef

Static、#define、const、mutable、typedef 代码存储区域:常量区、代码区、静态区(全局区)、堆区、栈区 栈区向下增长,堆区向上增长。栈由系统管理,没有内存碎片,每个元素之间都是连续的,大小…

MAXENT模型的生物多样性生境模拟与保护优先区甄选、自然保护区布局优化评估及论文写作技巧

【查看原文】基于MAXENT模型的生物多样性生境模拟与保护优先区甄选、自然保护区布局优化评估及论文写作技巧 随着生物多样性全球大会的举办,不论是管理机构及科研单位、高校都在积极准备,根据国家林草局最新工作指示,我国将积极整合、优化自…

【Django项目开发】功能菜单模型类设计、视图类设计要点(一)

一、抽象模型类设计 1、抽象模型类设计的作用: 1、定义所有模型类的公共属性,当其他的模型类继承该抽象模型类时,就具备了模型类中的属性了;在项目开发中,减少代码的编写 2、抽象模型类中经常定义的字段包括&#xff…

HFSS使用经验二

目录 一、绘制空气盒 二、Driven Solution Setup 的设置 ​三、如何添加圆场放大图 四、仿真之前的Validate 五、开始仿真 六、仿真过程Solution Data的查看 一、绘制空气盒 选择Padding type为Absolute Offset 设定Boundary为Radiation辐射边界 空气盒比较大&#xff…

数据校验-springboot

前置知识 先了解一下JSR、Hibernate Validator、Spring Validation: JSR(Java Specification Request)规范是Java EE 6中的一项子规范,也叫作Bean Validation。它指定了一整套基于bean的验证API,通过标注给对象属性添…

数据可视化之中国足球队在国际足联及亚洲的历史排名看这儿

最近最热的体育盛事莫过于世界杯了,四年一届的足球盛事,正在卡塔尔激战正酣。这时候可能会有球迷疑问:怎么没看到中国队呢?也有网友调侃说中国队被分到工程队去了。 泱泱大国,难道中国十几亿人口,一个足球队…

【Javassist】快速入门系列02 使用Javassist实现方法执行时间统计

系列文章目录 01 在方法体的开头或结尾插入代码 02 使用Javassist实现方法执行时间统计 前言 上一章我们介绍了使用Javassist实现一个简单的Hello World程序,学会了Javassist创建类和新增方法。本章主要介绍如何使用Javassist实现一个无侵入的方法执行时间统计 …