Linux环境基础开发工具——(2)vim

好了,上篇我们已经了解过了yum的知识点后,现在我们来了解一下vim

1. vim的基本概念

vim的三种模式(其实有好多模式,目前掌握这3种即可),分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode)

补充:不可以直接插入与底行之间的交换
正常/普通/命令模式(Normal mode)

控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode

插入模式(Insert mode)

只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。

末行模式(last line mode)

文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入

2.vim的基本操作

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

$ vim test.c

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

正常模式\]切换至\[插入模式

输入a

输入i (我们通常使用这个!!!)

输入o

插入模式\]切换至\[正常模式

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

正常模式\]切换至\[末行模式

「shift + ;」, 其实就是输入「:」

退出vim及保存文件,在[正常模式]下,按一下「:」冒号键进入「Last line mode」,

例如:

: w (保存当前文件)

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

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

下面是实操:

打开后是这个界面

想要编写代码:输入i,就可以正常写代码了

写完代码后,退出:Esc按键

退出:若输入了wq(w为保存,q为退出)后仍然退出不了,就需要强制退出:wq!,就可以退出

现在我们来看一下是否保存下来:看到下面的确实保存了下来了。


想要像上面的一样显示行号:set nu

去掉行号:set nonu

常见的命令模式(自己多上手练)

1.gg:定位光标到最开始行。

2.shift+g(实质是G):定位光标到最后一行。

3.n+shift+g(实质是nG):定位光标到任意行。

4.(n)yy:复制光标所在行。按多少次就复制多少个。

5.p:粘贴到光标所在行的下一行。

6.(n)p:重复n次5的操作

7.u:撤销

8.(n)dd:剪切,删除

9.shift+ $:定位光标到当前行结尾

10:shift+^:定位光标到当前行开始

11.w,b:光标按照单词进行行内跨行(其中w是向前,b倒退向后)

12shift+~:大小写转换

13.(n)r:对光标字符+之后的所有字符进行批量化替换。

14.shift+R:替换模式:对内容进行整体替换

15.h(左)j(下)k(上)l(右) 跟→差不多,但是建议使用hjkl

16.(n)x:对光标字符之后的字符进行删除。

17.ctrl+r:撤销之前的撤销

18.多文件的操作

1.q.退出

2.底行中,vs:打开多个文件编辑窗口。

3.ctrl+ww:窗口光标的切换

4.光标在哪个窗口里面,就对哪一个窗口进行操作。

以后了解:(先熟悉上面的常用的先)

移动光标

vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移一格

按「G」:移动到文章的最后

按「 $ 」:移动到光标所在行的"行尾"按「^」:移动到光标所在行的"行首"

按「w」:光标跳到下个字的开头按「e」:光标跳到下个字的字尾按「b」:光标回到上个字的开头

按「#l」:光标移到该行的第#个位置,如:5l,56l按[gg]:进入到文本开始

按[shift+g]:进入文本末端

按「ctrl」+「b」:屏幕往"后"移动一页按「ctrl」+「f」:屏幕往"前"移动一页按「ctrl」+「u」:屏幕往"后"移动半页按「ctrl」+「d」:屏幕往"前"移动半页

删除文字

「x」:每按一次,删除光标所在位置的一个字符

「#x」:例如,「6x」表示删除光标所在位置的"后面(包含自己在内)"6个字符

「X」:大写的X,每按一次,删除光标所在位置的"前面"一个字符

「#X」:例如,「20X」表示删除光标所在位置的"前面"20个字符

「dd」:删除光标所在行

「#dd」:从光标所在行开始删除#行复制

「yw」:将光标所在之处到字尾的字符复制到缓冲区中。「#yw」:复制#个字到缓冲区「yy」:复制光标所在行到缓冲区。

「#yy」:例如,「6yy」表示拷贝从光标所在的该行"往下数"6行文字。

「p」:将缓冲区内的字符贴到光标所在位置。

注意:所有与"y"有关的复制命令都必须与"p"配合才能完成复制与粘贴功能。

替换「r」:替换光标所在处的字符。

「R」:替换光标所到之处的字符,直到按下「ESC」键为止。
撤销上一次操作
「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次"u"可以执行多次回复。
「ctrl + r」: 撤销的恢复
更改
「cw」:更改光标所在处的字到字尾处
「c#w」:例如,「c3w」表示更改3个字跳至指定的行

「ctrl」+「g」列出光标所在行的行号。「#G」:例如,「15G」,表示移动光标至文章的第15行行首

好了,希望上面对你有所帮助,我们一起进步!

最后到了本次鸡汤环节:

关关难过关关过,长路漫漫亦灿灿!

相关推荐
我不会编程55513 小时前
Python Cookbook-5.1 对字典排序
开发语言·数据结构·python
李少兄13 小时前
Unirest:优雅的Java HTTP客户端库
java·开发语言·http
无名之逆13 小时前
Rust 开发提效神器:lombok-macros 宏库
服务器·开发语言·前端·数据库·后端·python·rust
cg501714 小时前
Spring Boot 的配置文件
java·linux·spring boot
似水এ᭄往昔14 小时前
【C语言】文件操作
c语言·开发语言
啊喜拔牙14 小时前
1. hadoop 集群的常用命令
java·大数据·开发语言·python·scala
暮云星影14 小时前
三、FFmpeg学习笔记
linux·ffmpeg
xixixin_14 小时前
为什么 js 对象中引用本地图片需要写 require 或 import
开发语言·前端·javascript
rainFFrain14 小时前
单例模式与线程安全
linux·运维·服务器·vscode·单例模式
GalaxyPokemon14 小时前
Muduo网络库实现 [九] - EventLoopThread模块
linux·服务器·c++