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

引言

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

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

文章目录

vim的下载与更新

使用Mobaxterm连接好虚拟机之后,我们来下载或者更新一下vim这款编译器,最好重

新下载一下,因为自带的vim超级难用。

输入以下命令来安装 Vim

c 复制代码
sudo apt update
sudo apt install vim

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

c 复制代码
vim demo1.c

或者

c 复制代码
vi demo1.c

如果没有这个demo1.c的文件则会,编辑保存之后,自动创建这个文件

我这里就是没有这个文件,所以使用了这个命令之后是空的,我们接下来写一个hello word小程序

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

左下角有这个提示就可以编辑了

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

c 复制代码
#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实现,哪里卡住了,就是你进步的时候!

相关推荐
MilesShi4 分钟前
从 scheduler_tick 到上下文切换:深入解析 Linux 内核的 TIF_NEED_RESCHED 标志设置流程
linux·运维·单片机
我爱云计算3 小时前
K8S详解(5万字详细教程)
linux·运维·云原生·容器·kubernetes
2301_794333915 小时前
实验室服务器配置|通过Docker实现Linux系统多用户隔离与安全防控
linux·服务器·docker·实验室
荣光波比6 小时前
Nginx 实战系列(一)—— Web 核心概念、HTTP/HTTPS协议 与 Nginx 安装
linux·运维·服务器·nginx·云计算
绿箭柠檬茶9 小时前
Ubuntu 使用 Samba 共享文件夹
linux·运维·ubuntu
工藤新一¹10 小时前
Linux —— 虚拟进程地址空间
linux·运维·服务器·c/c++·虚拟进程地址空间
Aspiresky10 小时前
浅析Linux内核scatter-gather list实现
linux·dma·scatter/gather
奔跑吧 android11 小时前
【linux kernel 常用数据结构和设计模式】【数据结构 3】【模拟input子系统input_dev和input_handler之间的多对多关系】
linux·数据结构·input·kernel·input_dev·input_handler·input_handle
再难也得平11 小时前
Linux初级篇
linux·运维·服务器
小猫挖掘机(绝版)12 小时前
通过tailscale实现一台电脑上vscode通过ssh连接另一台电脑上的VMware Linux 虚拟机
linux·windows·vscode·ubuntu·ssh