Linux_vim编辑器入门级详细教程

news2024/9/30 9:30:20

前言

(1)vim编辑器其实本质上就是对文本进行编辑,比如在.c文件中改写程序,在.txt文件写笔记什么的。 一般来说,我们可以在windows上对文本进行编译,然后上传给Linux但是有时候我们可能只是对文本进行简单的调整,或者说没有其他的编译器的时候,vim编译器就成了不得不使用的工具了
(2)vim编辑器比较麻烦,不支持鼠标移动光标。对于文本的编辑,保存,复制,粘贴都需要命令行,不直观操作也没有Windows上的编辑器方便。 所以我建议如果是需要大规模改动的文件,可以先使用Windows上的编辑器进行编辑,之后利用FileZilla软件将文件上传到Linux。但是, 如果只需要进行微调,vim编辑器就是不错的选择

vim的三种模式

三种模式简介

vim编辑器具有三个模式: 一般模式编辑模式命令行模式。这三个模式的侧重点不同,如下。
一般模式:光标移动、复制、粘贴、删除
编辑模式:编辑文本
命令行模式:查找、替换

vim的三种模式切换

三种模式切换图

对于新手而言,下面这个你是大概率看不懂的。但是不要慌,哥来教你看懂。

终端命令行与一般模式的切换

终端命令行是什么

对于新手而言,可能还不是很清楚终端命令行是啥玩意。终端命令行就是我们日常操作的terminal(终端,如下)。

vim的一般模式

(1) 从终端命令行进入vim的一般模式时,右下角会出现一行信息,里面包含 操作的文件 文件名文件行数,以及 当前文件所含字符个数
(2) 如果是从其他模式进入vim的一般模式,右下角是没有信息的
(3)在一般模式下,我们可以进行复制,粘贴,删除等操作。

终端命令行--->vim一般模式

如果我们使用vim编辑器对一个文件进行操作,只需要输入 vi 文件名
如果我们进入vim编辑器,不想从第一行开始编辑,而是想从其他行开始编辑,只需要输入:
vi 文件名 +n(n为行号)

vim一般模式--->终端命令行

当我们想从vim的一般模式转换到终端命令行时,需要输入“ :命令”,命令有如下选择

命令

描述

x

保存当前文档并且退出

q

退出

w

保存文档

q!

退出 vi/vim,不保存文档

需要注意“:x”与“:wq”作用是一致的。

一般模式与编辑模式的转换

编辑模式是什么

在编辑模式下,我们可以对文件进行修改, 可以一个字符一个字符的写入,但是 不可以复制粘贴

vim一般模式--->编辑模式

在一般模式下,我们输入字符‘i’在当前光标所在字符的前面,转为编辑模式。其实只要记住'i'这一个就可以了,但是有些骚年可能玩的花一点,想秀操作,学其他的命令也可以。只不过这些其他的指令,都可以用i来实现。

命令

描述

i

在当前光标所在字符的前面,转为编辑模式

I

在当前光标所在行的行首转换为编辑模式

a

在当前光标所在字符的后面,转为编辑模式

A

在光标所在行的行尾,转换为编辑模式

o

在当前光标所在行的下方,新建一行,并转为编辑模式

O

在当前光标所在行的上方,新建一行,并转为编辑模式

编辑模式--->vim一般模式

从编辑模式到vim的一般模式转换很简单,按一下ESC键即可。(多按几次也可以,不影响)

一般模式与命令行模式的转换

(1)看到下面这张图,有人可能会有疑惑了。按照上面的切换图,vim的一般模式转换到终端命令行模式不是也需要输入':'吗?那么,一般模式转换为终端命令行的过程,是不是经过了编辑模式呢?我认为是要经过的。
(2)按ESC键,就可以从编辑模式回到一般模式了。

在编辑模式下可进行的操作

vim的编辑模式下进行删除按Backspace,换行按Enter。和Windows的一样,只不过不可以用鼠标大范围的复制,只能一个字符一个字符的操作。

在命令行模式下可进行的操作

显示行号

我们发现,这个操作文本的时候,看不见行号,很麻烦。于是我们可以在命令行模式下,输入" :set number"用于显示行号。

隐藏行号

有时候我们不需要看行号了,感觉行号有点麻烦,只需要输入" :set nonumber"即可隐藏。

跳转光标

有时候我们想让光标跳转到指定行号,只需要输入" :行号"即可跳转到指定行号。

替换

有的时候,我们会想将指定的字符全局替换掉。只需要输入" :%s/p1/p2/g" 即可将文件中所有的 p1 均用 p2 替换。

删除

在编辑模式下删除麻烦了,只能一个一个字符的删除。在命令行模式下可以指定行进行删除。
格式:" :起始行,结束行d "

一般模式下可进行的操作

光标移动

移动到第一行

在一般模式下,输入gg即可将跳转到第一行。

