vi 常用命令
2015-05-29 14:50
141 查看
:[range]s/pattern/string/[c,e,g,i]
range 指的是范围,1,7 指从第一行至第七行,1,$ 指从第一行至最后一行,也 就是整篇文章,也可以 % 代表。还记得吗? % 是目前编辑的文章,# 是前一次编辑的文章
:s/old/new/g 替换整行的全部匹配
:%s/fuck/fork/cgi
g 大概都是要加的,否则只会替换每一行的第一个符合字符串。可以合起来用,如 cgi,不分 大小写,整行替换,替换前要询问是否替换
:%s/$/;/gi
每行末尾添加;分号
:s/old/new/ 替换当前行第一个 old 为 new
:s/old/new/g 替换当前行所有 old 为 new
:n,$s/old/new/ 替换第 n 行开始到最后一行中每一行的第一个 old 为 new
:n,$s/old/new/g 替换第 n 行开始到最后一行中每一行所有 old 为 new
:1,$s/old/new/g 替换第1 行开始到最后一行中每一行所有 old 为 new
:.,$s/old/new/g 替换当前行开始到最后一行中每一行所有 old 为 new
:q 如本文有修改而没存盘,会警告,且无法离开。(quit)
:q! 舍弃所有修改,强迫离开。
:e! 放弃文档修
:wq 存档后离开。纵使档案未曾修改也是会再存一次档。
:x 也是存盘后离开,但如果档案没有修改,则不会做存盘的动作。
ZZ 和 :x 完全一样,随您高兴用哪一个。
:w 檔名 另存他檔。不加档名就是写入原档
shift+v 多行选中 (块操作):
ctrl+v 列选择(列编辑) shift+i xxx ,然后 esc esc 两下按列插入xxx
y :复制
p:黏贴
:set nu :显示行号
V:选中字符所在行被选中
v:光标经过字符被选中
ctrl+v
列编辑
I:行首
A:行尾
gg:文本头行首
G:文本尾部行
nG: 到文件第n行。 6gg 或者 6G //跳转第6行
:n<cr> 移动到第n行。 :$<cr> 移动到最后一行。
w: 前移一个单词,光标停在下一个单词开头;
b: 后移一个单词,光标停在上一个单词开头;
^:行首
$:行尾
o:当前行下一行追加
O:当前行上一行追加
J:下一行节结至本行
u:撤销 undo
ctrl+r:恢复撤销 redo
y^ 复制当前光标到行首
y$ 复制当前光标到行尾
0y$复制当前行头到行尾
d$(D):删除至行尾
d0或者d^:删除至行首
d1G:删除当前行到第一行
dnG: 删除当前行到第n行
dG:删除当前行至文档尾部
yy(Y):复制一行
P:黏贴上一行
p:黏贴下一行
shift+v:可视化模式,选定行 ,然后J 合并一行
/ :搜索 n:向下寻找 N:反向寻找
range 指的是范围,1,7 指从第一行至第七行,1,$ 指从第一行至最后一行,也 就是整篇文章,也可以 % 代表。还记得吗? % 是目前编辑的文章,# 是前一次编辑的文章
:s/old/new/g 替换整行的全部匹配
:%s/fuck/fork/cgi
g 大概都是要加的,否则只会替换每一行的第一个符合字符串。可以合起来用,如 cgi,不分 大小写,整行替换,替换前要询问是否替换
:%s/$/;/gi
每行末尾添加;分号
:s/old/new/ 替换当前行第一个 old 为 new
:s/old/new/g 替换当前行所有 old 为 new
:n,$s/old/new/ 替换第 n 行开始到最后一行中每一行的第一个 old 为 new
:n,$s/old/new/g 替换第 n 行开始到最后一行中每一行所有 old 为 new
:1,$s/old/new/g 替换第1 行开始到最后一行中每一行所有 old 为 new
:.,$s/old/new/g 替换当前行开始到最后一行中每一行所有 old 为 new
:q 如本文有修改而没存盘,会警告,且无法离开。(quit)
:q! 舍弃所有修改,强迫离开。
:e! 放弃文档修
:wq 存档后离开。纵使档案未曾修改也是会再存一次档。
:x 也是存盘后离开,但如果档案没有修改,则不会做存盘的动作。
ZZ 和 :x 完全一样,随您高兴用哪一个。
:w 檔名 另存他檔。不加档名就是写入原档
shift+v 多行选中 (块操作):
ctrl+v 列选择(列编辑) shift+i xxx ,然后 esc esc 两下按列插入xxx
y :复制
p:黏贴
:set nu :显示行号
V:选中字符所在行被选中
v:光标经过字符被选中
ctrl+v
列编辑
I:行首
A:行尾
gg:文本头行首
G:文本尾部行
nG: 到文件第n行。 6gg 或者 6G //跳转第6行
:n<cr> 移动到第n行。 :$<cr> 移动到最后一行。
w: 前移一个单词,光标停在下一个单词开头;
b: 后移一个单词,光标停在上一个单词开头;
^:行首
$:行尾
o:当前行下一行追加
O:当前行上一行追加
J:下一行节结至本行
u:撤销 undo
ctrl+r:恢复撤销 redo
y^ 复制当前光标到行首
y$ 复制当前光标到行尾
0y$复制当前行头到行尾
d$(D):删除至行尾
d0或者d^:删除至行首
d1G:删除当前行到第一行
dnG: 删除当前行到第n行
dG:删除当前行至文档尾部
yy(Y):复制一行
P:黏贴上一行
p:黏贴下一行
shift+v:可视化模式,选定行 ,然后J 合并一行
/ :搜索 n:向下寻找 N:反向寻找
相关文章推荐
- android关于onActivityResult提前调用的问题
- Theos使用
- 【STL源码剖析读书笔记】自己实现list之MyList
- Code First 数据注释
- 【STL源码剖析读书笔记】自己实现list之MyList
- Unix网络编程学习笔记之第5章 TCP客户端/服务器程序示例
- Java下利用Jackson进行JSON解析和序列化
- 生拉硬套设计模式(一),关于装饰者模式在Android项目中的运用。
- 一些午后负能量 看完真是豁然开朗
- Unite 2015 大会总结
- [150529]国内最火的五款HTML5前端开发框架
- Code First 数据注释--InverseProperty 和 ForeignKey
- SharePoint 2013 页面中window/document.onload/ready 事件不能触发的解决方案
- C++智能指针分类及使用
- datepicker 获取日期
- linux内核的操作命令
- 【PAT 乙级(Basic Level)】A+B和C
- popupWindow焦点问题以及实现根据输入内容筛选列表功能
- JavaScript-JavaScript 语句\
- ZjDroid--脱壳神器介绍