当前位置: 首页 > news >正文

VI编辑常用命令

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

普通模式进入插入模式:
i/a
从光标所在位置之前、之后开始插入
I/A
光标移到行首、行尾,然后开始插入
o/O
光标所在行的下、上新插入一行,然后开始插入 


普通模式下光标移动:

光标移动到文件最后一行的行首
nG
相对文件的开始的第n行开始,如:1G光标移到第1行开始
$
光标移到当前所在行的行尾
n$
光标移到第n行的行尾 
0
光标移到当前所在行的行首
n+/n-
光标上移或下移n行
^
光标移到所在行的第一个非空格字符
h/j/k/l
光标左、下、上、右移动
H
光标移至当前屏幕左上角
M
光标移至当前屏幕显示文件的中间行行首
L
光标移到当前屏幕最后一行行首
           

        
普通模式下替换删除:
rc
用字符c替换光标所指向的当前字符
nrc
用字符c替换从光标开始的n个字符
x
删除光标所在处的字符
nx
删除从光标所在位置开始向右的n个字符
dw
删除一个单词。若光标处在某个词中间,则从光标所在位置开始删除至词尾并连同空格
ndw
删除n个指定的单词
db
删除光标所在位置之前的一个词
ndb
删除光标所在位置之前的n个词
dd / D
删除光标所在整行
ndd
删除光标所在行及之后的n-1行
dG
删除光标所在位置至文件尾的所有内容
d1G
删除光标所在位置到文件首的所有内容
d$
删除光标所在位置到当前行的末尾的内容
d0
删除光标所在位置到当前行的开始的内容 


普通模式下的复制和粘贴:
yy
将当前行的内容复制到缓冲区
nyy 
将当前开始的n行内容复制到缓冲区
yG
将当前光标所在位置到最后一行的所有内容复制到缓冲区
y1G
将当前光标所在位置到第1行的所有内容复制到缓冲区
y$
将当前光标所在位置到当前行的末尾的内容复制到缓冲区
y0
将当前光标所在位置到当前行的开始的内容复制到缓冲区
p
将缓冲区的内容写出到光标所在位置



普通模式下的搜索字符串:
/str
向右移动到有str的地方
?str
往左移动到有str的地方
n
向相同的方向移动到下一个有str的地方
N
向相反的方向移动到下一个有str的地方


普通模式下的撤销和重复:
u
撤销前一次操作


普通模式下退出Vi:
ZZ
存盘退出
ZQ
不保存退出


命令模式下的跳行:
:n 直接输入要移动到的行号即可实现跳行


命令模式下搜索和替换字符串:
:/str/
从当前光标开始往右移动到有str的地方
:?str? 
从当前光标开始往左移动到有str的地方
:/str/w file
将包含有str的行写到文件file中
:/str1/,/str2/w file
将从str1开始到str2结束的内容写入file文件中
:s/str1/str2/
将找到的第1个str1替换为str2
:s/str1/str2/g
将找到的所有str1替换为str2
:n1, n2s/str1/str2/g
将从n1~n2行找到的所有str1替换为str2
:1,.s/str1/str2/g
将第1行到当前位置的所有str1替换为str2
:.,$s/str1/str2/g
将从当前位置到结尾的所有str1替换为str2
:1,$s/str1/str2/gc
 将从第1行到最后一行的所有str1替换为str2,并在替换前询问


  
命令模式下文本复制、移动、删除:
:n1,n2 co n3
把从n1开始到n2为止的所有行的内容复制到n3行的后面
:n1,n2 m n3
把从n1开始到n2为止的所有行的内容移动到n3行的后面
:d
 删除当前行
:nd
删除从当前所开始的n行
:n1,n2 d
删除从n1开始到n2为止的所有行的内容
:.,$d 
删除从当前行到结尾的所有内容
:/str1/,/str2/d
删除从str1开始到str2为止的所有内容
   


命令模式下的文件相关命令:
:w 将当前编辑的内容存盘
:w file 将当前编辑的内容写到file文件中
:n1,n2w file 将从n1开始到n2结束的行写入到file中
:nw file 将第n行写入到file中
:1,.w file 将从第1行到当前光标位置的所有内容写入到file中
:.,$w file 将从当前光标位置到文件结尾的所有内容写入到file中
:r file 找开另一个文件file
:e file 新建file文件
:f file 把当前文件改名为file



命令模式下执行shell命令:
:!Cmd 运行Shell命令Cmd
:n1,n2 w ! Cmd 将n1~n2行的内容作为Cmd命令的输入,如果不指定,则将整个文件作为命令的输入
:r ! Cmd 将命令运行结果写入当前行位置



命令模式下退出Vi
:q 退出Vi
:wq 退出保存Vi
:q! 不保存退出Vi
    


命令模式下设置Vi环境  
:set autoindent 缩进每一行,使之与前一行相同。
:set noautoindent 取消缩进
:set number 在编辑文件时显示行号
:set nonumber 不显示行号
:set ruler 在屏幕底部显示光标所在的行、列位置
:set noruler 不显示光标所在行、列位置
:set tabstop=value 设置显示制表符空格字符个数
:set wrapmargin=value 设置显示器的右页边。当输入进入所设置的页边时,编辑器自动回车换行
:set  显示设置的所有环境选项
:set all  显示所有可以设置的环境选项
    




















转载于:https://my.oschina.net/jasonli0102/blog/551715

相关文章:

  • Redux系列x:源码分析
  • 12.28作业
  • 微信开发学习路线
  • ceph集群配置注意事项
  • AngularJs 父子级Controller传递数据
  • httpd.conf
  • 在linux下配置javaWeb项目.sh部署脚本
  • 初始化httpclient的几种方式
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • PDU的编码--SMS编码
  • jQuery网页版五子棋小游戏源码下载
  • Java Script 第五节课 Java Script的强制转换。
  • pywinauto 自动化框架调研
  • 微信公众账号 token 验证失败 解决办法
  • 简单的并发架构设计
  • Git同步原始仓库到Fork仓库中
  • gulp 教程
  • HTML-表单
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • SQLServer插入数据
  • vue-cli3搭建项目
  • 给github项目添加CI badge
  • 给Prometheus造假数据的方法
  • 给初学者:JavaScript 中数组操作注意点
  • 工作中总结前端开发流程--vue项目
  • 关于字符编码你应该知道的事情
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 如何设计一个微型分布式架构?
  • 使用common-codec进行md5加密
  • 与 ConTeXt MkIV 官方文档的接驳
  • ​比特币大跌的 2 个原因
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • # 数据结构
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (6)添加vue-cookie
  • (javascript)再说document.body.scrollTop的使用问题
  • (LeetCode C++)盛最多水的容器
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (安卓)跳转应用市场APP详情页的方式
  • (二)丶RabbitMQ的六大核心
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (十)c52学习之旅-定时器实验
  • (十一)手动添加用户和文件的特殊权限
  • (十一)图像的罗伯特梯度锐化
  • (学习日记)2024.01.09
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • (转)linux自定义开机启动服务和chkconfig使用方法
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • (轉貼) 資訊相關科系畢業的學生,未來會是什麼樣子?(Misc)
  • ***监测系统的构建(chkrootkit )
  • .NET HttpWebRequest、WebClient、HttpClient
  • .net 提取注释生成API文档 帮助文档