跳转到最后一行

输入“ G”即可跳转到最后一行。但是 一般都是小写输入状态,所以需要先按住shift键再输入g

跳转到指定行

有时候我们想跳转到指定行数,输入“ ngg”即可跳转到第n行。

翻页

有时,我们想一页一页的翻看。
Ctrl+F(PageDown) : 下翻一屏
Ctrl+B(PageUp) : 上翻一屏

光标上下左右移动

这个我觉得用 键盘中的上下左右键就可以移动了。不过,还可以按HJKL键(个人感觉没必要,键盘的上下左右键有相同功能)。K: 向上移动;J: 向下移动;H: 向左移动;L: 向右移动

复制粘贴

方法1

先找到我们需要复制的字符字首,输入字符' v',移动光标(这里可使用"ngg"进行快速移动光标),按下字符'y'即可复制成功。
找到要粘贴的地方,按下字符' p',即可粘贴成功。

方法2

通过快捷键复制粘贴。如果我们想 复制当前行输入" yy",如果我们想 复制当前行及其以下的n-1行可以输入" nyy"。粘贴键按p。

yy

复制当前行

nyy

复制当前行及其后的 n-1 行

p

粘贴

删除

输入" dd" 删除当前行," ndd" 删除当前行及其下面的n-1行

撤销

有时候我们会不小心删除误删需要撤销。只需要在 一般模式下输入字符' u'即可。

查找

(1)在windows系统中,我们想在文本中查找指定文字,只需要输入Ctrl+F即可。而在vim编辑器中,在一般模式下,输入" /要查找的字符"就可以了。因为在一个文本中, 不可能只有一个符合要查找的字符,所以按下回车键之后,输入 n 即可向下查找
(2)但是有时候,我们想查找光标纸上的符合条件的字符,输入" ?要查找的字符", 然后按 n 即可向上查找

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

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

相关文章

MySQL运维

目录 1、日志 1、错误日志 2、二进制日志 3、查询日志 4、慢查询日志 2、主从复制 搭建 1、主库配置 2、从库配置 3、分库分表 1、简介 ​编辑 1、垂直拆分 2、水平拆分 3、实现技术 2、MyCat 3、MyCat使用和配置 配置 4、MyCat分片 1、垂直拆分 2、水平拆分…

线材-电子线载流能力

