2023.5.27 linux系统VIM编辑

发布时间 2023-05-28 01:01:47作者: 必兮相语--
01.Linux系统VIM编辑
01.Linux系统VIM编辑
VIM基本介绍
VIM模式介绍
VIM命令模式
VIM编辑模式
VIM末⾏模式
VIM视图模式
VIM环境变量
VIM扩展知识
VIM练习
 
VIM基本介绍
vi 和 vim 命令是linux中强⼤的⽂本编辑器, 由于 Linux系统⼀切皆⽂件 ,⽽配置⼀个服务就是在修改其配置⽂件的
参数。 vim 编辑器是运维⼯程师必须掌握的⼀个⼯具, 没有它很多⼯作都⽆法完成。
vim 其实是 vi 的升级版
那么 vi 与 vim 有什么区别?
vi不显示⾼亮颜⾊语法
vim显示⾼亮颜⾊语法。
其他功能没有什么区别。
所以在linux系统下,使⽤vi还是vim取决个⼈习惯。
如果在刚装完的 CentOS 操作系统下没有 vim 这个命令,⽤如下⽅式进⾏安装即可
VIM模式介绍
Vim编辑器中设置了三种模式: 命令模式、编辑模式、末⾏模式,每种模式分别⼜⽀持多种不同的命令快捷键,⼤⼤
提⾼了⼯作效率,⽽且⽤户在习惯之后也会觉得相当顺⼿。要想⾼效率地操作⽂本,就必须先搞清这三种模式的操
作区别以及模式之间的切换⽅法。
yum install -y vim-enhanced
 
 
图1-1
命令模式: 控制光标移动, 可对⽂本进⾏复制、粘贴、删除等⼯作。
使⽤vim filename 编辑⼀个⽂件时,⼀进⼊该⽂件就是命令模式了。
在这个模式下,可以进⾏光标移动、复制、删除、粘贴操作。
编辑模式: 正常的⽂本写⼊。
从命令模式进⼊编辑模式,只需你按⼀个键即可(i, I, a, A, o, O, r, R)。
当进⼊编辑模式时,会在屏幕的最下⼀⾏出现“INSERT的字样。
从编辑模式回到命令模式只需要按键盘左上⽅的 ESC 键即可。
末⾏模式: 保存或退出⽂档,以及设置编辑环境
在命令模式下,输⼊ ":" 或者 "/" 即可进⼊末⾏模式。
在该模式下,可以进⾏的操作有,显示⾏号、搜索、替换、保存、退出。
vim 编辑器配置⽂件整体流程如下:
1.默认打开⽂件处于命令模式
2.需要从命令模式切换⾄编辑模式
3.编辑模式修改配置⽂件, 然后返回命令⾏模式.
4.最后通过命令模式进⼊末⾏模式,保存和退出操作.
注意:在vim中,⽆法直接从编辑模式切换到末⾏模式。
VIM命令模式
命令⾏模式:(默认打开⽂件进⼊的是命令⾏模式)
//命令光标跳转
G 跳转光标⾄末端
gg 跳转光标⾄顶端
Ngg 跳转光标⾄当前⽂件内的22⾏
$ 将当前光标跳转⾄光标所在⾏的末端(尾部)
^ 将当前光标跳转⾄光标所在⾏的头部 —> 数字0 可实现类似效果
//⽂件内容较多
ctrl+f 往下翻⻚(⾏⽐较多)
ctrl+b 往上翻⻚
 
 
VIM编辑模式
编辑模式(从命令⾏模式进⼊到编辑模式)
VIM末⾏模式
末⾏模式主要⽤于搜索, 保存, 退出⽂件, 还可以让⽤户执⾏外部的Linux命令或跳转到所编写⽂档的特定⾏数
末⾏模式(必须退回到命令⾏模式)
//复制
yy复制当前光标所在的⾏
5yy复制当前光标以及光标向下4⾏
//粘贴
p(⼩写) 粘贴⾄当前光标下⼀⾏
P(⼤写) 粘贴⾄当前光标上⼀⾏
//删除
dd 删除当前光标所在的⾏
4dd 删除当前光标所在的⾏以及往下的3⾏
dG 删除当前光标以后的所有⾏
D 删除当前光标及光标以后的内容
x 删除当前光标标记往后的字符
X 删除当前光标标记往前的字符
//剪贴
先删除dd(number dd),后粘贴p
//撤销
u 撤销上⼀次的操作(类似windows下的ctrl+z)
//替换
r 替换当前光标标记的单个字符
R 进⼊REPLACE模式, 连续替换,ESC结束
i 进⼊编辑模式,光标不做任何操作
I 进⼊编辑模式,并且光标会跳转⾄本⾏的头部
a 进⼊编辑模式,将当前光标往后⼀位
A 进⼊编辑模式,将光标移动⾄本⾏的尾部
o 进⼊编辑模式,并在当前光标下添加⼀⾏空⽩内容
O 进⼊编辑模式,并在当前光标上添加⼀⾏空⽩内容
 
 
末⾏模式(查找和替换)
VIM视图模式
视图模式(从命令⾏模式进⼊视图模式)
VIM环境变量
环境变量临时⽣效
E37: No write since last change (add ! to override)
:w 保存当前状态
:w! 强制保存当前状态
:q 退出当前⽂档(⽂档必须保存才能退出)
:q! 强制退出⽂档不会修改当前内容
:wq 先保存,在退出
:wq! 强制保存并退出
:x 先保存,在退出
ZZ 保存退出, shfit+zz
:number 跳转⾄对应的⾏号
查找 /string 需要搜索的内容(查找)
n 按搜索到的内容依次往下进⾏查找
N 按搜索到的内容依次往上进⾏查找
替换
:1,5s#sbin#test#g 替换1-5⾏中包含sbin的内容为test
:%s#sbin#test#g 替换整个⽂本⽂件中包含sbin的替换为test
:%s#sbin#test#gc 替换内容时时提示是否需要替换
另存
:w /root/test 将⽂件所有内容另存为/root/test
读⼊
:r /etc/hosts 读⼊/etc/hosts⽂件⾄当前光标下⾯
:5r /etc/hosts 指定/etc/hosts⽂件当前⽂件的哪⾏下⾯
ctrl+v 进⼊VISUAL BLOCK 选中需要注释的⾏(可视块模式)
1.插⼊:按shift+i进⼊编辑模式,输⼊#,结束按ESC键
2.删除:选中内容后,按x或者d键删除
3.替换:选中需要替换的内容, 按下r键,然后输⼊替换后的内容
shift+v 进⼊VISUAL LINE 选中⾏内容(可视⾏模式)
1.复制:选中⾏内容后按y键及可复制。
2.删除:选中⾏内容后按d键删除。
 
