【Linux】vim编辑器

前言:

上文我们讲到了Linux中权限相关的指令【Linux】权限相关指令-CSDN博客

本文来讲解以下能让我们在Linux下编写代码的工具:vim

1.vim简单介绍

vim是Linux中一个较为常用的编辑器,也是Linux中上手难度最大的编辑器之一。有的同学可能知道vi这个编辑器,其实vim就是vi的增强升级版。只要我们学会了如何使用vim,那Linux下的其他编辑器就可以说是到手就顷刻炼化了。

2.vim的模式

vim的模式有特别特别多,但对于正常使用来说,我们掌握其中3种即可:

1.普通模式(Normal mode)

**普通模式也称命令模式。**使用命令操控vim达到目标效果,一般的命令效果讲从光标位置开始生效。而想要进入其他模式,也必须在普通模式下通过命令进入。

2.插入模式(Insert mode)

插入模式由普通模式通过点击"i"或"insert"进入。 在该模式下,可以实现信息的输入与编辑,通过esc可以回退到普通模式。

3.底行模式((last line mode)

**底行模式由普通模式执行"Shift+;"进入。**在该模式下,可以实现文件的保存与退出操作,也可以实现文本替换、查找字符串等功能

注:插入模式和底行模式之间并不能相互切换

3.vim的基本操作演示

1.进入vim

执行vim或vim+文件名

复制代码
hyc@hcss-ecs-4ce7:~$ vim new.c

2.编辑信息

点击" i "或" insert ",进入插入模式。这时候可以编辑信息

3.保存信息并退出vim

先点击Esc,退出插入模式。再点击" shift + ; "进入底行模式

在底行在输入命令:wq,w表示保存,q表示退出。点击Enter,退出vim

4.普通模式命令合集

模式切换:

i 或 Insert:进入插入模式

Shift + ; :进入底行模式

光标移动:

gg:光标回到文本第一行

shift + g :光标回到文本最后一行

shift + 4($) :光标回到当前行的最后一个字母

shift + 6(^) :光标回到当前行的第一个字母

H:向左移动

J:向下移动

K:向上移动

L:向右移动

(键盘上的上下左右键也可以实现,HJKL是在没有方向键的时代诞生的)

w:以单词为单位向后移动

b:以单词为单位向前移动

内容编辑:

yy:复制光标所在行的内容

p:在光标位置处粘贴

dd:剪切或删除光标所在行的内容

x:删除光标右侧内容

Shift + x:删除光标左侧内容

r:替换光标所在位置的字母

Shift + r:批量替换

Shift + ~:大小写切换

Shift + 3(#):选中光标位置的单词

n:从下往上找选中的单词

补充:

撤销操作:

u:撤销之前的操作

Shift + r:撤销u

补充:文件只要没有退出就可以撤销之前的操作,但是如果退出了就无法再撤销之前的操作了。

5.底行模式命令合集

常规:

w:保存文件内容

q:退出vim

!:强制执行命令

set nu:显示行号

set nonu:不显示行号

补充:

!命令:可以在vim下执行Linux指令

%s /目标字符/替换字符/:可以用替换字符替换目标字符(当然也可以是字符串)

vs 文件名:可以分为多屏,一次性展示多个文件

演示:

6.补充模式:视图模式

在普通模式下,点击Ctrl + v,进入视图模式

视图模式主要是为了批量修改文本,例如批量注释代码、批量添加换行符

批量注释演示:

1.进入视图模式

2.移动光标旋转自己要注释的内容

3.点击Shift + i,进入插入模式,打出//注释符号

4.点击Esc,之前我们选择的内容就全部被注释掉了,而且回到普通模式

批量添加换行符演示:

1.先移动光标到换行符将要被添加的位置

2.进入视图模式,选择需要添加换行符的行

3.点击Shift + i 进入插入模式,输入 "\n"

4.点击Esc,批量添加换行符功能。此时模式也回到了普通模式

总结:

相关推荐
李少兄3 小时前
CentOS系统下前后端项目部署攻略
linux·运维·centos
Two_brushes.5 小时前
【Linux】线程机制深度实践:创建、等待、互斥与同步
linux·运维·服务器·多线程
Jackyzhe7 小时前
Flink学习笔记:整体架构
笔记·flink
徒 花7 小时前
初级网安作业笔记1
笔记
设计师小聂!7 小时前
Linux系统中部署Redis详解
linux·运维·数据库·redis
kfepiza7 小时前
Debian-10编译安装Mysql-5.7.44 笔记250706
linux·数据库·笔记·mysql·debian·bash
Magnetic_h7 小时前
【iOS】方法与消息底层分析
笔记·学习·macos·ios·objective-c·cocoa
今天背单词了吗9808 小时前
算法学习笔记:19.牛顿迭代法——从原理到实战,涵盖 LeetCode 与考研 408 例题
笔记·学习·算法·牛顿迭代法
努力做小白9 小时前
Linux驱动11 --- buildroot&杂项驱动开发方法
linux·运维·驱动开发·单片机·嵌入式硬件
DKPT9 小时前
Java设计模式之行为型模式(观察者模式)介绍与说明
java·笔记·学习·观察者模式·设计模式