今天来讲的是关于电子线的一个小知识,可能只做板子的工程师遇到此方面的问题会比较少,做整机的工程师则必然会遇到此方面问题,那就是线材问题。 下面主要说下电子线的过电流能力。(文末有工具下载)电子线(h…

vue3+rust个人博客建站日记2-确定需求

反思 有人说过我们正在临近代码的终结点。很快,代码就会自动产生出来,不需要再人工编写。程序员完全没用了,因为商务人士可以从规约直接生成程序。 扯淡!我们永远抛不掉代码,因为代码呈现了需求的细节。在某些层面上&a…

CTFer成长之路之Python中的安全问题

Python中的安全问题CTF 1.Python里的SSRF 题目提示 尝试访问到容器内部的 8000 端口和 url path /api/internal/secret 即可获取 flag 访问url: http://f5704bb3-5869-4ecb-9bdc-58b022589224.node3.buuoj.cn/ 回显如下: 通过提示构造payload&…

Pytorch复习笔记--Conv2d和Linear的参数量和显存占用量比较

目录 1--nn.Conv2d()参数量的计算 2--nn.Linear()参数量计算 3--显存占用量比较 1--nn.Conv2d()参数量的计算 conv1 nn.Conv2d(in_channels3, out_channels64, kernel_size1) 计算公式: Param in_c * out_c * k * k out_c; in_c 表示输入通道维度&#xff1b…

微信小程序-1:比较两数的大小

程序来源》微信小程序开发教程&#xff08;第二章&#xff09; 主编&#xff1a;黄寿孟、易芳、陶延涛 ISBN&#xff1a; 9787566720788 程序运行结果&#xff1a; <!--index.wxml--> <view class"container"> <text>第一个数字&#xff1a;&…

从认知智能的角度认识ChatGPT的不足

OpenAI的ChatGPT带来了一些令人欣喜的成果&#xff0c;但是从认知智能的角度来看&#xff0c;也有很多不足。今天我就来为大家说一说。首先我会为大家简单介绍人工智能&#xff0c;认知智能&#xff0c;然后再分析ChatGPT的能力和不足&#xff0c;最后分享目前优秀的学术论文以…

网络应用之静态Web服务器

静态Web服务器-返回固定页面数据学习目标能够写出组装固定页面数据的响应报文1. 开发自己的静态Web服务器实现步骤:编写一个TCP服务端程序获取浏览器发送的http请求报文数据读取固定页面数据&#xff0c;把页面数据组装成HTTP响应报文数据发送给浏览器。HTTP响应报文数据发送完…

[11]云计算|简答题|案例分析|云交付|云部署|负载均衡器|时间戳

升级学校云系统我们学校要根据目前学生互联网在线学习、教师教学资源电子化、教学评价过程化精细化的需求&#xff0c;计划升级为云教学系统。请同学们根据学校发展实际考虑云交付模型包含哪些&#xff1f;云部署采用什么模型最合适&#xff1f;请具体说明。9月3日买电脑还是租…

python之并发编程

一、并发编程之多进程 1.multiprocessing模块介绍 python中的多线程无法利用多核优势&#xff0c;如果想要充分地使用多核CPU的资源&#xff08;os.cpu_count()查看&#xff09;&#xff0c;在python中大部分情况需要使用多进程。Python提供了multiprocessing。 multiprocess…

SEO优化:干货技巧分享,包新站1-15天100%收录首页

不管是老域名还是新域名&#xff0c;不管是多久没有收录首页的站&#xff0c;此法周期7-30天&#xff0c;包首页收录&#xff01;本人不喜欢空吹牛逼不实践的理论&#xff0c;公布具体操作&#xff1a;假如你想收录的域名是a.com&#xff0c;那么准备如下材料1.购买5-10个最便宜…

【Tomcat】Tomcat安装及环境配置

文章目录什么是Tomcat为什么我们需要用到Tomcattomcat下载及安装1、进入官网www.apache.org&#xff0c;找到Projects中的project List2、下载之后&#xff0c;解压3、找到tomcat目录下的startup.bat文件&#xff0c;双击之后最后结果出现多少多少秒&#xff0c;表示安装成功4、…

【Python工具篇】Anaconda中安装python2和python3以及在pycharm中使用

背景&#xff1a;已经安装好anaconda、python3、pycharm&#xff0c;因为项目使用的是python2语法&#xff0c;所以需要在anaconda中安装python2&#xff0c;并在pycharm中使用&#xff0c;下面给出步骤。 1. 打开cmd或者是Anaconda Prompt。 下面是anaconda prompt. 2. 查…

hadoop03-MapReduce【尚硅谷】

大数据学习笔记 MapReduce 一、MapReduce概述 MapReduce是一个分布式运算程序的编程框架&#xff0c;是基于Hadoop的数据分析计算的核心框架。 MapReduce处理过程为两个阶段&#xff1a;Map和Reduce。 Map负责把一个任务分解成多个任务&#xff1b;Reduce负责把分解后多任务处…

必应ai注册方法

1.进行配置下载Microsoft Edge Canary&#xff0c;链接下载 Microsoft Edge Insider Channels&#xff0c;打开Microsoft Edge Canary&#xff0c;在Header Editor - Microsoft Edge Addons中安装Header Editor插件&#xff0c;点击Header Editor图标&#xff0c;选择右下角的&…

网页唤起 APP中Activity的实现原理

疑问的开端大家有没有想过一个问题&#xff1a;在浏览器里打开某个网页&#xff0c;网页上有一个按钮点击可以唤起App。这样的效果是怎么实现的呢&#xff1f;浏览器是一个app&#xff1b;为什么一个app可以调起其他app的页面&#xff1f;说到跨app的页面调用&#xff0c;大家是…

python之面向对象编程

1、面向对象介绍&#xff1a; 世界万物&#xff0c;皆可分类 世界万物&#xff0c;皆为对象 只要是对象&#xff0c;就肯定属于某种类 只要是对象&#xff0c;就肯定有属性 2、 面向对象的几个特性&#xff1a; class类&#xff1a; 一个类即对一类拥有相同属性的对象的…

STM32笔记

目录 1.1. 预备阶段 1.2. 单片机介绍 2. 初识STM32 2.1. STM32 1.1. 预备阶段 1.2. 单片机介绍 1.2.1. 单片机是什么 单片微型计算机(Single Chip Microcomputer)简称为单片机&#xff08;Microcontrollers&#xff09;&#xff0c;也称为微控制单元(Microcontroller Uni…

Python对遥感影像重采样,以及重采样方法

首先&#xff0c;本次重采样使用的是GDAL方法完成 参考了以下博客&#xff0c;并根据自己的需要进行了删改以及原理的探究&#xff1a; 重采样&#xff1a;栅格影像重采样 我使用了下该代码&#xff0c;发现是可行的&#xff0c;但是仍然存在一定的问题&#xff0c;即他的采样…

【java web篇】Maven的基本使用以及IDEA 配置Maven

&#x1f4cb; 个人简介 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是阿牛&#xff0c;全栈领域优质创作者。&#x1f61c;&#x1f4dd; 个人主页&#xff1a;馆主阿牛&#x1f525;&#x1f389; 支持我&#xff1a;点赞&#x1f44d;收藏⭐️留言&#x1f4d…