Linux中vim的基本使用

目录

vim是Linux和Unix环境下最基本的文本编辑器,类似于windows上的记事本

vim和Visual studio相比,vim并不集成,vim只能用来写代码

VS把写代码,编代码,运行,调试等功能集成在一起,所以VS才被成为集成开发环境IDE


vim中的三种模式以及基本操作

vim是多模式的,有最常用的三种模式:命令模式(默认模式),插入模式,底行模式

命令模式(默认模式)

当敲入指令vim xxx(xxx为一个普通文件名)后,就会进入vim的页面

我们刚开始进入vim界面的模式就是命令模式,也叫默认模式

进来后是的这样的:

在命令模式中。我们敲击键盘会发现vim中没有显示我们敲击的内容,是因为在这个模式中,所有的输入都被当作是命令,所以不会显示我们输入的内容

插入模式

如果想要进行文本编辑,就需要输入i,进入插入模式

输入i后,我们可以在下面看到显示INSERT,此时,我们就进入插入模式了,可以输入内容了

从插入模式回到命令模式,需要按键盘上的Esc键,按Esc后,就可以发现下面的INSERT消失,就说明成功地返回到了命令模式

底行模式

那么假如我们编写好了代码,想要退出vim,需要进入底行模式才可以退出

在命令模式下,输入:,进入底行模式

需要注意的是,只能从命令模式进入底行模式,从插入模式下是无法进入到底行模式下的,同样,在底行模式下也无法进入插入模式

下面显示:就说明进入了底行模式

想要退出,只能在底行模式下输入wq
w指的是保存
q指的是退出
wq指的是保存并退出

在底行模式下,单独输入wq都是可以的,表示只保存和只退出

三种模式相互切换图:


命令模式下的命令

光标定位移动相关的命令:

gg,光标定位到最开始行

shift + g也就是G,光标定位到结尾行

n + shift +g光标定位到第n行

shift + $,光标定位到当前行的结尾

shift + ^,光标定位到当前行的开头

b, 光标定位到上一个单词的开头

w,光标定位到下一个单词的开头

e,光标定位到下一个单词的结尾

h j k l,光标 左 下 右 上移动

复制粘贴删除相关

yy,复制当前行内容
nyy,复制从当前行开始n行的内容
p,粘贴到光标所在行的下一行
np,粘贴n行
dd,剪切当前行内容,也可以当作是删除当前行(只要不再重新粘贴就可以)
ndd,剪切n行内容
(n)x,对光标之后的n个字符进行删除

撤销

u,撤销
ctrl + r,取消撤销

大小写转换

shift + ~,大小写转换

替换

(n)r,对光标后的字符进行批量替换

例如:10 r y就是将后面10个字符替换成y

·shift +r`,替换模式,对内容进行替换,在我们输入内容的同时,替换光标后的内容(这也是第4种模式------替换模式)


底行模式下的命令

w,保存
q,退出
wq,保存并退出
w!,强制保存
q!,强制退出
set nu,调出行号
set nonu,去掉行号

前面我们提到的命令,都是在单文件中的操作

linux下也可以进行多文件编写

在底行模式下,输入vx +其他文件名

光标在哪个窗口,就在哪个窗口进行操作

在命令模式下,输入ctrl +w+w进行窗口的切换

在底行模式下,可以不用退出就可以执行命令

比如,我们已经编写好了一段c语言代码在test.c文件中

在底行模式下,执行编译命令

退出vim后,用ls查看,可以看到的确生成了test.out这个可执行文件


相关推荐
傻啦嘿哟1 小时前
Python正则表达式:用“模式密码“解锁复杂字符串
linux·数据库·mysql
浪裡遊2 小时前
Linux常用指令
linux·运维·服务器·chrome·功能测试
SugarPPig3 小时前
PowerShell 查询及刷新环境变量
服务器
段ヤシ.3 小时前
银河麒麟(内核CentOS8)安装rbenv、ruby2.6.5和rails5.2.6
linux·centos·银河麒麟·rbenv·ruby2.6.5·rails 5.2.6
深夜情感老师5 小时前
centos离线安装ssh
linux·centos·ssh
我的作业错错错5 小时前
搭建私人网站
服务器·阿里云·私人网站
王景程6 小时前
如何测试短信接口
java·服务器·前端
微网兔子6 小时前
伺服器用什么语言开发呢?做什么用什么?
服务器·c++·后端·游戏
一眼青苔7 小时前
切割PDF使用python,库PyPDF2
服务器·python·pdf
中云时代-防御可测试-小余8 小时前
高防IP是如何防护DDoS攻击和CC攻击的
运维·服务器·tcp/ip·安全·阿里云·ddos·宽度优先