Day07-VIM的初步认识

VIM介绍

1.什么是vim

其实和window的记事本或word文档很像,都是用来编辑文件的。

2.vi和vim有什么关系,什么区别?

其实本质上没有区别,vim是vi的增强版,vi没有语法检测,语法高亮,而vim有。
由于系统默认最小化安装,所以初始是没有vim的,需要使用yum install vim -y

3.如何使用vim?vim四种模式

1.png
1.默认打开文件是出于普通模式下
2.从普通模式切换到编辑模式需要使用 a、i、o 、A、I、O
3.编辑模式修改完毕后,要先使用ESC返回普通模式
4.在普通模式输入“:”或“/”进入命令模式,可实现文件的保存与退出
5.在vim中,无法直接从编辑模式切换到命令模式

vim的普通模式

命令光标跳转

G    光标跳转至文件末端
gg    光标跳转至文件顶端
ngg   光标跳转至当前文件的N行
$       光标跳转至当前行的尾部
^ | 0     这两个操作都可以使光标跳转至当前光标所在行的首部

进行翻页时

ctrl+f  往下翻页(行比较多)
ctrl+b 往上翻页

复制和粘贴

yy  复制当前光标所在的行
5yy  复制当前光标以及向下的4行

p(小写)粘贴至当前光标的下一行
P(大写)粘贴至当前光标的上一行

删除、剪贴、撤销

dd    删除当前光标所在行
4dd   删除当前光标所在行以及往下的3行
dG    删除当前光标以及光标以后的内容
D    删除当前光标以及光标以后的内容
x(小写)    删除当前光标标记往后的字符
X(大写)   删除当前光标标记往前的字符
u    撤销上一次的操作
dd &  p   剪贴,先删除,后粘贴

替换

r   替换当前光标标记的单个字符

vim编辑模式

从普通模式进入到编辑模式 i a o I A O 
i    进入到编辑模式,光标不做任何操作
a    进入编辑模式,将当前光标往后一位
o    进入编辑模式,并在当前光标下添加一行空白内容
I    进入编辑模式,并将光标跳转至本行头部
A    进入编辑模式,将光标移动至本行的尾部
O    进入编辑模式,并在当前光标上添加一行空白内容

命令模式

文件保存和退出

:w  保存当前状态
:q  退出当前文档(文档必须保存再能退出)
:wq 保存,退出

:w!  强制保存当前状态
:q!   强制退出文档,不会修改当前内容
:wq!  强制保存并退出

:x  先保存,在退出
ZZ  保存退出,shift+zz
:number 跳转至对应的行号 :10 跳转至10行

文件内容查找

/string  需要搜索的内容(查找)
n    按搜索到的内容向下查找
N    按搜索到的内容向上查找

文件内容替换

1,5s#sbin#test#g  替换1-5行内容中sbin替换为test
%s#sbin#test#g  替换整个文本中sbin为test

3文件内容另存

/w /rooot/test.txt   将所有内容另存为root/test.txt 中

视图模式

从普通模式进入到视图模式,主要进行批量操作

ctrl+v 进入可视块模式,选中需要注释的行
  1.插入:按shift+i 进入到编辑模式,输入#,技术按ESC键
  2.删除:选中内容后,按d删除
  3.替换:选中需要替换的内容,按下r键,然后输入替换的内容

shift+v 进入可视行模式,选中整行内容
  1.复制:选中行内容后按y键可进行复制
  2.删除:选中行内容后按d键删除

拓展知识

1.环境变量临时生效

:set nu  显示行号
:set ic    忽略大小写,在搜索的时候常用
:set list    显示制表符(空格、tab键)
:set ai    自动缩进
:set no(nu|ic|ai|...)  取消什么什么

2.环境变量永久生效,~/.vimc个人环境变量(优先级高) /etc/vimrc 全局环境变量

vim ~/.vimc   #当下次打开自动显示行号并忽略大小写
set nu
set ic

如果个人vim环境没有配置, 则使用全局vim环境变量配置。 
如果个人vim环境和全局环境变量产生冲突, 优先使用个人vim环境变量

3如何同时编辑多个文件

vim -o file1 file2    水平分割 
vim -O file1 file2  垂直分割
ctrl+ww 文件间切换

4.相同文件之间差异对比,通常用于对比修改前后差异

diff      文件对比   
vimdiff   以vim方式打开两个文件对比,高亮显示不同的内容

5.如果VIM非正常退出 (ctrl+z)挂起或强制退出终端没关闭VIM后

假设打开filename文件被以外关闭,需要删除同文件名的.swp文件
rm -f .filename.sw

你可能感兴趣的:(Day07-VIM的初步认识)