linux第四讲----基础开发工具vim

1.软件安装

这里以ubuntu为例,安装sl软件,输入这个命令即可自动安装~

使用一下,输入sl,屏幕上会出现一个移动的小火车

 之后不想要了准备卸载就输入:

注意:1)下载软件时也可以进行搜索~ 2)centos的把apt换成yum即可

2.编辑器vim

1.介绍

vim是一个多模式的编辑器,总共有6种模式,这里我们介绍其中三种,命令模式,插入模式,还有底行模式,打开时默认进入命令模式!

2.运用

1)进入命令模式

vim   文件名

之后进入编辑界面(如图) ,先别乱动!!!

(注:若上一次打开了这个文件,下次在想打开时直接输入!v即可) 

 2)退出命令模式

当前界面直接输入冒号q(:q),也就是shift+;q,完成退出

注:如果你修改了东西,需要再加一个!才能退出去,表示强制退出(不保存退出)

3)  进入插入模式

在上述编辑界面输入i/a/o,左下角变为INSERT即为插入模式,该模式下我们可以自由输入,如图输入完成

(i是光标不动,a是光标向后移动一个字符,o是光标向下移动一个字符)

4)退出插入模式

我们完成输入后,想退出,但是千万不要直接将xshell关掉,否则会有很大的麻烦,正确的做法是按ESC键退回到命令模式,在按:wq进行保存并退出!(或者按:ZZ(快捷键)也可以退出) 

5)设置编号

进入命令模式,输入:set nu ,回车后即可

6)底行模式

进入命令模式后,按冒号(:)进入底行模式,之后在输入命令即可,操作完成后按ESC退出该模式,回到命令模式,也就是说我们之前的一些操作就是先切到这个模式然后在输入指令的

上图为底行模式 

 上图为插入模式

上图为命令模式 

7)三者关系

8) 编译代码

方法一)

方法二)

 

方法三)前提是你之前编译过这个文件

 

 3.vim中详细操作

(以下均在命令模式下操作!!!)

先补充一个冷知识:你退出时光标在哪里,在进入时光标就还会在哪里

好了,现在假设我的code.c文件有1w行,并且我光标在最后一行时退出的,现在我想打开时就回到第一行,该怎么做呢?可以参考方法1,光标瞬移法(自己编的名)

1)光标瞬移

直接输入 vim code.c +x            ,其中x为你想让光标所处的行数

如下图,x==6

 2)复制粘贴

在对要复制的地方,以命令模式按下yy,之后在需要粘贴的位置的前一行按p即可完成,如果想复制n次,则按np即可,n=1,2,3...

若想进行多行复制,直接将光标放到要复制内容的第一行,输入nyy,n为数字表示要复制的行数,之后shift g到结尾,p一下,当然p前面也可以加数字,表示该内容想复制粘贴多少次

3)光标定位

在命令模式下,不论你的光标在哪,输入gg,即可将光标迅速回到第一行,输入G,直接定位到末尾,若想定位到任意第x行,在命令模式下,输入xshift+g(或者直接xG),x为数字。

若想定位到当前行开始,则命令模式输入shift+6(=^)

若想定位到当前行末尾,则命令模式输入shift+4(=$)

若想进行光标简单小移动,一种方法是按键盘的上下左右键,另一种方法是命令模式h表示左,l表示右,j表示下,k表示上

4)撤销操作及恢复操作

撤销刚刚的操作,按u(undo)

恢复撤销操作:ctrl+r(注:所有的后悔操作都是基于你没退出vim)

5)剪切

将光标移动到要剪切的内容,按dd进行剪切,按p完成剪切

(dd:删除当前行,dd+p:剪切)

(dd也支持n操着,类比2),不在细说)

6)大小写转换

