Linux文本工具之-Vim(一)

一、模式

1、普通模式

这是使用Vim打开一个文件时,Vim的默认模式。在普通模式下,您可以使用各种命令来移动光标、删除、复制、粘贴和其他编辑操作

2、插入模式

在插入模式下,您可以像在其他文本编辑器中一样输入和编辑文本。按下键盘上的插入键(通常是 iaoInsert 键)即可进入插入模式

3、可视模式

可视模式允许您选择、高亮并操作文本块。您可以使用各种移动命令来选择文本。在普通模式下敲击键盘的 v 键即可进入可视模式,然后移动光标就可以选中一块文本,常用来完成文本的复制、粘贴、删除等操作。

替换模式(Replace mode): 在替换模式下,您可以直接替换光标所在位置的字符。在普通模式下敲击键盘上的 R 键即可进入替换模式

4、替换模式

在替换模式下,您可以直接替换光标所在位置的字符。在普通模式下敲击键盘上的 R 键即可进入替换模式

5、命令行模式

命令行模式允许您执行各种命令。您可以在命令行中输入命令,例如保存文件、退出Vim、显示行号等。在普通模式下敲击 : 键即可进入命令行模式。

6、Ex mode模式

Ex 模式是Vim的可选模式,它是命令行模式的扩展。Ex 模式提供了更多高级命令和编辑选项。可以一次执行多个命另

二、光标移动

1、单字符移动
  • h:向左移动一个字符
  • l:向右移动一个字符
  • j:向下移动一行
  • k:向上移动一行
  • xh:向左移动x个字符距离
2、词组的移动
  • w:向后移动一个单词,移动到下一个单词的开头
  • b:向前移动一个单词,移动到前一个单词的开头
  • e:将光标移动到下一个单词的词末,如果光标不在当前单词的词尾时会移动到当前单词的词尾
  • E:移动到单词的结尾(忽略标点符号)
  • ge:将光标移动到上一个单词的词末
  • xw:指定移动的x次数
3、行移动
  • 0:将光标移动到当前行的行首。
  • $:将光标移动到当前行的行尾。
  • ^:将光标移动到当前行的第一个非空字符处(行首和当前行非空字符不是一个位置)。
  • 2|:将光标移动到当前行的第二个字符处。| 表示列。
  • fx:在当前行中向前查找字符 x,将光标定位到下一个出现的字符位置。
  • 3fx:在当前行中向前查找字符 x,将光标定位到第三个出现的字符位置。
  • tx:在当前行中向前查找字符 x,将光标定位到下一个出现的字符前一个位置(即停在字符 x 前一个位置)。
  • %:在匹配的括号间进行跳转,比如在括号或引号的一对匹配中,移动到相匹配的括号或引号处。
4、文本块移动
  • (:将光标移动到当前 \ 上一个句子的开头。句子以句号、问号或感叹号结尾。
  • ):将光标移动到下一个句子的开头
  • {:将光标移动到当前 \ 上一个段落的开头。段落由空行或一系列连续的非空行组成。
  • }:将光标移动到下一个段落的开头。
  • [[:将光标移动到当前 \ 上一个函数或块的开头。
  • ]]:将光标移动到下一个函数或块的开头
5、屏幕中移动
  • gg:移动到文件的第一行
  • G:移动到文件的最后一行
  • xG:将光标移动到文件的第 x 行,其中 x 是行号
  • H:移动到当前屏幕的顶部行
  • M:移动到当前屏幕的中间行
  • L:移动到当前屏幕的底部行
  • Ctrl+f:向前翻页
  • Ctrl+b:向后翻页

三、滚屏和跳转

1、Ctrl+u

向屏幕上方滚动半个屏幕的高度

2、Ctrl+d

向屏幕下方滚动半个屏幕的高度

3、Ctrl+b

向屏幕上方滚动一个屏幕的高度

4、Ctrl+f

向屏幕下方滚动一个屏幕的高度

