Linux基础:Vim编辑器实用指南

前言

在这里插入图片描述
Linux基础是学习云原生的重中之重,如果你还不知道学习路线可以参考:

耗时3个月,线下访谈30+ csdn大佬,规划出了我的云原生学习路线

vim的介绍

vim号称编辑器之神,唯快不破,可扩展,各种插件满天飞。

vim源于vi, 但不是vi。 vi是美国计算机科学家比尔.乔伊编写并发布于1976年。

关键是这个只是他职业生涯的一个副产品,没有做什么维护。

vim是布莱姆.米勒于1991年发布。Vim最早的版本是1.14,它是基于Amiga计算机上的AmigaVI编辑器开发而来。

Vim的目标是提供一个兼容vi的编辑器,并在此基础上增加新特性和改进。

优秀的程序员都有个特性,感觉不爽就写个工具。

vim的四种模式

  1. 普通模式: vim启动后的默认模式,用来移动光标,删除文本,覆盖输入文本,恢复操作,粘贴文本
  2. 插入模式,输入i后进入插入模式,在这个模式下敲击键盘会往文字缓冲区增加文字,相当于普通的编辑器的编辑模式
  3. 可视模式: 选择多行文本进行复制,删除,排序等操作
  4. 命令模式: 执行内部和外部命令,通过: ? / 等进入命令模式,进行操作
  5. 替换模式: 替换模式也可以划入到命令模式

1. 插入模式

  • 首次进入文件 ---- 命令模式
  • 出现 “Insert” ---- 编辑模式
  • 退出插入模式:输入: ---- 命令行模式

1.1 进入插入模式:

  1. 按下 i 键,在当前光标位置之前插入文本。
  2. 按下 a 键,在当前光标位置之后插入文本。
  3. 按下 o 键,在当前行的下方插入一个新行,并进入插入模式。
  4. 按下 O 键,在当前行的上方插入一个新行,并进入插入模式。
  5. 按下 I 键,在当前行的行首插入文本。
  6. 按下 A 键,在当前行的行尾插入文本。
  7. 按下 s 键,删除当前字符并进入插入模式。
  8. 按下 S 键,删除当前行并进入插入模式。

1.2 退出插入模式:

按下 Esc 键,返回普通模式。

2. 普通模式

切换到命令行模式:
按下 : 键,进入命令行模式,可以执行各种命令。

2.1 光标定位

  • hjkl : 左下上右

在早期的计算机键盘上,没有专门的方向键。因此,在设计vi时,Bill Joy选择了键盘上与字母键相邻的 hjkl 键作为光标移动键。这些键被认为比较容易记忆和使用,并且位于键盘底部,因此可以更自然地控制光标移动。

具体来说,h、j、k、l 键是沿着键盘上的水平和垂直方向排列的

在这里插入图片描述

  • 快速定位

0 和 home键表示切换到行首, $和end键表示切换到行尾
gg 快速定位到文档的首行 , G定位到未行
3gg 或者 3G 快速定位到第3行

  • 通过打开文件进行光标定位
vim +<行号> <文件名>
vim <文件名> +"normal <行号>G"
Vim file : 第一行的行首 第一次打开文件
Vim file +5: 跳到第五行

[root@itlaoxin41 ~]# vim passwd +$
vim +10 filename.txt   # 打开文件后将光标定位到第10行

vim +10:20 filename.txt   # 打开文件后将光标定位到第10行第20列
Vim file +: 跳到最后一行
vim +/<搜索字符串> <文件名>
vim +/example filename.txt   # 打开文件并将光标定位到第一个匹配 "example" 的位置
Vim file +/root 第一次打开文件

2. 2.对文本进行处理

文本编辑分为删除,复制,粘贴,剪切,撤销

  • y复制(以字符为单位) :表示对单个字符进行复制,如果要复制整行,用yy(以行为单位)
    复制N行:Nyy,比如: 2yy ,表示复制2行
  • y$:从光标所在位置复制到行尾
  • y^:从光标所在位置复制到行首
  • dd(删除,以行为单位,删除当前光标所在行)
    删除N行: Ndd,比如: 2dd ,表示删除2行
  • d0:删至行首
  • d$:删至行尾
  • p : p粘贴
  • x 删除光标所在位置的字符
  • D 从光标处删除到行尾
  • u 撤销操作
  • r: 替换,或者说用来修改一个字符
  • ctrl +r 还原撤销过的操作,将做过的撤销操作再还原回去,也就是说撤销前是什么样,再还原成什么样

3. 命令模式

命令模式指的是 执行内部和外部命令,通过: ? / 等进入命令模式,进行操作

3.1 文本内容查询

  • /string(字符串) -----找到或定位你要找的单词或内容,如果相符内容比较多,我们可以通过N、n来进行向上向下查找,并且vi会对查找到的内容进行高亮显示,取消用 :noh
    -/^d :^意思表示以什么开头 ,查找以字母d开头的内容
  • /t$ $意思表示以什么结尾,,查找以字母t结尾的内容

3.2 命令行操作

常见和常用的命令操作