shift+`=~,按住shift不要动,之后按~,就会进行大小写转换

7)行内移动光标

n+w:以”单词“为单位向后移动

n+b:以”单词“为单位向前移动

n同上

8)删除某个字符内容

删除某个字符后面的内容:将光标移动到该字符,按n+x,n同上,撤销则按u

shift+x:删除某个字符前面的内容

9)修改某个字符内容

光标移动到要修改字符,

n+r+要修改的字符:修改某个字符,(还是按u撤销操作)

shift+r:进入vim的替换模式,覆盖式进行替换,按ESC退出

10)查找

光标放一个单词上,shift+#,选中一个单词,按n查找下一个

11)批量化注释

先ctrl+v:进入visual block模式,(视图模式)

再用hjkl上下左右调整所选范围(hjkl前面可以带数字,下同)

再shift+i:进入insert模式,并输入//

之后按esc完成批量注释

注意:上述步骤是为选中的区域,插入//,同理我们也可以插入其他文本内容(去注释也同理)

12)批量化去注释

先ctrl+v,

再hjkl选择

之后按d完成去注释

13)强制操作

:w!        强制保存,当我们将文件权限设为000是,用root账号写的时候保存会用到

:q!         强制退出,不保存刚刚所更改内容

:wq!       强制保存并退出

14)行号

:set nu     设置行号

:set nonu     取消行号

15)整体替换

:%s/要替换的/替换为的/g

如图,将所有的double替换为int

:%s/double/int/g

16)文件操作

1.新建文件

 直接vim 新建文件名,之后:wq,即可新建完毕

 

2.对比文件

:vs 文件名 

 左右侧光标切换:ctrl +ww

现实中我们可以根据需要同时对比多个文件!

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

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

相关文章

【Wireshark 02】抓包过滤方法

一、官方教程 Wireshark 官网文档 : Wireshark User’s Guide 二、显示过滤器 2.1、 “数据包列表”窗格的弹出过滤菜单 例如,源ip地址作为过滤选项,右击源ip->prepare as filter-> 选中 点击选中完,显示过滤器&#…

在 macOS 使用 .pem 私钥免密登录腾讯云服务器

前言 在腾讯云上创建服务器时,如果选择了「密钥对」的登录方式,就会得到一个 .pem 文件作为私钥。很多小伙伴在使用 macOS 系统时,可能不清楚如何使用这个私钥文件来 SSH 免密登录远程服务器。本文将详细介绍如何在本地配置 .pem 私钥文件并…

Android U 分屏——SystemUI侧处理

WMShell相关的dump命令 手机分屏启动应用后运行命令:adb shell dumpsys activity service SystemUIService WMShell 我们可以找到其中分屏的部分,如下图所示: 分屏的组成 简图 分屏是由上分屏(SideStage)、下分屏(MainStage)以及分割线组…

【Python】——使用python实现GUI图书管理系统:Tkinter+SQLite实战

本文将通过一个完整的python项目——图书管理系统,演示如何利用Tkinter构建GUI 界面,结合SQLite数据库实现增删改查功能。代码简洁易懂,适合python初学者学习和二次开发。 一、项目功能概览 图书管理:添加、查看、修改、删除图书…

文件上传靶场(1--9关)

实验环境: 1,upload的靶场环境可以去GitHub上自行查找 2,打开小皮面板的nginx和数据库 3,将文件上传的靶场部署到本地: 放到小皮的phpstduy_pro的www下面 小提示: 另外如果你用的是php7的版本建议将版…

leetcode每日一题——1745分割回文串

给你一个字符串 s ,如果可以将它分割成三个 非空 回文子字符串,那么返回 true ,否则返回 false 。 当一个字符串正着读和反着读是一模一样的,就称其为 回文字符串 。 示例 1: 输入:s "abcbdd"…

Python的那些事第三十九篇:MongoDB的Python驱动程序PyMongo

PyMongo:MongoDB的Python驱动程序 摘要 PyMongo 是 MongoDB 的官方 Python 驱动程序,用于在 Python 应用程序中与 MongoDB 数据库进行交互。本文将详细介绍 PyMongo 的安装、基本操作、高级功能以及实际应用案例,并通过示例代码和表格展示其强大的功能和灵活性。 1. 引言 …

Windows 使用 Docker + WSL2 部署 Ollama(AMD 显卡推理)搭建手册‌

Windows 使用 Docker WSL2 部署 Ollama(AMD 显卡推理)搭建手册‌ ‌手册目标‌ 在 Windows 11 上通过 ‌Docker WSL2‌ 调用 AMD 显卡运行 Ollama 推理服务。 实现 ‌低延迟、高性能的本地模型推理‌,同时不影响 Windows 正常使用。 标记…

【大模型基础_毛玉仁】1.1 基于统计方法的语言模型

【大模型基础_毛玉仁】1.1 基于统计方法的语言模型 1.语言模型基础1.1 基于统计方法的语言模型1.1.1 n-grams 语言模型1.1.2 n-grams 的统计学原理 1.语言模型基础 语言是概率的。语言模型(LanguageModels, LMs)旨在准确预测语言符号的概率。 将按照语…

IDEA 2025最新版2024.3.3软件安装、插件安装、语言设置

IntelliJ IDEA是一款由JetBrains公司开发的集成开发环境(IDE),主要用于Java语言的开发,它通过提供丰富的功能如智能代码补全、代码分析、版本控制集成等来提高开发效率。 IDEA有社区版和专业版两个版本,社区版是免费开…

springbootWeb入门--创建springbootweb项目

步骤: 1.建立空工程 2.选择项目的jdk版本 3.在工程中建立模块,选择“spring initilazer”,类型勾选“maven” 4.勾选“spring web”之后,就无需再自行写dependcy了。 5.等待联网下载 6.生成的工程文件,如下绿色框中文件&…

Windows10系统构建本地安全私有化的个人知识库——采用DeepSeek+RAGFlow

一、为什么要构建本地私有化个人知识库 1.1、自身需求 1、需要相关隐私资料内容的安全保护可控; 2、需要根据自身的隐私资料内容构建出个性化的知识库; 一些常见的业务场景如:①希望我们的智能助手可以根据公司的管理制度回答问题,让员工可以随时了解公司相关制度内容信息;…

江协科技/江科大-51单片机入门教程——P[3-1] 独立按键控制LED亮灭

本文围绕51单片机开发中的独立按键控制技术展开,系统讲解其硬件结构、电平检测原理与C51编程实现方法。文章从开发板独立按键的物理构造与电路连接入手,剖析按键按下与松开时的电平变化规律,并结合单片机I/O口寄存器操作原理,阐释…

【QGIS二次开发】地图显示与交互-01

1. 系统界面设计 设计的系统界面如下,很好还原了QGIS、ArcGIS等软件的系统界面,充分利用了QT中顶部工具栏、菜单栏、底部状态栏,实现了图层管理器、鹰眼图、工具箱三个工具面板。 菜单栏、工具栏、工具箱集成了系统中实现的全部功能&#x…

第40天:安全开发-JavaEE应用SpringBoot框架JWT身份鉴权打包部署JARWAR

时间轴: 演示案例: SpringBoot-身份鉴权-JWT 技术 SpringBoot-打包部署-JAR&WAR SpringBoot-身份鉴权-JWT 技术 SpringBoot- 身份鉴权 -JWT 技术 JWT(JSON Web Token) 是由服务端用加密算法对信息签名来保证其完整性和不可伪 造; …

计算机毕业设计SpringBoot+Vue.js医院挂号就诊系统(源码+文档+PPT+讲解)

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

Linux之命令记录【一】

文章目录 前言几个重要的热键1.[Tab]按键2.[Ctrl]-c 按键3.[Ctrl]-d 按键4.[shift]{[PageUP]|[Page Down]}按键 线上求助(查看帮助信息)1. --help2.man page3.info page 用户身份1.su 基础指令1.date2.cal3.bc 系统字符集相关1.locale 文本编辑器1.nano …

Ollama存在安全风险的情况通报及解决方案

据清华大学网络空间测绘联合研究中心分析,开源跨平台大模型工具Ollama默认配置存在未授权访问与模型窃取等安全隐患。鉴于目前DeepSeek等大模型的研究部署和应用非常广泛,多数用户使用Ollama私有化部署且未修改默认配置,存在数据泄露、算力盗…

Sourcetrail 代码分析工具

Sourcetrail 概述 Sourcetrail 是一个代码分析工具,它旨在帮助开发人员理解和导航复杂的代码库。它可以创建代码库的可视化图形,显示代码中的类、函数、变量、依赖关系等信息,从而帮助开发人员更好地理解代码结构和关系,降低维护…

【手撕算法】支持向量机(SVM)从入门到实战:数学推导与核技巧揭秘

摘要 支持向量机(SVM)是机器学习中的经典算法!本文将深入解析最大间隔分类原理,手撕对偶问题推导过程,并实战实现非线性分类与图像识别。文中附《统计学习公式手册》及SVM调参指南,助力你掌握这一核心算法…