热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

【转】VI命令详解

一般模式:光标移动h或->光标向左移动一个字符l或<-光标向右移动一个字符k或上方向键光标向上移动一个字符j或下方

一般模式:光标移动

h 或 ->     光标向左移动一个字符
l 或 <-     光标向右移动一个字符
k 或 上方向键    光标向上移动一个字符
j 或 下方向键    光标向下移动一个字符
Ctrl+f     屏幕向前翻动一页
Ctrl+b     屏幕向后翻动一页
Ctrl+d     屏幕向前翻动半页
Ctrl+u     屏幕向后翻动半页
+     光标移动到非空格符的下一列
-     光标移动到非空格符的上一列
0     (数字0)移动到这一行的第一个字符处
$     移动到这一行的最后一个字符处
H     光标移动到这个屏幕最上方的那一行
M     光标移动到这个屏幕中央的那一行
L     光标移动到这个屏幕最下方的那一行
G     移动到这个文件的最后一行
nG    移动到这个文件的第n行。
n     光标向下移动n行

一般模式:查找与替换
 
/str     在光标之后查找一个str字符串。n for next
?str     在光标之前查找一个str字符串。n for next
:n1,n2s/str1/str2/g       在第n1与n2行之间查找str1这个字符串,并将该字符串替换为str2
:%s/str1/str2             全文查找str1这个字符串,并将每行最左边的第一处str1替换为str2
:%s/str1/str2/g          全文查找str1这个字符串,并将每处str1替换为str2
:1,$s/str1/str2/g         从第一行到最后一行查找str1字符串,并将该字符串替换为str2
:1,$s/str1/str2/gc        从第一行到最后一行查找str1字符串,并将该字符串替换为str2,且在替换前显示提示符让用户确认(confirm)
 
 
一般模式:删除、复制与粘贴
 
x,X    x为向后删除一个字符,X为向前删除一个字符
nx     向后删除n个字符
dd     删除光标所在的那一整行   
ndd    删除光标所在列的向下n列,例如,2dd则是删除2列
d1G    删除光标所在行到文件首行的所有数据
dG     删除光标所在行到文件尾的所有数据
yy     复制光标所在行
nyy    复制光标所在列的向下n列,例如,2yy则是复制2行
y1G    复制光标所在列到第一列的所有数据
yG     复制光标所在列到最后一列的所有数据
p,P    p为复制的数据粘贴在光标下一行,P为粘贴在光标上一行
J      将光标所在行与下一行的数据连接成一行
u      恢复前一个动作
xp     当前字符与后边的字符互换
ddp    当前行与下一行互换
 

编辑模式:

.             重复上一动作

i,I           插入:在当前光标所在处插入输入的文字,已存在的字符会向后退
a,A           添加:由当前光标所在处的下一个字符开始输入,已存在的字符会向后退
o,O           插入新的一行:从光标所在处的下一行行首开始输入字符
r,R           替换:r会替换光标所指的那一个字符;R会一直替换光标所指的文字,直到按下Esc为止
Esc           退出编辑模式,回到一般模式

 

命令行模式:

:w      将编辑的数据写入硬盘文件中
:w!     若文件属性为只读,强制写入该文件
:e!     重新编辑当前文件(之前的编辑将不会保存)
:q      退出vi
:q!     若曾修改过文件,又不想保存,使用!为强制退出不保存文件
:wq     保存后退出,若为:wq!,则为强制保存后退出
:x      保存后退出,文件若无变化则不写
:w[filename]    将编辑数据保存为另一个文件
:r[filename]    将filename这个文件内容加到光标所在行的后面
:set nu      显示行号
:set nonu    取消显示行号
n1,n2w[filename]   将n1到n2的内容保存为filename这个文件


推荐阅读
  • 深入解析JVM垃圾收集器
    本文基于《深入理解Java虚拟机:JVM高级特性与最佳实践》第二版,详细探讨了JVM中不同类型的垃圾收集器及其工作原理。通过介绍各种垃圾收集器的特性和应用场景,帮助读者更好地理解和优化JVM内存管理。 ... [详细]
  • 如何将人人影视下载的字幕添加到视频中
    许多用户在下载了人人影视提供的字幕后,不清楚如何将其与视频文件结合。本文将详细介绍如何正确地将字幕加载到视频中,确保观看体验更加完整。 ... [详细]
  • PyCharm下载与安装指南
    本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 本文介绍了如何使用 Spring Boot DevTools 实现应用程序在开发过程中自动重启。这一特性显著提高了开发效率,特别是在集成开发环境(IDE)中工作时,能够提供快速的反馈循环。默认情况下,DevTools 会监控类路径上的文件变化,并根据需要触发应用重启。 ... [详细]
  • 三星W799在2011年的表现堪称经典,以其独特的双屏设计和强大的功能引领了双模手机的潮流。本文详细介绍其配置、功能及锁屏设置。 ... [详细]
  • 在API测试中,我们常常需要通过大量不同的数据集(包括正常和异常情况)来验证同一个接口。如果为每种场景单独编写测试用例,不仅繁琐而且效率低下。采用数据驱动的方式可以有效简化这一过程。本文将详细介绍如何利用CSV文件进行数据驱动的API测试。 ... [详细]
  • 本文详细介绍了如何解决Uploadify插件在Internet Explorer(IE)9和10版本中遇到的点击失效及JQuery运行时错误问题。通过修改相关JavaScript代码,确保上传功能在不同浏览器环境中的一致性和稳定性。 ... [详细]
  • 本文将介绍如何使用 Go 语言编写和运行一个简单的“Hello, World!”程序。内容涵盖开发环境配置、代码结构解析及执行步骤。 ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • 本文探讨了Hive中内部表和外部表的区别及其在HDFS上的路径映射,详细解释了两者的创建、加载及删除操作,并提供了查看表详细信息的方法。通过对比这两种表类型,帮助读者理解如何更好地管理和保护数据。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 深入理解Tornado模板系统
    本文详细介绍了Tornado框架中模板系统的使用方法。Tornado自带的轻量级、高效且灵活的模板语言位于tornado.template模块,支持嵌入Python代码片段,帮助开发者快速构建动态网页。 ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
author-avatar
oFoUro_877
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有