《Linux系统编程篇》vim的使用 ——基础篇

引言

上节课我们讲了,如何将虚拟机的用户目录映射到自己windows的z盘,虽然这样之后我们可以用自己的编译器比如说Visual Studio Code,或者其他方式去操作里面的文件,但是这是可搭建的情况下,在一些特殊情况下,我们没有办法临时去操作Linux系统里面的文件,会使得我们非常棘手,所以我们要学习Vim,在Linux系统编程中,Vim是一款非常强大的文本编辑器。

愿你在人生的旅途中,始终保持热爱、勇敢和坚持,收获自己想要的美好 ——家驹

文章目录

  • 引言
  • vim的下载与更新
    • 输入以下命令来安装 Vim
  • 牛刀小试:使用vim打开文件或编辑
  • vim基本操作
      • 打开/创建文件
      • 保存和退出
      • 光标移动
      • 编辑文本
      • 查找和替换
      • 分屏和退出分屏
  • 结束

vim的下载与更新

使用Mobaxterm连接好虚拟机之后,我们来下载或者更新一下vim这款编译器,最好重
新下载一下,因为自带的vim超级难用。

输入以下命令来安装 Vim

sudo apt update
sudo apt install vim

牛刀小试:使用vim打开文件或编辑

vim demo1.c

或者

vi demo1.c

如果没有这个demo1.c的文件则会,编辑保存之后,自动创建这个文件
在这里插入图片描述
我这里就是没有这个文件,所以使用了这个命令之后是空的,我们接下来写一个hello word小程序

输入i字母,进入编辑模式

左下角有这个提示就可以编辑了
在这里插入图片描述

一定要手敲不要复制,感受一下vim的编辑方式

#include <stdio.h>int main()
{printf("Hello World");return 0
}

输入完成之后,点击键盘左上角的esc键,退出插入编辑模式

接着输入冒号:
在这里插入图片描述
代表着输入指令,我们想要退出保存这个文件,所以需要输入的指令是wq
连起来就是:wq

w:保存 q:退出

在这里插入图片描述
直接回车
然后就退出到命令行了,接下来我们可以使用cat命令去看一下,我们刚刚编辑的文件有没有成功。

在这里插入图片描述
成功,我们成功使用了vim工具编写了一个文件!

vim基本操作

下面我列举了一些,常用基本操作的方法,可以试着用一下。

打开/创建文件

  1. 从终端打开文件:vim 文件名

  2. 创建新文件:vim 新文件名

保存和退出

  1. 保存文件:按下 Esc 进入命令模式,然后输入 :w 并按下 Enter

  2. 不保存文件并退出:按下 Esc 进入命令模式,输入 :q! 并按下 Enter

  3. 保存并退出:按下 Esc 进入命令模式,输入 :wq:x 并按下 Enter

光标移动

  1. 使用箭头键或 h j k l 分别向左、下、上、右移动光标

  2. 移动到行首:0

  3. 移动到行尾:$

  4. 移动到文档开头:gg

  5. 移动到文档末尾:G

编辑文本

  1. 进入编辑模式:在普通模式下按下 i 进入插入模式

  2. 删除字符:在普通模式下按下 x

  3. 复制粘贴:在普通模式下按下 yy 复制当前行,p 粘贴到光标后

  4. 撤销:在普通模式下按下 u

查找和替换

  1. 查找:在普通模式下按下 / 后输入要查找的内容,按下 Enter

  2. 替换:在命令模式下输入 :%s/要替换的内容/新内容/g 并按下 Enter 进行全局替换

分屏和退出分屏

  1. 水平分屏:在命令模式下输入 :sp

  2. 垂直分屏:在命令模式下输入 :vsp

  3. 切换屏幕:按下 Ctrl + w 然后按下 w

  4. 关闭当前屏幕:在普通模式下按下 :q

vim快捷键,提升操作篇

结束

