【Linux】vim的使用

个人主页zxctscl
文章封面来自:艺术家–贤海林
如有转载请先通知

目录

  • 1. 前言
  • 2. vim的基本概念
  • 3. vim的基本操作
  • 4. vim正常模式命令集
    • 4.1 命令模式
      • 4.1.1 光标定位
    • 4.2 插入模式
    • 4.3 底行模式

这个是在网上找的一张关于vim键盘的图

在这里插入图片描述

1. 前言

vim是Linux编辑器,功能上和记事本没有区别。不仅仅可以用来写c语言和c++,其它语言也可以在上面写。

2. vim的基本概念

vim是一款多模式的编辑器,但是目前掌握这3种即可,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:

  1. 正常/普通/命令模式(Normal mode)
    控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode
  2. 插入模式(Insert mode)
    只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式
  3. 末行模式(last line mode)
    文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下shift+: 即可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入

3. vim的基本操作

进入vim,在系统提示符号输入vim及文件名称后,就进入vim全屏幕编辑画面:

vim a.txt

在这里插入图片描述

不过有一点要特别注意,就是你进入vim之后,是处于[正常模式],你要切换到[插入模式]才能够输入文字。

[正常模式]切换至[插入模式]有三种方式:
输入a
输入i
输入o

在这里插入图片描述

在这里插入图片描述

[插入模式]切换至[正常模式]
目前处于[插入模式],就只能一直输入文字,如果发现输错了字,想用光标键往回移动,将该字删除,可以先按一下「ESC」键转到[正常模式]再删除文字。当然,也可以直接删除。

[正常模式]切换至[底行模式]
「shift + ;」,其实就是输入「:」

在这里插入图片描述

在这里插入图片描述


退出vim及保存文件,在[正常模式]下,按一下「:」冒号键进入「Last line mode」
: w (保存当前文件)
: wq (输入「wq」,存盘并退出vim)
: q! (输入q!,不存盘强制退出vim)

在这里插入图片描述


总之,三个模式切换如下图:

在这里插入图片描述


注意:底行模式是不能直接到插入模式的,同样插入模式也不能直接到底行模式。

4. vim正常模式命令集

4.1 命令模式

允许使用者通过命令,来进行文本的编辑控制。
像键盘是用来做输入的,那么鼠标是用来对文本进行控制,例如复制粘贴,区域选择、大小写转换。
yy:复制当前光标所在的行
n+yy:连续复制n行
p:粘贴,当前光标的下一行
n+p:表示把指定内容粘贴n次。
举个例子:把第5行yy一下,再p三次

在这里插入图片描述


直接进行10p就粘贴了10次。

在这里插入图片描述

u:撤销
要将上面命令撤销,就u三次

在这里插入图片描述


ctrl+r: 对历史撤销,进行撤销

在这里插入图片描述


dd:剪切/删除指定行
举个例子:dd一下第5行

在这里插入图片描述

n+dd:剪切/删除指定多行
举个例子:5dd

在这里插入图片描述


在这里插入图片描述

4.1.1 光标定位

shift+4=$:将光标的位置定位到当前行的结尾

在这里插入图片描述


shift+6=^:将光标的位置定位到当前行的开始

在这里插入图片描述


gg:将光标定位到整个文本的最开头

在这里插入图片描述


shift+g=G:将光标定位到整个文本的最后一行

在这里插入图片描述


n+shift+g=G:将光标定位到整个文本的任意一行
举个例子:10+shift+g,定位到第10行

在这里插入图片描述


h,j,k,l:左,下,上,右,也可以带n。
h(左) j(jimp,下) 上(king,上) l(右)
键盘上的上下左右键也能用。

w:按照单词为单位进行光标后移

在这里插入图片描述


b:按照单词为单位进行光标前移

在这里插入图片描述


在这里插入图片描述


