最近在配置LAMP服务器,需要用到vi,所以重新学习整理了一下
2015-08-22 15:54
302 查看
vi [文件名] 若存在该文件,则打开存在文件;若不存在,将新建文件名为[文件名]的文件;
/*命令行模式--直接键入,不是命令行*/
k、j 上下
h、l 左右
^、0 移动到行首
$ 移动到行尾
nG 跳转到第n行
G 跳转到首行
Ctrl+G 显示光标所在位置的行数和列数
w、b 使光标向前或向后跳过一个单词
) 光标移至句尾
( 光标移至句首
} 光标移至段落最后一个字母
{ 光标移至段落第一个字母
n+ 光标下移n行
n- 光标上移n行
n$ 光标移至第n行尾
H 光标移至屏幕顶行
M 光标移至屏幕中间行
L 光标移至屏幕最后行
i 在光标的前插入字符(i=insert)--进入编辑模式
a 在光标的后插入字符(a=append)--进入编辑模式
o 在当前行之下新开一行--进入编辑模式
r 将光标处的字符替换成另一个字符(r=replace)
cw 改变光标所在处的`单词`(c=change)
dw 删除光标所在处的`单词`(d=delete)
x 删除光标所在处的一个字符
d$ 删除光标所在处到行尾的所有字符
d0 删除光标所在处到行首的所有字符
d 删除整行
Ctrl+F 向前翻一页
Ctrl+B 向后翻一页
Ctrl+U 向前翻半页
Ctrl+D 向后翻半页
[n,m]y 复制第n行到第m行
yy 复制第n行,若无行数,只复制当前行
yw 复制第n个单词,若无行数,只复制光标到单词尾
y$ 复制光标到行尾
y^ 复制光标到行首
文件在编辑中会产生一个临时文件,文件以.开头并以.swp结尾。在异常退出的时候,系统在下一次编辑的时候会提示命令处理。
O 只读打开
E 继续编辑,不恢复.swp文件
R 恢复文件,继续编辑
Q 退出vi
D 删除.swp文件
A 中止
vi -i [文件名] 恢复.swp文件
ndd 删除当前行及其后n-1行
p 在光标所在位置粘贴
/*命令行模式--直接输入,不是命令行*/
/*命令行模式--命令行输入*/
:q! 强制退出
:w 保存
:[m,n]w[文件名] [将编辑的文件的m至n行]另存为
:wq 保存并退出
:wq! 保存并强制退出
:set nu 显示行号
:set nonu 取消行号
:nu 显示当前行号
:/string 从光标所在处向前查找相应的字符串的命令
:?string 从光标所在处向后查找相应的字符串的命令(借助"?"
一般出现在最后理解)
n 在同一方向重复上一次搜索命令
N 在反方向上重复上一次搜索命令
:u 取消最近一次操作
:U 取消所有操作
Ctrl+R 恢复对u命令的操作
(s-substitute代替;g-global)
:s/old/new 用new替换首次出现的old
:s/old/new/g 用new替换行中出现的所有old
:[n,m]s/old/new/g 用new替换第n行到第m行中出现的old
:%s/old/new/g 用new替换所有的old
:s/old/new/c 用new替换首次出现的old,用户需要确认。
:r [文件名] 在打开的文件file中光标所在处读入[文件名]
:nr [文件名] 在打开的文件file中光标所在处读入[文件名]从第n行开始的内容
:n1,n2 co n3 将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2 m n3 将n1行到n2行之间的内容移至到第n3行下
:n1,n2 d 将n1行到n2行之间的内容删除
/*命令行模式--命令行输入*/
/*编辑模式*/
Esc 退出编辑模式
PageUp 向前翻页
PageDown 向后翻页
Delete 删除光标位置的字符
/*编辑模式*/
有整理得不对的地方希望大家指正。
/*命令行模式--直接键入,不是命令行*/
k、j 上下
h、l 左右
^、0 移动到行首
$ 移动到行尾
nG 跳转到第n行
G 跳转到首行
Ctrl+G 显示光标所在位置的行数和列数
w、b 使光标向前或向后跳过一个单词
) 光标移至句尾
( 光标移至句首
} 光标移至段落最后一个字母
{ 光标移至段落第一个字母
n+ 光标下移n行
n- 光标上移n行
n$ 光标移至第n行尾
H 光标移至屏幕顶行
M 光标移至屏幕中间行
L 光标移至屏幕最后行
i 在光标的前插入字符(i=insert)--进入编辑模式
a 在光标的后插入字符(a=append)--进入编辑模式
o 在当前行之下新开一行--进入编辑模式
r 将光标处的字符替换成另一个字符(r=replace)
cw 改变光标所在处的`单词`(c=change)
dw 删除光标所在处的`单词`(d=delete)
x 删除光标所在处的一个字符
d$ 删除光标所在处到行尾的所有字符
d0 删除光标所在处到行首的所有字符
d 删除整行
Ctrl+F 向前翻一页
Ctrl+B 向后翻一页
Ctrl+U 向前翻半页
Ctrl+D 向后翻半页
[n,m]y 复制第n行到第m行
yy 复制第n行,若无行数,只复制当前行
yw 复制第n个单词,若无行数,只复制光标到单词尾
y$ 复制光标到行尾
y^ 复制光标到行首
文件在编辑中会产生一个临时文件,文件以.开头并以.swp结尾。在异常退出的时候,系统在下一次编辑的时候会提示命令处理。
O 只读打开
E 继续编辑,不恢复.swp文件
R 恢复文件,继续编辑
Q 退出vi
D 删除.swp文件
A 中止
vi -i [文件名] 恢复.swp文件
ndd 删除当前行及其后n-1行
p 在光标所在位置粘贴
/*命令行模式--直接输入,不是命令行*/
/*命令行模式--命令行输入*/
:q! 强制退出
:w 保存
:[m,n]w[文件名] [将编辑的文件的m至n行]另存为
:wq 保存并退出
:wq! 保存并强制退出
:set nu 显示行号
:set nonu 取消行号
:nu 显示当前行号
:/string 从光标所在处向前查找相应的字符串的命令
:?string 从光标所在处向后查找相应的字符串的命令(借助"?"
一般出现在最后理解)
n 在同一方向重复上一次搜索命令
N 在反方向上重复上一次搜索命令
:u 取消最近一次操作
:U 取消所有操作
Ctrl+R 恢复对u命令的操作
(s-substitute代替;g-global)
:s/old/new 用new替换首次出现的old
:s/old/new/g 用new替换行中出现的所有old
:[n,m]s/old/new/g 用new替换第n行到第m行中出现的old
:%s/old/new/g 用new替换所有的old
:s/old/new/c 用new替换首次出现的old,用户需要确认。
:r [文件名] 在打开的文件file中光标所在处读入[文件名]
:nr [文件名] 在打开的文件file中光标所在处读入[文件名]从第n行开始的内容
:n1,n2 co n3 将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2 m n3 将n1行到n2行之间的内容移至到第n3行下
:n1,n2 d 将n1行到n2行之间的内容删除
/*命令行模式--命令行输入*/
/*编辑模式*/
Esc 退出编辑模式
PageUp 向前翻页
PageDown 向后翻页
Delete 删除光标位置的字符
/*编辑模式*/
有整理得不对的地方希望大家指正。
相关文章推荐
- Chrome浏览器设置小窗口视频
- Python中的 getopt模块
- Mac安装Pcre
- 去哪网实习总结:JAVA读XML文件节点信息(JavaWeb)
- lightoj1104( 条件概率)
- linux下的shell操作mysql
- c语言运算符优先级
- 【LeetCode】(120)Triangle (Medium)
- 代理(delegate)
- UI自定义视图
- IOS中动画的实现:以及视图的移动、缩放和旋转
- 百度二面
- 修改VS2015快捷键
- TextView中使用链接打开Activity
- 按键扫描程序
- POJ 1088 滑雪 (记忆化搜索)
- leetcode:Wildcard Matching
- 集训第六周 M题
- 阿里题目总结——阿里巴巴2015研发工程师B笔试卷
- Ubuntu12.04 安装adb