我们后续会教大家使用VS Code去编写代码,但是,建议初学者先用vim编写一阵子,这是一个必须学会的基础。总之一句话孰能生巧。可以试着像本地windows一样操作一些东西,用vim实现,哪里卡住了,就是你进步的时候!

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

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

相关文章

【深度学习基础】MAC pycharm 专业版安装与激活

文章目录 一、pycharm专业版安装二、激活 一、pycharm专业版安装 PyCharm是一款专为Python开发者设计的集成开发环境&#xff08;IDE&#xff09;&#xff0c;旨在帮助用户在使用Python语言开发时提高效率。以下是对PyCharm软件的详细介绍&#xff0c;包括其作用和主要功能&…

力扣-排序算法

排序算法&#xff0c;一般都可以使用std&#xff1a;&#xff1a;sort&#xff08;&#xff09;来快速排序。 这里介绍一些相关的算法&#xff0c;巩固记忆。 快速排序 跟二分查找有一丢丢像。 首先选择一个基准元素&#xff0c;一般就直接选择第一个。然后两个指针&#xff0c…

使用python获取城市经纬度以及城市间的距离、火车时间、所需成本等

这里写自定义目录标题 1 获取城市地理坐标2 获取交通数据3 数据存储4 代码整合 本案例研究选择了中国的五个中心城市&#xff08;上海市、深圳市、北京市、广州市、杭州市&#xff09;和25个边境城市&#xff08;如巴彦淖尔市、白山市等&#xff09;作为研究对象。通过调用高德…

Go泛型详解

引子 如果我们要写一个函数分别比较2个整数和浮点数的大小&#xff0c;我们就要写2个函数。如下&#xff1a; func Min(x, y float64) float64 {if x < y {return x}return y }func MinInt(x, y int) int {if x < y {return x}return y }2个函数&#xff0c;除了数据类…

vue实现a-model弹窗拖拽移动

通过自定义拖拽指令实现 实现效果 拖动顶部&#xff0c;可对整个弹窗实施拖拽&#xff08;如果需要拖动底部、中间内容实现拖拽&#xff0c;把下面的ant-modal-header对应改掉就行&#xff09; 代码实现 编写自定义指令 新建一个ts / js文件&#xff0c;用ts举例 import V…

前端的页面代码

根据老师教的前端页面的知识&#xff0c;加上我也是借鉴了老师上课所说的代码&#xff0c;马马虎虎的写出了页面。如下代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</ti…

Databricks 收购 Tabular 的意义:数据开放框架的胜利

Databricks 宣布收购 Tabular&#xff0c;这是一个由 Apache Iceberg 的原始创建者开发的数据平台&#xff0c;在数据分析行业引发了涟漪。此次收购凸显了开放框架在数据领域日益增长的重要性&#xff0c;预示着数据管理、分析和 AI/ML 计划领域的创新、协作和可访问性的新时代…

QT实现自定义带有提示信息的透明环形进度条

1. 概述 做界面开发的童鞋可能都会遇到这样的需求&#xff0c;就是有一些界面点击了之后比较耗时的操作&#xff0c;需要界面给出一个环形进度条的进度反馈信息. 如何来实现这样的需求呢&#xff0c;话不多说&#xff0c;上效果 透明进度条 2. 代码实现 waitfeedbackprogressba…

如何在 CentOS 上配置本地 YUM 源

引言 CentOS 作为一个流行的企业级 Linux 发行版&#xff0c;依赖 YUM&#xff08;Yellowdog Updater, Modified&#xff09;来管理软件包。YUM 源&#xff08;Repository&#xff09;是软件包存储和分发的中心&#xff0c;它们通常位于互联网上。然而&#xff0c;在某些情况下…

科技与水利的完美融合:从数据采集到智能决策,全面解析智慧水利解决方案如何助力水利行业实现智能化管理

本文关键词&#xff1a;智慧水利、智慧水利工程、智慧水利发展前景、智慧水利技术、智慧水利信息化系统、智慧水利解决方案、数字水利和智慧水利、数字水利工程、数字水利建设、数字水利概念、人水和协、智慧水库、智慧水库管理平台、智慧水库建设方案、智慧水库解决方案、智慧…

