前言
Linux基础是学习云原生的重中之重,如果你还不知道学习路线可以参考:
耗时3个月,线下访谈30+ csdn大佬,规划出了我的云原生学习路线
文章目录
- 前言
- vim的介绍
- vim的四种模式
- 1. 插入模式
- 1.1 进入插入模式:
- 1.2 退出插入模式:
- 2. 普通模式
- 2.1 光标定位
- 2. 2.对文本进行处理
- 3. 命令模式
- 3.1 文本内容查询
- 3.2 命令行操作
- 3.3 替换模式
- 4. 可视化模式
- vim同时操作多个文件
- 总结
vim的介绍
vim号称编辑器之神,唯快不破,可扩展,各种插件满天飞。
vim源于vi, 但不是vi。 vi是美国计算机科学家比尔.乔伊编写并发布于1976年。
关键是这个只是他职业生涯的一个副产品,没有做什么维护。
vim是布莱姆.米勒于1991年发布。Vim最早的版本是1.14,它是基于Amiga计算机上的AmigaVI编辑器开发而来。
Vim的目标是提供一个兼容vi的编辑器,并在此基础上增加新特性和改进。
优秀的程序员都有个特性,感觉不爽就写个工具。
vim的四种模式
- 普通模式: vim启动后的默认模式,用来移动光标,删除文本,覆盖输入文本,恢复操作,粘贴文本
- 插入模式,输入i后进入插入模式,在这个模式下敲击键盘会往文字缓冲区增加文字,相当于普通的编辑器的编辑模式
- 可视模式: 选择多行文本进行复制,删除,排序等操作
- 命令模式: 执行内部和外部命令,通过: ? / 等进入命令模式,进行操作
- 替换模式: 替换模式也可以划入到命令模式
1. 插入模式
- 首次进入文件 ---- 命令模式
- 出现 “Insert” ---- 编辑模式
- 退出插入模式:输入: ---- 命令行模式
1.1 进入插入模式:
- 按下 i 键,在当前光标位置之前插入文本。
- 按下 a 键,在当前光标位置之后插入文本。
- 按下 o 键,在当前行的下方插入一个新行,并进入插入模式。
- 按下 O 键,在当前行的上方插入一个新行,并进入插入模式。
- 按下 I 键,在当前行的行首插入文本。
- 按下 A 键,在当前行的行尾插入文本。
- 按下 s 键,删除当前字符并进入插入模式。
- 按下 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 替换模式
文本替换,可以使用
- 替换当前行中的文本:
:s/old/new:将当前行中的第一个匹配到的 "old" 替换为 "new"。
:s/old/new/g:将当前行中所有匹配到的 "old" 替换为 "new"。使用 g 标志表示全局替换。
:s/old/new/i:进行不区分大小写的替换。使用 i 标志表示忽略大小写。
- 替换整个文件中的文本:
:%s/old/new:将整个文件中的第一个匹配到的 "old" 替换为 "new"。
:%s/old/new/g:将整个文件中所有匹配到的 "old" 替换为 "new"。使用 g 标志表示全局替换。
:%s/old/new/gc:将整个文件中所有匹配到的 "old" 替换为 "new",并在替换前进行确认。
使用 c 标志表示确认每次替换。
- 限定替换范围:
:<start>,<end>s/old/new/g:在指定的行范围内进行全局替换。
将 <start> 和 <end> 替换为起始和结束行号。
- 使用正则表达式进行替换:
:s/pattern/replacement:使用正则表达式进行模式匹配和替换。
将 "pattern" 替换为正则表达式模式,"replacement" 替换为要替换成的内容。
常见案例:
:1,3 s/bin/itlaoxin 替换第1到3行中出现的第一个bin进行替换为itlaoxin
:1,3 s/bin/itlaoxin/g 替换第1到3行中查找到所有的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模式 移动光标选择区域
编程的时候需要进行多行注释:
- ctrl+v 进入列编辑模式
- 向下或向上移动光标,把需要注释、编辑的行的开头选中起来
- 然后按大写的I
- 再插入注释符或者你需要插入的符号,比如"#"
- 再按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:以上下形势,打开两个文档
[root@itlaoxin63 ~]# vim -o /etc/passwd /etc/hosts
方法2:以左右方式打开两个文档
[root@itlaoxin63 ~]# vim -O /etc/passwd /etc/hosts
注:ctrl+ww 在两文档之间进行切换编辑。
大写O左右分屏,小写的o上下分屏
总结
以上就是vim的全部内容,可以在评论区留言探讨。
我是沐风晓月,在学习的路上一直前行,期待与你一起进步。
想学习更多内容,也可以关注我师父的博客:互联网老辛