5、zt

将当前行移动到屏幕顶部

6、zz

将当前行移动到屏幕中间

7、zb

将当前行移动到屏幕底部

8、:N

将光标移动到第 N 行

四、选中

|------------|----------------|
| v | 进行字符选中 |
| V 或shift+v | 进行行选中 |
| gv | 选中上一次选择的内容 |
| o | 光标移动到选中内容另一处结尾 |
| O | 光标移动到选中内容另一处角落 |
| ctr + V | 进行块选中 |

指定内容的选中,根据光标来选中内容:

先将光标移动到指定内容的起始位置,按v进入可视模式,通过l向后选择,通过j向下选择,通过h向前选择,直到光标到达选中内容的尾部。

如下图:

ctrl+v 效果如图:

一般而言选中命令常用在文本内容或者特殊文本区块内容的拷贝和剪切 ,使用方法很简单,当在可视模式下选中了内容后,按y键复制,此时vim内容最下方可以看到提示信息如图:

关于复制的讲解移步下面内容

五、复制、剪切、粘贴、删除、撤销

1、复制
快捷键 功能描述
y 复制已选中的文本到剪贴板
n+yy 复制光标所在行,此命令前可以加数字 n,可复制多行
yw 复制光标位置的单词
ctrl+v + 方向键+yy ctrl+v,并按方向键选中区块,按下yy复制
2、剪切
快捷键 功能描述
dd 剪切光标所在行
数字+dd 以光标所在行为准(包含当前行),向下剪切指定行数
D 剪切光标所在行
3、粘贴
快捷键 功能描述
p 将剪贴板中的内容粘贴到光标后
P(大写) 将剪贴板中的内容粘贴到光标前
4、删除
快捷键 功能描述
x 删除光标所在位置的字符
X(大写) 删除光标前一个字符
dd 删除光标所在行 ,删除之后,下一行上移
D 删除光标位置到行尾 的内容,删除之后,下一行不上移
ndd 删除当前行(包括此行)后 n 行文本
dw 移动光标到单词的开头以删除该单词
dG 删除光标所在行一直到文件末尾的所有内容
:a1,a2d 删除从 a1 行到 a2 行的文本内容
5、撤销
快捷键 功能描述
u 撤销
ctrl+r 恢复
U(大写) 撤销所有编辑

实践如下图:

yy是复制光标当前行,p是粘贴复制的行到光标下方行,当光标选中的非行数据时不包含\n,所以p粘贴时在光标后。

如图:

复制上图选中的内容在当前光标位置粘贴

下图为按键yllllllp

下图效果为按键yp

实操截图只是为了讲解,vim的命令还需要自己动手去不断熟悉才能深刻。

相关推荐
我言秋日胜春朝★44 分钟前
【Linux】进程地址空间
linux·运维·服务器
C-cat.1 小时前
Linux|环境变量
linux·运维·服务器
yunfanleo1 小时前
docker run m3e 配置网络,自动重启,GPU等 配置渠道要点
linux·运维·docker
糖豆豆今天也要努力鸭2 小时前
torch.__version__的torch版本和conda list的torch版本不一致
linux·pytorch·python·深度学习·conda·torch
烦躁的大鼻嘎2 小时前
【Linux】深入理解GCC/G++编译流程及库文件管理
linux·运维·服务器
ac.char2 小时前
在 Ubuntu 上安装 Yarn 环境
linux·运维·服务器·ubuntu
敲上瘾2 小时前
操作系统的理解
linux·运维·服务器·c++·大模型·操作系统·aigc
长弓聊编程2 小时前
Linux系统使用valgrind分析C++程序内存资源使用情况
linux·c++
nbsaas-boot2 小时前
如何利用ChatGPT加速开发与学习:以BPMN编辑器为例
学习·chatgpt·编辑器
cherub.3 小时前
深入解析信号量:定义与环形队列生产消费模型剖析
linux·c++