环境变量永久⽣效
VIM扩展知识
1.如何同时编辑多个⽂件
2.相同⽂件之间差异对⽐
3.如果VIM⾮正常退出 (ctrl+z)挂起或强制退出终端没关闭VIM后
VIM练习
:set nu 显示⾏号
:set ic 忽略⼤⼩写, 在搜索的时候有⽤
:set ai ⾃动缩进
:set list 显示制表符(空⾏、tab键)
:set no[nu|ic|ai…] 取消临时设定的变量
~/.vimrc 个⼈环境变量(优先级⾼) /etc/vimrc 全局环境变量
# vim ~/.vimrc
set nu
set ic
//如果个⼈vim环境没有配置, 则使⽤全局vim环境变量配置。
//如果个⼈vim环境和全局环境变量产⽣冲突, 优先使⽤个⼈vim环境变量。
vim -o file1 file2 ⽔平分割
vim -O file1 file2 垂直分割
//ctrl+ww ⽂件间切换
diff ⽂件对⽐(⽤的不多)
vimdiff 以vim⽅式打开两个⽂件对⽐,标记不同的内容
//删除同⽂件名的.swp⽂件即可解决
.filename.swp rm -f .filename.swp
请把/etc/passwd 复制到/root/⽬录下,并重命名为test.txt
⽤vim打开test.txt并设置⾏号
分别向下、向右、向左、向右移动5个字符
分别向下、向上翻两⻚
把光标移动到第10⾏
让光标移动到⾏末,再移动到⾏⾸
移动到test.txt⽂件的最后⼀⾏
移动到⽂件的⾸⾏
搜索⽂件中出现的 root 并数⼀下⼀共出现多少个,不区分⼤⼩写搜索
把从第⼀⾏到第三⾏出现的root 替换成--alex--
 
 
还原上⼀步操作
把整个⽂件中所有的root替换成--alex--
把光标移动到20⾏,删除本⾏
还原上⼀步操作
删除第19⾏
还原上⼀步操作
删除从5⾏到10⾏的所有内容
还原上⼀步操作
复制2⾏并粘贴到11⾏下⾯
还原上⼀步操作(按两次u)
复制从11⾏到15⾏的内容并粘贴到8⾏上⾯
还原上⼀步操作(按两次u)
把13⾏到18⾏的内容移动⽂件的尾部
还原上⼀步操作(按两次u)
光标移动到⾸⾏,把/sbin/nologin改成/bin/bash
在第⼀⾏下⾯插⼊新的⼀⾏,并输⼊"# Hello!"
保存⽂档并退出