vim文本编辑器
什么是vim
vi
和 vim
命令是linux中强大的文本编辑器, 由于Linux系统一切皆文件,而配置一个服务就是在修改其配置文件的参数。
vim
编辑器是运维工程师必须掌握的一个工具, 没有它很多工作都无法完成。
vim
其实是vi
的升级版
为什么要使用vim
vim
是学习linux最重要的命令之一
vim和vi的区别
vim 能高亮显示
vi 不能高亮显示
其他功能一样
vim的三种模式
命令模式
# 光标跳转
gg # 跳转文本行首
G # 跳转文本行末
Ngg # N代表数字 跳转文本第n行
例: 1gg 跳转至第一行
2gg 跳转到第二行
^ # 跳转至行首
$ # 跳转至行末
# 复制粘贴
yy # 复制光标所在位置的一行
Nyy # N代表数字 复制光标所在行及后N行
p # 粘贴复制内容至光标所在下一行(小写)
P # 粘贴复制内容至光标所在上一行(大写)
# 剪切
dd # 删除或者剪切 可以通过p粘贴
Ndd/dNd # 删除/剪切光标所在行及后N行 N代表数字
dG # 删除光标所在行至结尾
x # 删除光标所在字符(小写)
X # 删除光标所在前的一个字符(大写)
# 撤销
u # 撤销上一步操作
r # 替换光标所在字符
R # 持续替换直到按下ESC
ctrl + r # 恢复撤销,回滚
编辑模式
# 进入编辑模式命令模式的快捷键全部失效
i # 在光标前进入编辑模式
I # 进入编辑模式,光标跳转至行首
a # 光标往后退一格,进入编辑模式
A # 进入编辑模式,光标跳转到行末
o # 跳转至光标下一行,进入编辑模式
O # 跳转至光标上一行,进入编辑模式
s # 把光标下的字符删除,并进入编辑模式
S # 删除整行并进入编辑模式
末行模式
:wq # 保存退出
:w # 保存
:q # 退出
:wq! # 强制保存退出
:q! # 强制退出
:w! # 强制保存
:x # 保存退出
shift+zz # 保存退出
:number # 数字!!,跳转到第n行
例 :1 跳转至第一行
:2 跳转至第二行
:3 跳转至第三行
:set nu # 显示行号
:set ai # 自动缩进
:set ic # 不区分大小写
:set list # 显示制表符,显示结尾符号和TAB符号
:set hl # 高亮
:set no命令 # 取消命令
末行模式的查找和替换
/关键字 # 使用/匹配关键字
# 替换
%s/root/xxx/g
s search 查询
g global 全局
% 代替所有行
视图模式
ctrl + v
# 集体注释
ctrl + v
shift + g (G)移动至末行
shift +i (I)光标移至行首进入编辑模式
shift +3 (#)
ESC ESC
#群体取消注释
x
vim环境变量优化
~/.vimrc 个人环境变量(优先级高) /etc/vimrc 全局环境变量
# 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
colorscheme molokai
#语法检查及高亮
syntax on
#设定默认解码
set?fenc=utf-8?
set?fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936
#显示行号
set?number?
#vim使用自动对齐,也就是把当前行的对齐格式应用到下一行
set?autoindent?
#依据上面的对齐格式,智能的选择对齐方式
set?smartindent?
#设置tab键为4个空格
set?tabstop=4?
#设置当行之间交错时使用4个空格
set?shiftwidth=4?
#设置在编辑过程中,于右下角显示光标位置的状态行
set?ruler?
#设置增量搜索,这样的查询比较smart
set?incsearch?
#高亮显示匹配的括号
set?showmatch?
#匹配括号高亮时间(单位为?1/10?s)
set?matchtime=10?
#在搜索的时候忽略大小写
set?ignorecase?
#禁止生成临时
#set?nobackup?
#当前行高亮
set?cursorline?
#支持256色
set?t_Co=256?
#使用molokai颜色模板
#colorscheme molokai
//如果个人vim环境没有配置, 则使用全局vim环境变量配置。
//如果个人vim环境和全局环境变量产生冲突, 优先使用个人vim环境变量。
vim拓展
# 同时编辑两个文件
# 水平分割编辑两个文件
vim -o 1.txt 2.txt
# 垂直分割编辑两个文件
vim -O 1.txt 2.txt
#切换
ctrl +ww
# 对比两个文件
vimdiff file1 file2
# 以光标在第n行进入文件
vim +n 文件
标签:day09,set,跳转,基础,模式,vim,编辑,linux,光标
From: https://blog.51cto.com/u_16000550/6133134