linux day11 vim详细用法

一、文本编辑器--vim

1.什么是vim

vi和vim命令是linux中强大的文本编辑器, 由于Linux系统一切皆文件,而配置一个服务就是在修改其配置文件的参数。
vim编辑器是运维工程师必须掌握的一个工具, 没有它很多工作都无法完成。
vim其实是vi的升级版

vim和vi的区别:
	vi 不高亮显示语法
	vim 高量显示语法
	
#服务默认安装完没有vim命令
yum install -y vim

二、vim模式介绍

Vim编辑器中设置了三种模式: 命令模式、编辑模式、末行模式,每种模式分别又支持多种不同的命令快捷键,大大提高了工作效率,而且用户在习惯之后也会觉得相当顺手。要想高效率地操作文本,就必须先搞清这三种模式的操作区别以及模式之间的切换方法。

命令模式: 控制光标移动, 可对文本进行查看、翻页、复制、粘贴、删除、剪切等工作。
使用vim filename 编辑一个文件时,一进入该文件就是命令模式了。
在这个模式下,可以进行光标移动、复制、删除、粘贴操作。 

编辑模式: 正常的文本写入。
从命令模式进入编辑模式,只需你按一个键即可(i, I, a, A, o, O, r, R,s,S)。
当进入编辑模式时,会在屏幕的最下一行出现“INSERT”的字样。
从编辑模式回到命令模式只需要按键盘左上方的 ESC 键即可。 

末行模式: 保存或退出文档,以及设置编辑环境
在命令模式下,输入 ":" 或者 "/" 即可进入末行模式。
在该模式下,可以进行的操作有,显示行号、搜索、替换、保存、退出。

1.命令模式

1)光标跳转

G(shift + g)	#跳转文件最后一行
gg				#跳转到文件首行
Ngg				#跳转到第N行,N是行数
home			#跳转到行首
^(shift + 6)	#跳转到行首有字符的位置
0				#跳转到行首
end				#跳转到行尾
$(shift + 4)	#跳转到行尾

2)查看数据翻页

ctrl + f		#向下翻页
ctrl + b		#想上翻页

3)复制黏贴

yy				#复制光标所在行
yNy				#复制光标所在下面N行,N表示多少行
p				#粘贴复制的内容,到光标所在下一行
P				#粘贴复制的内容,到光标所在上一行
Np				#粘贴N遍,N表示遍数

4)删除和剪切

dd				#删除和剪切光标所在行
dNd				#删除和剪切光标以下N行
dG				#删除和剪切光标所在以下到结尾所有内容
dgg				#删除和剪切光标所在以上到开头所有内容
D				#删除和剪切光标所在位置到行末的所有内容,包括光标位置的内容
d + home		#删除和剪切光标所在位置到行首的所有内容,不包括光标位置的内容
x				#删除和剪切光标所在位置的内容
X				#删除和剪切光标所在位置前面的内容

5)撤销

u				#撤销上一次操作
ctrl + r		#取消撤销

6)替换命令

r				#替换光标所在位置的字符
R				#替换多个字符,直到按ESC结束替换

2.编辑模式

#进入编辑模式的按键

i			#进入编辑模式
I			#进入编辑模式,光标跳到行首

a			#进入编辑模式,光标后移一位
A			#进入编辑模式,光标跳到行尾

o			#进入编辑模式,光标下移一行
O			#进入编辑模式,光标上移一行

s			#进入编辑模式,并删除光标所在位置的内容
S			#进入编辑模式,并删除光标所在行的内容

3.末行模式

1)作用

1.搜索
2.保存
3.退出
4.替换
5.优化查看

#输入 ":" 或者 "/" 即可进入末行模式

2)冒号进入末行模式

:w			#保存文件修改
:q			#退出编辑文件
:wq			#保存并退出
!			#强制
:w!			#强制保存文件
:q!			#强制退出,修改的内容不会被保存
:wq!		#强制保存并退出
:x			#先保存再退出
ZZ			#保存退出(在命令模式下)

:N			#跳转到N行,N代表行数
:set nu		#显示行号

3)末行模式搜索

#搜索内容
/ + 字符串			搜索字符串
	n:		#匹配下一条搜索
	N:		#匹配上一条搜索

4)替换

#把文件中tcp都换成udp
:%s#tcp#udp#g
%:		#代表所有行
s:		#代表替换
g:		#代表所有内容

#替换指定行数内容
:1,10s#tcp#udp#g
1,10:	#代表只替换1-10行的内容

:1,10s#tcp#udp#gc			#替换内容前询问
replace with udp (y/n/a/q/l/^E/^Y)?			#询问内容
y:	yes	确认替换
n:	no	不替换
a:	all	全部替换
q:  quit  退出
l:	last  只替换一次,退出

4.视图模式(可视块模式)

ctrl + v 进入块模式
	作用:
	1.批量删除:进入块模式,选中内容,按x删除
	2.批量注释:进入块模式,选中要加注释的行,shfit + i进入编辑模式并到行首,输入#,按ESC
	3.批量替换:进入块模式,选中要替换的内容,按r,然后输入要替换的值
	
shift + v 进入行模式
	作用:
	1.批量复制:进入行模式,选中内容,按y复制,按p粘贴
	2.批量删除:进入行模式,选中内容,按x删除

5.vim常用的环境变量

1)临时环境变量

:set nu			#显示行号
:set nonu		#取消显示行号
:set ic			#搜索时忽略大小写
:set list 		#显示制表符

2)一般配置

[root@Centos7 ~]# vim  ~/.vimrc
syntax on
set fenc=utf-8
set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936
set number
set autoindent
set smartindent
set tabstop=4
set shiftwidth=4
set ruler
set incsearch
set showmatch
set matchtime=10
set ignorecase
set cursorline
set t_Co=256

#语法高亮
syntax on
#配置默认编码
set fenc=utf-8
set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936
#显示行号
set number
#自动对齐
set autoindent
set smartindent
#控制tab键为四个空格
set tabstop=4
#设置当行之间交错时使用4个空格
set shiftwidth=4
#设置在编辑过程中,于右下角显示光标位置的状态行
set ruler
#设置增量搜索,这样的查询比较smart
set incsearch
#高亮匹配括号
set showmatch
#高亮匹配括号时间
set matchtime=10
#忽略大小写
set ignorecase
#高亮显示当前行
set cursorline
#支持颜色代码
set t_Co=256

6.vim扩展知识

1)如何同时编辑多个文件

#水平打开两个文件,可以进行对比
[root@Centos7 ~]# vim -o host.sh host1.sh

#垂直打开两个文件,可以进行对比
[root@Centos7 ~]# vim -O host.sh host1.sh

#ctrl+ww 文件间切换

2)相同文件之间差异对比

#diff  文件对比(用的不多)    
[root@Centos7 ~]# diff host.sh host1.sh 
13,14c13
< ajksdhalsd
< qwueyqiwe
---
> 

#vimdiff  以vim方式打开两个文件对比,标记不同的内容
[root@Centos7 ~]# vimdiff host.sh host1.sh

3)注意事项

#在编辑文件时报错
Swap file ".host.sh.swp" already exists!

#说明文件已打开,或者错误关闭
只需要删除.swp文件即可
[root@Centos7 ~]# rm -rf .host.sh.swp

你可能感兴趣的:(linux day11 vim详细用法)