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这个可执行文件


相关推荐
Flash.kkl5 小时前
Linux——进程信号
运维·服务器
苏宸啊6 小时前
Linux权限
linux·运维·服务器
我是小疯子666 小时前
Python变量赋值陷阱:浅拷贝VS深拷贝
java·服务器·数据库
claider6 小时前
Vim User Manual 阅读笔记 usr_08.txt Splitting windows 窗口分割
笔记·编辑器·vim
xqhoj7 小时前
Linux——make、makefile
linux·运维·服务器
张童瑶7 小时前
Linux 在线安装编译Python3.11
linux·运维·python3.11
Shi_haoliu7 小时前
SolidTime 在 Rocky Linux 9.5 上的完整部署流程
linux·运维·nginx·postgresql·vue·php·laravel
lifejump7 小时前
Pikachu | XXE
服务器·web安全·网络安全·安全性测试
Lkygo7 小时前
LlamaIndex使用指南
linux·开发语言·python·llama
qq_254617778 小时前
nslookup 这个命令解析dns,和系统接口gethostbyname解析区别在哪?
linux·网络