热门标签 | 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这个文件


推荐阅读
  • Vim怎么批量处理文件将tab变为space? ... [详细]
  • 本文详细介绍如何在Linux系统中配置SSH密钥对,以实现从一台主机到另一台主机的无密码登录。内容涵盖密钥对生成、公钥分发及权限设置等关键步骤。 ... [详细]
  • 配置多VLAN环境下的透明SQUID代理
    本文介绍如何在包含多个VLAN的网络环境中配置SQUID作为透明网关。网络拓扑包括Cisco 3750交换机、PANABIT防火墙和SQUID服务器,所有设备均部署在ESXi虚拟化平台上。 ... [详细]
  • 本文介绍Linux中的Diff命令,该命令用于逐行对比两个文本文件,展示它们之间的差异。通过系统性检查,它能有效标识出文件间所有不同的行,无需事先对文件进行排序。 ... [详细]
  • 深入解析Redis内存对象模型
    本文详细介绍了Redis内存对象模型的关键知识点,包括内存统计、内存分配、数据存储细节及优化策略。通过实际案例和专业分析,帮助读者全面理解Redis内存管理机制。 ... [详细]
  • 本文详细介绍了C语言的起源、发展及其标准化过程,涵盖了从早期的BCPL和B语言到现代C语言的演变,并探讨了其在操作系统和跨平台编程中的重要地位。 ... [详细]
  • 如何恢复闪念胶囊中误删的文件?实用恢复指南
    本文将详细介绍如何在闪念胶囊中恢复误删的文件,帮助用户快速找回丢失的数据。无论是重要文档还是珍贵照片,通过简单的步骤即可轻松恢复。 ... [详细]
  • Linux 文件管理命令详解
    本文详细介绍了 Linux 系统中常用的文件管理命令,包括目录创建与删除操作,帮助用户更好地理解和使用这些命令。 ... [详细]
  • 云计算的优势与应用场景
    本文详细探讨了云计算为企业和个人带来的多种优势,包括成本节约、安全性提升、灵活性增强等。同时介绍了云计算的五大核心特点,并结合实际案例进行分析。 ... [详细]
  • Python第三方库安装的多种途径及注意事项
    本文详细介绍了Python第三方库的几种常见安装方法,包括使用pip命令、集成开发环境(如Anaconda)以及手动文件安装,并提供了每种方法的具体操作步骤和适用场景。 ... [详细]
  • 本文详细介绍了如何通过RPM包在Linux系统(如CentOS)上安装MySQL 5.6。涵盖了检查现有安装、下载和安装RPM包、配置MySQL以及设置远程访问和开机自启动等步骤。 ... [详细]
  • 磁盘健康检查与维护
    在计算机系统运行过程中,硬件或电源故障可能会导致文件系统出现异常。为确保数据完整性和系统稳定性,定期进行磁盘健康检查至关重要。本文将详细介绍如何使用fsck和badblocks工具来检测和修复文件系统及硬盘扇区的潜在问题。 ... [详细]
  • 在成功安装和测试MySQL及Apache之后,接下来的步骤是安装PHP。为了确保安全性和配置的一致性,建议在安装PHP前先停止MySQL和Apache服务,并将MySQL集成到PHP中。 ... [详细]
  • 本文探讨了Java编程的核心要素,特别是其面向对象的特性,并详细介绍了Java虚拟机、类装载器体系结构、Java类文件和Java API等关键技术。这些技术使得Java成为一种功能强大且易于使用的编程语言。 ... [详细]
  • 方法:1 配置数据库basediros.path.abspath(os.path.dirname(__file__))  #获取当前文件的绝对路径appFlask(__name__ ... [详细]
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社区 版权所有