vim的基本模式:
命令模式(一般模式)
输入模式(编辑模式)
末行模式(命令行模式)
命令模式进入输入模式方法:
a 当前字符后输入
A 当前行行尾输入
i 当前字符前输入
I 当前行行首输入
o 当前行下一行输入
O 当前行上一行输入
s 删除当前字符后输入
S 删除当前行后输入
撤销:
命令模式下 u 撤销一步操作
Ctrl+r 重做
命令模式下移动:
HOME键 行首
END键 行尾
^ 行首 $ 行尾
G最后一行
gg 第一行
55G 跳转到55行
dgg 删除当前行到首行(包含当前行)
dG 删除(包含当前行)
命令模式复制粘贴剪切:
yy复制 p粘贴(当前行下一行) P粘贴(当前行的上一行) 50yy
dd剪切 p P 100dd
dd删除
^ 行首 $ 行尾
d^ 删除当前字符到行首(不包含当前字符)
d$ 删除当前字符到行尾(包含当前字符)
y^
y$
末行模式:【 shfit + : 】进入末行模式
:w 保存
:q 退出
:wq 保存退出
:w! 强制保存
:q! 强制退出
:wq! 强制保存退出
:w /tmp/cc.txt 另存
:1,3w /tmp/new.txt 保存到另存1到3行
:e /root/aa.txt 打开一个文件
:e! 重新打开当前文件
:x 保存退出
:X 加密文件
显示行号:
:set nu
:set nonu //不显示行号
显示空格或者制表符:
配置文件尤其重要
:set list
:set nolist
vim文件中所有的制表符都设置为16个空格长度:
:set tabstop=16
只更改设置之后时间点的制表符长度:
:set softtabstop=16
自动缩进:
:set autoindent //开启自动对齐
:set noautoindent
vim搜索忽略大小写:
:set ignorecase smartcase
vim配置文件:
永久开启行号功能
vim /etc/vimrc
写入 set nu
vim查找:
/关键字
n 下一个 N 上一个
?关键字 //从下往上找
n 上一个 N 下一个
J 合并行
Vim替换:
: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行
练习:
1.替换文件中所有的a为 X
:%s/a/X/g
2.删除文件中所有开头的空格
:%s/^ *//
3.删除文件中所有的空格
:%s/ *//g
4.删除空行
:5d
:3,5d
:g/^$/d
5.删除只含有空格或者制表符的行
:g/^\s*$/d
6,在每一行开头家一个#表示注释这些行
:%s/^/#/
7.将文件中所有/换成-
:%s/\//-/g
:%s#/#-#g
8.删除文件中所有的数字
:%s/[0-9]//g
vim其他模式:
可视化模式:v
选中操作内容 y 复制 d删除
可视化块模式:ctrl+v
ctrl+v选中-->shift+i---->输入#----->ESC
Vim多文件操作:
vim aa.txt cc.txt tt.txt
:next 下一个文件
:prev 上一个文件
:last 最后一个
:first 第一个
ctrl+^ 与上一次操作文件切换
:wqa
Vim同时打开三个文件:
vimdiff aa.txt cc.txt tt.txt
ctrl+w+w 切换文件
:wqa
横向排序(无颜色区别)
vim -O aa.txt cc.txt tt.txt
竖向排列
vim -o aa.txt cc.txt tt.txt
linux到windows文件的格式转换
yum install unix2dos
unix2dos anaconda-ks.cfg
file命令
[root@localhost ~]# file test
test: ASCII text
[root@localhost ~]# file a1
a1: empty
[root@localhost ~]# file data
data: data