shift+`=~:大小写进行切换

在这里插入图片描述

n+x:删除光标后续的一个字符,可以删除一次n个(在一行内)

在这里插入图片描述


n+shift+x=X:删除光标之前的一个字符,可以删除一次n个(在一行内)

在这里插入图片描述


n+r:对光标指定位置,进行一个字符替换,可以一次替换多个
把w替换为a

在这里插入图片描述


shift+r=R:进入替换模式,直接进行文本替换

在这里插入图片描述


shift+zz=Z:保存退出

在这里插入图片描述

4.2 插入模式

也就是编辑模式

  1. 按「i」切换进入插入模式「insert mode」,按“i”进入插入模式后是从光标当前位置开始输入文件;

    在这里插入图片描述

在这里插入图片描述

  1. 按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;

    在这里插入图片描述

  2. 按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。

    在这里插入图片描述

4.3 底行模式

用来进行让vim进行包括但不限于shell进行交互的。
w (保存当前文件)

在这里插入图片描述

wq (输入「wq」,存盘并退出vim)

在这里插入图片描述

q! (输入q!,不存盘强制退出vim)

在这里插入图片描述


打开test.c发现还是修改之前的

在这里插入图片描述

set nu 打开行号

在这里插入图片描述


set nonu 去掉行号

在这里插入图片描述


!command:不退出vim,可以进行shell命令执行,常用函数查看
举个例子:!gcc test.c

在这里插入图片描述

在这里插入图片描述


再来看看!ls -l

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述

:vs filename分屏,多文件操作
先新建一个code.c

在这里插入图片描述


然后打开

在这里插入图片描述


在这里插入图片描述


再打开test.c
如果想要在vim中进行多文件操作
在底行模式下输入:vs test.h

在这里插入图片描述


在底行模式下又输入:vs code.c

在这里插入图片描述


光标在哪个文件就在哪个文件编辑。
那么怎么从一个文件跳到另一个文件呢?
在命令模式下用ctrl+ww

在这里插入图片描述


在这里插入图片描述


就能实现界面光标的切换。

有问题请指出,大家一起进步吧!

原文地址:https://blog.csdn.net/zxctsclrjjjcph/article/details/135718754

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


linux常用进程通信方式包括管道(pipe)、有名管道(FIFO)、信号(signal)、消息队列、共享内存、信号量、套接字(socket)。管道用于具有亲缘关系的进程间通信,有名管道的每个管道具有名字,使没有亲缘关系的进程间也可以通信。信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除
Linux性能观测工具按类别可分为系统级别和进程级别,系统级别对整个系统的性能做统计,而进程级别则具体到进程,为每个进程维护统计信息。

按实现原理分,可分为基于计数器和跟踪以及剖析。含义如下:

计数器:内核维护的统计数据,通常为无符号整型,用于对发生的事件计数,比如,网络包接收计数器,磁
本文详细介绍了curl命令基础和高级用法,包括跳过https的证书验证,详细追踪整个交互过程,可用于调用网络后端接口,诊断http和https网络服务故障。
本文包含作者工作中常用到的一些命令,用于诊断网络、磁盘占满、fd泄漏等问题。命令包括ping、fping、tcpdump、lsof、netstat、/proc/$pid/fd、du、grep、traceroute、dig。
linux的平均负载表示运行态和就绪态及不可中断状态(正在io)的进程数目,用uptime查看到负载很高,既有可能是CPU利用率高,也可能是大量在等待io的进程导致,用mpstat查看每个CPU的使用情况,查看CPU的使用率或者CPU花在等待io的时间,接着用pidstat定位具体的进程
CPU上下文频繁切换会导致系统性能下降,切换分为进程切换、线程切换及中断切换,进程切换的开销较大,除了需要保存寄存器和程序计数器中的值还需保存全局变量、栈等到内存中,以便下次运行恢复,而同一进程中的线程切换开销会小很多,只需更新寄存器和线程独有的栈,共享资源如打开的文件、全局变量等无需切换,当硬件中
1.top命令 作用:该命令可以按CPU使用.内存使用和执行时间对任务进行排序,常用来监控系统中占用CPU或内存较高的程序及CPU和内存的负载。 默认视图: 当想看系统负载时,可观察汇总的%CPU中的us用户进程和sy系统进程是否占用CPU很高,相加接近100%就说明占用很高了,有些程序可能得不到及
文章浏览阅读1.8k次,点赞63次,收藏54次。Linux下的目录权限!!!粘滞位!!!超详解!!!
文章浏览阅读1.6k次,点赞44次,收藏38次。关于Qt的安装、Windows、Linux、MacBook_mack book 安装qt
本文介绍了使用shell脚本编写一个 Hello
文章浏览阅读1.5k次,点赞37次,收藏43次。【Linux】初识Linux——了解操作系统的发展历史以及初次体验Linux编程环境
文章浏览阅读3k次,点赞34次,收藏156次。Linux超详细笔记,个人学习时很认真的记录的,觉得好的麻烦点个赞。
文章浏览阅读6.8k次,点赞109次,收藏114次。【Linux】 OpenSSH_9.3p1 升级到 OpenSSH_9.5p1(亲测无问题,建议收藏)_openssh_9.5p1
文章浏览阅读3.5k次,点赞93次,收藏78次。初识Linux中的线程,理解线程的各种概念,理解进程地址空间中的页表转换,介绍pthread线程库并理解线程库!
文章浏览阅读863次。出现此问题为Linux文件权限问题,解决方案为回到引擎目录执行命令。输入用户密码后运行./UnrealEditor。_increasing per-process limit of core file size to infinity.
文章浏览阅读2.9k次。使用文本编辑器:打开CSV文件,并使用文本编辑器(如Notepad++、Sublime Text、Visual Studio Code等)来查看文件的字符编码格式。通常在编辑器的底部状态栏或设置中可以找到当前编码的显示。请注意,上述方法并非绝对准确,特别是当文件没有明确的编码标识时。因此,如果你发现CSV文件在不同的工具或方法中显示不同的编码格式,可能需要进行进一步的分析和判断,或者尝试使用不同的编码转换方法。该命令将输出文件的MIME类型和编码信息。使用命令行工具:在命令行中,你可以使用。_shell读取csv文件逐行处理
本文介绍了如何在Linux系统中升级gcc版本,以便更好地支持C++11及以上版本的新特性。通过升级gcc,可以提升编译器的功能和性能,获得更好的开发体验。详细的步骤和方法请参考原文链接。
文章浏览阅读4.4k次,点赞6次,收藏19次。Mosquitto是一个开源的MQTT消息代理服务器。MQTT是一个轻量级的、基于发布/订阅模式的消息传输协议。 mosquitto的安装使用比较简单,可以方便的来进行一些测试。_linux mosquitto
文章浏览阅读7.2k次,点赞2次,收藏12次。Linux中,用于根目录下有一个.ssh目录,保存了ssh相关的key和一些记录文件。_~/.ssh/
文章浏览阅读4.5k次,点赞5次,收藏18次。首先需要安装 snmp ,使用下面的命令进行安装安装完毕之后,使用下面的命令查看是否安装成功当命令行显示如图即为安装成功。_snmp工具