【Linux学习笔记】代码编辑工具vim

    • [1. vim工具基本模式的转换](#1. vim工具基本模式的转换)
    • [2. vim命令模式下的各种编辑命令](#2. vim命令模式下的各种编辑命令)
      • [2.1. 光标行定位](#2.1. 光标行定位)
      • [2.2. 光标自由定位](#2.2. 光标自由定位)
      • [2.3. 复制粘贴](#2.3. 复制粘贴)
      • [2.4. 删除](#2.4. 删除)
      • [2.5. 文本的大小写替换](#2.5. 文本的大小写替换)
      • [2.6. 文本的替换](#2.6. 文本的替换)
      • [2.7. 文本的前删后删](#2.7. 文本的前删后删)
      • [2.8. 撤销操作](#2.8. 撤销操作)
    • [3. vim底行模式下的命令](#3. vim底行模式下的命令)
      • [3.1. 设置行号与取消设置行号](#3.1. 设置行号与取消设置行号)
      • [3.2. 分屏操作](#3.2. 分屏操作)
      • [3.3. 在不退出vim的情况下执行Linux命令](#3.3. 在不退出vim的情况下执行Linux命令)
      • [3.4. 字符串替换](#3.4. 字符串替换)
    • [4. vim的配置文件](#4. vim的配置文件)

vim是Linux系统下的一个功能强大,多模式的编辑器。如果要拿Windows中的一个编辑器类比,那就是记事本。

1. vim工具基本模式的转换

简单的介绍一下vim的使用,如图所示:

三种模式的相互转换图:

2. vim命令模式下的各种编辑命令

2.1. 光标行定位

1. 行右定位

命令:shift + 4(连按,4是键盘上面的4,不是小键盘的数字4)

功能:把光标所在位置直接定位到所在行的最右边。

示范:

现在我进行定位操作,将光标定位改行的最右端。

2. 行左定位

命令:shift + 6(连按,6是键盘上面的6,不是小键盘的数字6)

功能:把光标所在位置直接定位到所在行的最左边。

示范:

现在我在命令模式下,输入指令shift + 6,即可将光标定位到该行的最左端。

3. 顶部定位

命令:gg(连按)

功能:把光标所在位置直接定位到最顶部。

示范:

在命令模式下,输入指令gg,即可将光标定位到最顶部。

4. 底部定位

命令:shift + g(连按)

功能:把光标所在位置直接定位到最底部。

示范:

在命令模式下,输入指令shift + g,即可将光标定位到最底部。

5. 任意行定位

在底行模式下输入指令 set nu 即可显示现在文本的行数。

命令:n + shift + g(n代表的是具体的数字)

功能:将光标定位到第n行的位置

示范:

在命令模式下,输入1 + shift + g,即可将光标定位到第1行。

2.2. 光标自由定位

上面讲了光标的行定位,可以把光标定位到任意行的位置。

接下来讲一讲光标上下左右的自由定位。需要用到的是 h j k l 四个字母。

  1. h代表的是光标向左移动1位。
  2. j代表的是光标向下移动1位。
  3. k代表的是光标向上移动1位。
  4. l代表的是光标向右移动1位。

记忆小技巧:

看到键盘上的4个字母的位置。

  • h在最左边,可以认为向左移动。
  • j可以认为是jump的单词的缩写首字母,向下跳就是向下移动。
  • k对应的不是最右边,向下和向上的功能也有了,自然就是向上移动咯。
  • l在最右边,可以认为向右移动。

具体的操作就不做示范了,感兴趣的可以自行尝试一下。

另外的,光标还有其他的定位方式。

1. 按照单词向前定位

指令:w

功能:向后按照单词定位

示范:略

2. 按照单词向后定位

指令:b

功能:向前按照单词定位

示范:略

2.3. 复制粘贴

1. 复制

指令:yy

功能:针对光标所在行进行复制

示范:

2. 粘贴

指令:p

功能: 将复制的文本进行粘贴

示范:如上图。

其中yy(复制) 和 p(粘贴)支持 nyy 和 np操作(n代表的是具体的数字)。

  1. 10yy代表的是从光标所在行开始数10行进行文本的复制
  2. 10p代表的是将文本内容复制10次。

具体的操作就不做演示了,有兴趣的可以自行尝试!

2.4. 删除

命令:dd

功能:针对光标所在行的内容进行删除

示范:

输入删除命令,会把光标所在行的内容删除。

其中ndd(n代表的是一个具体的数字),指定删除从光标所在行开始删除n行的内容。

搭配上复制命令(p),可以形成剪切的效果。

我输入 3dd,然后将光标移动到最底部,看看效果。

另外的,还有按照单词删除的命令。

命令:cw

功能:按照单词进行删除

示范:

删除后,会自动进入插入模式。另外cw也支持cnw操作,具体的含义就是删除n个单词。

2.5. 文本的大小写替换

命令:shift + ~

功能:将光标所在行的内容逐个进行大小写的替换,如果是大写,则换成小写,如果是小写,则换成大写。

示范:

输入命令shift + ~后,看看效果。

2.6. 文本的替换

  1. 批量化替换

指令:shift + r

功能:进入替换模式。

示范:

2. 逐个替换

指令:r

功能:将光标选中的一个内容进行替换

示范:

按1下r,然后输入你想要更换的字符。

2.7. 文本的前删后删

  1. 前删

命令:shift + x

功能:从光标开始,逐个删除光标前的内容(不包括光标)

示范:

输入指令shift + x

2. 后删

命令:x

功能:从光标开始,逐个删除光标后的内容(包括光标)

示范:

输入指令x

2.8. 撤销操作

1. 撤销操作

指令:u

功能:将刚才所做的操作撤销,类似Windows系统下的crtl + z

示范:

操作完成后,我再按u撤销刚才的dd操作。

2. 取消撤销操作

指令:crtl + r

功能:取消撤销操作,类似Windows系统下的crtl + y

示范:略

3. vim底行模式下的命令

3.1. 设置行号与取消设置行号

1. 设置行号

命令:set nu

功能:对当前文本进行行号的显示。

示范:

2. 取消设置行号

指令: set nonu

功能:取消当前文本的行号显示

示范:

3.2. 分屏操作

命令: vs + 文件名

功能:把想要分屏的文件与当前文件进行分屏编写。

示范:

注意!光标在哪个文件显示,就说明你当前选中了哪个文件!

当你选中了光标所在的文件,进行的所有操作都是在该文件下操作的,不会影响另一个文件。

如果你想更换文件的选择,只需要当前文件的命令模式下,输入crtl + ww即可完成光标跳转到另一个文件的操作。

3.3. 在不退出vim的情况下执行Linux命令

进入到了vim工具,如果你想查询相关的手册,按照一贯的思维是要退出vim工具的。

但是如果在vim工具下,进入到底行模式,输入! + 相应的Linux命令,即可在不退出vim工具的情况下执行相关的Linux命令。

示范:

按ENTER重新进入vim工具。

3.4. 字符串替换

指令:%s/字符串1/字符串2/g

功能:按照上面的指令,就是讲字符串2换成字符串1。

示范:

4. vim的配置文件

从下载开始到使用,vim工具用起来就像个记事本一样,命令很多,而且写代码也不太方便。

这是因为这是vim的最初模样,你可以根据你自己的喜好去配置你的vim,让你的vim用起来更得心应手。

下面来说说vim的配置。

  1. 首先在用户的家目录下创建一个.vimrc文件用以配置vim.
  1. 上网搜索各种vim的配置

例如像这样的

都可以加到.vimrc文件中去,用以配置你的vim。

相关推荐
xiaoyaolangwj4 分钟前
高翔【自动驾驶与机器人中的SLAM技术】学习笔记(十三)图优化SLAM的本质
学习·机器人·自动驾驶
静止了所有花开1 小时前
SpringMVC学习笔记(二)
笔记·学习
爱吃生蚝的于勒1 小时前
C语言内存函数
c语言·开发语言·数据结构·c++·学习·算法
L_cl3 小时前
Python学习从0到1 day26 第三阶段 Spark ④ 数据输出
学习
Mephisto.java3 小时前
【大数据学习 | HBASE】hbase的读数据流程与hbase读取数据
大数据·学习·hbase
舞动CPU4 小时前
linux c/c++最高效的计时方法
linux·运维·服务器
红中马喽4 小时前
JS学习日记(webAPI—DOM)
开发语言·前端·javascript·笔记·vscode·学习
尘浮生6 小时前
Java项目实战II基于微信小程序的移动学习平台的设计与实现(开发文档+数据库+源码)
java·开发语言·数据库·spring boot·学习·微信小程序·小程序
秦jh_6 小时前
【Linux】多线程(概念,控制)
linux·运维·前端
huangkj-henan6 小时前
DA217应用笔记
笔记