vim是vi的升级版本
1.vim的基本模式
- 命令模式(一般模式)
- 输入模式(编辑模式)
- 末行模式(命令行模式)
命令模式进入输入模式方法:
- a
- A
- i 光标所在字符前输入
- I 光标所在行行首输入
- o
- O
- s 删除光标所在字符后输入
- S
Tips:最常使用的为ai o三个键
- HOME键 行首
- END键 行尾
命令模式
- yy复制
- p粘贴(当前行下一行)
- P粘贴(当前行的上一行)
50yy向下复制50行 - dd剪切 / 删除
100dd向下剪切100行 - ^
- $
- d^
- d$
- y^复制当前字符到行首(不包含当前字符)
- y$ 复制当前字符到行尾(包含当前字符)
- 35G
- gg
- G
- dgg
- dG
- u
- ctrl+r
- w下一个单词的首字符
dw yw
J 合并行
末行模式
- shfit + :进入末行模式
- :w
- :q
- :wq
- :w! 强制保存
- :q! 强制退出
- :wq! 强制保存退出
- :w /tmp/cc.txt 另存
- :1,3w /tmp/new.txt 存的是1–3行
- :e /root/aa.txt 打开一个文件
- :e!
- :X
显示行号:set nu
:set nonu
显示空格或者制表符:set list
:set nolist
文件中所有的制表符都设置为16个空格长度:set tabstop=16
只更改设置之后的制表符长度:set softtabstop=16
自动缩进:set autoindent
:set noautoindent
搜索忽略大小写:set ignorecase smartcase
Tips: 永久生效的方法还是得修改配置文件
操作:vim /etc/vimrc
在文件末尾添加 set nu 等等(修改配置文件时尽量在整个文件的末尾,便于以后查错和修改)
查找
/关键字
n 下一个 N 上一个
?关键字
n 上一个 N 下一个
替换
通用格式为:s///
:s/ab/xx/
替换当前行第一个匹配字符串:s/ab/xx/g
替换当前行所有匹配字符串:%s/ab/xx/g
替换所有行中所有匹配字符串:%s/ab/xx/gc
交互式替换所有行中所有匹配字符串
s 替换 g 全局 % 所有行 c交互式:3,5s/ab/xx/gc
3到5行
2.vim其他模式
可视化模式
在命令模式下按v
左下角会出现
此时可以移动光标进行批量操作
选中操作内容 y 复制 d删除
可视化块模式
在命令模式下按ctrl+v
ctrl+v选中–>shift+i---->输入#----->ESC
3.多文件操作
vim aa.txt cc.txt tt.txt
-
:next
下一个文件 -
:prev
上一个文件 -
:last
最后一个文件 -
:first
第一个文件
ctrl+^切换到上个文件:wqa
ctrl+w+w
横向排序
vim -O aa.txt cc.txt tt.txt
竖向排列
vim -o aa.txt cc.txt tt.txt
4.格式转换
由于Linux下的换行符和Windows下不同(Linux为 \n,Windows为 \r\n),所以需要转换一下格式才能在Windows下正常显示。这里我们安装一个unix2dos包:yum install unix2dos
unix2dos anaconda-ks.cfg