vi a.txt:进入
插入命名
i:进入插入模式,在光标前插入文本
I(shift+i):在本行开始插入文本,行首
a:在光标后附加文本
A(shift+a):在本行行末附加文本
o:在光标下插入新行
O(shift+o):在光标上插入新行
esc:从插入模式回到命令模式(又称底行模式或者编辑模式)
定位命令(在命名模式下输入,即按esc后)
gg:到第一行
G:到最后一行
:set nu:设置行号
:set nonu:取消行号
nG:到第n行
:n:到第n行
保存并退出命令
:w:保存修改
:w new_filename:另存为指定文件
:w>>a.txt:内容追加到a.txt文件中,文件需存在
:wq:保存并退出
shift+zz(ZZ):保存修改并退出
:wq!:强制保存并退出(在文件问只读时,改完以后不让写也不让退出)
:q!:不保存,强制退出
有突发状况,导致窗口退出。修改文件之后,直接删除同名的.swp文件
删除命令
x:删除光标所在处字符,nx删除光标所在处后的n个字符
dd:删除光标所在行,ndd删除n行
:n1:n2d删除指定行的范围(1:3d 删除123这三行)
dG:删除关闭所在行到末尾的内容
D:删除从光标所在处到行尾的
复制和剪切命令
yy、Y:复制当前行
nyy、nY:复制当前行以下n行
dd:剪切当前行
p、P:粘贴在当前光标所在行下或行上
替换和取消命令
r:取代光标所在处字符
R(shift+r):从光标所在处开始替换,按esc结束
u:undo,取消上一步操作
Ctrl+r:redo,返回到undo之前
搜索和替换命令
/string:向后搜索指定字符串
?string:向前搜索指定字符串
n:搜索字符串的下一个出现位置,与搜索顺序相同
N(shift+n):搜索字符串的上一个出现位置,与搜索顺序相反
:%s/old/new/g:全文替换指定字符串
:n1,n2s/old/new/g:在一定范围内替换指定字符串
注意:遇到特殊字符串时如. 写成. *写成* 如果要将字符串转换成*不需要转义
% 指全文
s 指开始
g 指全局替换
使用替换命令添加注释
:%s/^/#/g 在全部内容的行首添加#注释 ^代表行首
:1,10s/^/#/g 在1-10行首添加#注释
vi里面查命令
:which cp!
vi里面写入命令的结果
:r!which cp
i或者o进入插入模式
查看命令
cat:(cat显示全部内容)
cat a.txt
cat -A -n a.txt :-A 显示所有内容,包括隐藏符号如换行符 -n 显示行号
more:显示部分内容
more a.txt 按空格或者f显示下一页,enter显示下一行
head:查看文件前几行(默认10行)
head a.txt
head -20 a.txt 指定查看前20行
head -10 a.txt>>b.txt 将a.txt中的前10行追加到b.txt中
tail:长文件的后几行
tail a.txt
tail -20 a.txt 指定查看最后20行
ln 产生链接文件
ln -s [源文件] [目标文件] 创建软连接,相当与创建快捷方式,可以跨区创建,源文件的路径必须是绝对路径,时间为创建软连接的时间,用rm删除软连接,源文件不会改变
ln -s $PWD/a aa a是目录 aa是软连接的名称
ln [源文件] [目标文件] 创建的是硬链接,相当于深拷贝,不能跨目录,只能对文件,不能对目录,硬链接还有同步更新功能,即a.txt改变了,aa.txt也会有相同的改变,反之亦然
ln a.txt aa.txt