c++ 多边形 xyz 数据 获取 中心点方法,线的中心点取中心值搞定 已解决

有需求需要对。多边形 获取中心点方法&#xff0c;绝大多数都是 puthon和java版本。立体几何学中的知识。 封装函数 point ##########::getCenterOfGravity(std::vector<point> polygon) {if (polygon.size() < 2)return point();auto Area [](point p0, point p1, p…

nodejs模板引擎(一)

在 Node.js 中使用模板引擎可以让您更轻松地生成动态 HTML 页面&#xff0c;通过将静态模板与动态数据结合&#xff0c;您可以创建可维护且易于扩展的 Web 应用程序。以下是一个使用 Express 框架和 EJS 模板引擎的基本示例&#xff1a; 安装必要的依赖&#xff1a; 首先&#…

mybatilsplaus 常用注解

官网地址 baomidou注解配置

医疗器械FDA |FDA网络安全测试具体内容

医疗器械FDA网络安全测试的具体内容涵盖了多个方面&#xff0c;以确保医疗器械在网络环境中的安全性和合规性。以下是根据权威来源归纳的FDA网络安全测试的具体内容&#xff1a; 一、技术文件审查 网络安全计划&#xff1a;制造商需要提交网络安全计划&#xff0c;详细描述产…

7-1、2、3 IPFS介绍使用及浏览器交互(react+区块链实战)

7-1、2、3 IPFS介绍使用及浏览器交互&#xff08;react区块链实战&#xff09; 7-1 ipfs介绍7-2 IPFS-desktop使用7-3 reactipfs-api浏览器和ipfs交互 7-1 ipfs介绍 IPFS区块链上的文件系统 https://ipfs.io/ 这个网站本身是需要科学上网的 Ipfs是点对点的分布式系统 无限…

深入Linux:权限管理与常用命令详解

文章目录 ❤️Linux常用指令&#x1fa77;zip/unzip指令&#x1fa77;tar指令&#x1fa77;bc指令&#x1fa77;uname指令&#x1fa77;shutdown指令 ❤️shell命令以及原理❤️什么是 Shell 命令❤️Linux权限管理的概念❤️Linux权限管理&#x1fa77;文件访问者的分类&#…

【香橙派 Orange pi AIpro】| 开发板深入使用体验

目录 一. &#x1f981; 写在前面二. &#x1f981; 愉快的安装流程2.1 安装前准备2.2 流程准备2.2.1 烧录镜像2.2.2 开机2.2.3 连网2.2.4 SSH远程连接开发板 2.3 体验 AI 应用样例 三. &#x1f981; 写在最后 一. &#x1f981; 写在前面 大家好&#xff0c;我是狮子呀&…

react 组件通信 —— 父子传值 【 函数式/类式 】

1、函数式组件通信 父子间通信 —— 父传子 父组件 export default function father() {return (<div style{{width:400px,height:200px,background:pink,marginLeft:500px}}>我是父组件<hr /><Son name{"韩小刀"}/></div>) } 子组件 ex…

数据结构--二叉树相关习题5(判断二叉树是否是完全二叉树 )

1.判断二叉树是否是完全二叉树 辨别&#xff1a; 不能使用递归或者算节点个数和高度来判断。 满二叉树可以用高度和节点来判断&#xff0c;因为是完整的。 但是完全二叉树前面是满的&#xff0c;但是最后一层是从左到右连续这种 如果仍然用这种方法的话&#xff0c;如下图…

代码随想录二刷7.22|977.有序数组的平方

暴力解法&#xff1a; ——如果想暴力解决这个问题的话&#xff0c;可以像题目那样&#xff0c;先将每一个元素平方&#xff0c;然后再排序 双指针&#xff1a; ——从题目中找到的信息&#xff1a;这是一个非递减顺序的整数数组&#xff0c;从例子中&#xff0c;可以容易看…