vi file1 file2 ... 打开或新建多个文件
vi r file 修复最近异常关闭的文件 file
vi +n file 打开文件 file ,将光标定位到文件的第 n 行
保存退出文件
:w
:w newfile 将文件另存为newfile
:n 光标移到第 n 行
G 光标移到文件末行 g光标移动到文件开始
[ctrl-G] 显示文件的总行数、当前行号、列号等信息
/匹配文件中的
/pattern , ?pattern 由前往后、从后往前查找 pattern
0, $ 光标移到当前行首、行尾
n| 光标移到当前行第 n 列
cc 修改当前行
x, X 删除光标所在位置、光标之前的字符,而: 5x 删除 5 个字符
dw 删除光标所在位置的单词,而: 2dw 或 d2w 删除 2 个单词
dd 删除当前行,而: 5dd 或 d5d 删除 5 行
D 删除光标所在位置到行尾的所有内容
> 文件名 文件清空
复制 (yank)
yw 复制单词,而: 3yw 或 y3w 复制 3 个单词
yy 复制当前行,而: 2yy 或 y2y 复制 2 行
拷贝几行到几行
:8,10t14 //拷贝
14,18s/b1/b2/g 这个一行
%14,18s/b1/b2/g 这个一行
粘贴
p ( 小写 ) 将删除、复制的内容插入到光标所在位置之后
:30,60m0 将第 30 行至第 60 行移动到文件头部
:s/pattern/newstr/ 将当前行中第一个匹配 pattern 的字符串替换为 newstr
:s/pattern/newstr/g(g :表示全部,下同 )将当前行中所有匹配 pattern 的字符串替换为 newstr
在指定范围中匹配
:5,26s/pattern/newstr/g 将 526 行中所有匹配 pattern 的字符串替换为 newstr
全局范围中匹配
:%s/pattern/newstr/g 将整个文件中所有匹配 pattern 的字符串替换为 newstr , % 代表所有行 (1,$)
:g/pattern/s/oldstr/new 在整个文件中,将匹配 pattern 的行中的所有 oldstr str/g 替换成 newstr
ctrl -u 查看文件上半屏
ctrl -d 查看文件下半屏
vim 横行和纵向分割
横向分割
vim -o name.c my.h my 先打开几个程序 然后
:tab split a.c gt从前向后切换 gT 从后向前切换
这里一次只能打开一个,不能多次打开,要想多切换几个屏的话
就多执行一下:tab split 文件名
//纵向分割窗口
vim names.cpp
:vsplit main.c 纵向ctrl+w 按两下切换
这个也是一样,想要在加一个切换的话
再输入一边的话就可以啦
:only 保留当前窗口, 其他都去掉
vi r file 修复最近异常关闭的文件 file
vi +n file 打开文件 file ,将光标定位到文件的第 n 行
保存退出文件
:w
:w newfile 将文件另存为newfile
:n 光标移到第 n 行
G 光标移到文件末行 g光标移动到文件开始
[ctrl-G] 显示文件的总行数、当前行号、列号等信息
/匹配文件中的
/pattern , ?pattern 由前往后、从后往前查找 pattern
0, $ 光标移到当前行首、行尾
n| 光标移到当前行第 n 列
cc 修改当前行
x, X 删除光标所在位置、光标之前的字符,而: 5x 删除 5 个字符
dw 删除光标所在位置的单词,而: 2dw 或 d2w 删除 2 个单词
dd 删除当前行,而: 5dd 或 d5d 删除 5 行
D 删除光标所在位置到行尾的所有内容
> 文件名 文件清空
复制 (yank)
yw 复制单词,而: 3yw 或 y3w 复制 3 个单词
yy 复制当前行,而: 2yy 或 y2y 复制 2 行
拷贝几行到几行
:8,10t14 //拷贝
14,18s/b1/b2/g 这个一行
%14,18s/b1/b2/g 这个一行
粘贴
p ( 小写 ) 将删除、复制的内容插入到光标所在位置之后
:30,60m0 将第 30 行至第 60 行移动到文件头部
:s/pattern/newstr/ 将当前行中第一个匹配 pattern 的字符串替换为 newstr
:s/pattern/newstr/g(g :表示全部,下同 )将当前行中所有匹配 pattern 的字符串替换为 newstr
在指定范围中匹配
:5,26s/pattern/newstr/g 将 526 行中所有匹配 pattern 的字符串替换为 newstr
全局范围中匹配
:%s/pattern/newstr/g 将整个文件中所有匹配 pattern 的字符串替换为 newstr , % 代表所有行 (1,$)
:g/pattern/s/oldstr/new 在整个文件中,将匹配 pattern 的行中的所有 oldstr str/g 替换成 newstr
ctrl -u 查看文件上半屏
ctrl -d 查看文件下半屏
vim 横行和纵向分割
横向分割
vim -o name.c my.h my 先打开几个程序 然后
:tab split a.c gt从前向后切换 gT 从后向前切换
这里一次只能打开一个,不能多次打开,要想多切换几个屏的话
就多执行一下:tab split 文件名
//纵向分割窗口
vim names.cpp
:vsplit main.c 纵向ctrl+w 按两下切换
这个也是一样,想要在加一个切换的话
再输入一边的话就可以啦
:only 保留当前窗口, 其他都去掉