:q!:退出 Vim 
:wq:存盘退出 
:s:执行替换 
:!:执行外部命令 
:edit(一般缩写为 “:e”):编辑文件 
:w:写文件 
:r:读文件 并且插入
:help:查看帮助
:set nu 设置行号
:set ic 不区分大小写
:set list 显示控制字符 nolist
:set nonu 取消设置行号
:set noic 取消
:set ai 自动缩进,比如换行操作,设置这个功能后,可以在下次操作时进行自动换行
:noh 取消高亮显示

在vim中直接执行,属于临时操作,如果想永久生效,需要设置环境变量:

永久设置环境
/etc/vimrc设置后会影响到系统所有的用户
~/.vimrc#在用户的家目录下,创建一个.vimrc。这样只影响到某一个用户,没有自己建一个
例:

[root@itlaoxin63 ~]# cat /root/.vimrc 
set nu
  • 调用外部文件或者命令
    在命令行模式下操作:
:!ifconfig 
#调用系统命令

读取其他文件。(把其他文件中的内容追加到当前文档中)

:r /etc/hosts

3.3 替换模式

文本替换,可以使用

  1. 替换当前行中的文本:
:s/old/new:将当前行中的第一个匹配到的 "old" 替换为 "new"。
:s/old/new/g:将当前行中所有匹配到的 "old" 替换为 "new"。使用 g 标志表示全局替换。
:s/old/new/i:进行不区分大小写的替换。使用 i 标志表示忽略大小写。
  1. 替换整个文件中的文本:
:%s/old/new:将整个文件中的第一个匹配到的 "old" 替换为 "new"。
:%s/old/new/g:将整个文件中所有匹配到的 "old" 替换为 "new"。使用 g 标志表示全局替换。
:%s/old/new/gc:将整个文件中所有匹配到的 "old" 替换为 "new",并在替换前进行确认。
使用 c 标志表示确认每次替换。
  1. 限定替换范围:
:<start>,<end>s/old/new/g:在指定的行范围内进行全局替换。
将 <start><end> 替换为起始和结束行号。
  1. 使用正则表达式进行替换:
:s/pattern/replacement:使用正则表达式进行模式匹配和替换。
将 "pattern" 替换为正则表达式模式,"replacement" 替换为要替换成的内容。

常见案例:

:1,3 s/bin/itlaoxin 替换第13行中出现的第一个bin进行替换为itlaoxin
:1,3 s/bin/itlaoxin/g 替换第13行中查找到所有的bin进行替换为itlaoxin
:3 s/itlaoxin/aaaaa #只把第3行中内容替换了
 :% s/s/ssaass/g 将文本中所有的s替换成ssaass
:% s/IT/yyy/gi 将文本中所有的IT替换成yyy, 并且忽略IT的大小写
:% s@a@b@g 将文本中所有的a替换成b

4. 可视化模式

Vim中的可视化模式(Visual mode)允许你在编辑器中选择、操作文本块。在可视化模式下,可以选择字符、行或块,然后对选中的文本应用编辑命令。

批量加#号:

V模式(列)
进入v模式 移动光标选择区域
编程的时候需要进行多行注释:

  1. ctrl+v 进入列编辑模式
  2. 向下或向上移动光标,把需要注释、编辑的行的开头选中起来
  3. 然后按大写的I
  4. 再插入注释符或者你需要插入的符号,比如"#"
  5. 再按Esc,就会全部注释或添加了

删除:再按ctrl+v 进入列编辑模式;向下或向上移动光标 ;选中注释部分,然后按d或者x, 就会删除注释符号。

在这里有两个常用的参数:

缩进:按下">“键对所选文本进行缩进。
反缩进:按下”<"键对所选文本进行反缩进。

vim同时操作多个文件

1.打开多个文件:在终端中使用Vim命令打开多个文件,例如:

   vim file1.txt file2.txt

这将在Vim中打开file1.txt和file2.txt两个文件,并显示一个文件列表。你可以在文件列表中移动光标并按回车键打开你要编辑的文件。

  • 文件切换

使用命令 :n 或 :next 可以切换到下一个文件
使用 :prev 或 :previous 可以切换到上一个文件

2 .分割窗口:在Vim中,可以使用分割窗口的方式同时显示多个文件。

使用命令 :split 或 :sp 可以在水平方向上分割窗口
使用命令 :vsplit 或 :vsp 可以在垂直方向上分割窗口。
在分割窗口后,使用 Ctrl + W 组合键结合方向键进行窗口间的切换

  1. 其他方式:

方法1:以上下形势,打开两个文档

[root@itlaoxin63 ~]# vim -o /etc/passwd /etc/hosts

方法2:以左右方式打开两个文档

[root@itlaoxin63 ~]# vim -O /etc/passwd /etc/hosts

注:ctrl+ww 在两文档之间进行切换编辑。
大写O左右分屏,小写的o上下分屏

总结

以上就是vim的全部内容,可以在评论区留言探讨。

我是沐风晓月,在学习的路上一直前行,期待与你一起进步。

想学习更多内容,也可以关注我师父的博客:互联网老辛

猜你喜欢

转载自blog.csdn.net/wisdom_futrue/article/details/131454010