打开文件:
打开文件: vi filename
在第n行打开文件:vi +n filename
在最后一行打开文件:vi + filename
移动光标:
上下左右移动:
光标键 或
右:L
下:J
左:H
上:K
移到行首:0
移到行尾:$
移至某行::n
移到第一行:gg
移到最末行:G
翻页:
翻页键 或
下一页:Ctrl+f
上一页:Ctrl+b
显示行号:
: set nu
关闭行号:
: set nonu
添加:
光标前添加:i
光标后添加:a
行首添加:I
行尾添加:A
向下另起一行添加:o
向上另起一行添加:O
删除:
删除一个字符:x
删除n个字符:nx
删除光标所在位置到行尾的所有字符:D
删除一行:dd
删除多行:ndd
删除光标所在行及以后所有行:dG
删除指定范围的行::<line1>,<line2>d
复制:
复制一行:yy
复制多行:nyy
剪切一行:dd
剪切多行:ndd
粘贴:p , P
搜索:
从上往下找:/pattern
从下往上找:?pattern
下一个:n
上一个:N
设置搜索忽略大小写::set ic
设置搜索严格区分大小写::set noic
替换::范围s/old/new/g
替换一个::s/a/b/
替换一行::s/a/b/g
全文替换::%s/a/b/g
指定行替换::<line1>,<line2>s/a/b/g
撤销:
撤销一步:u
撤销多步:Ctrl+R
关闭文件:
存盘::w
存盘退出::x
不存盘退出::q!
另存为: :w new_file_name
和其他文件命令交互:
将某文件的内容导入::r another_file
将某命令的执行结果导入到文件中::r !command
不退出当前vi,执行命令::!command
自定义快捷方式:
:map ctrl+v+某按键 command1comand2comand3
如添加注释,需要1,移到行首插入#,2,按ESC退出编辑模式,想定义为ctrl+p,则
:map ctrl+v+p I#<ESC>