热门标签 | HotTags
当前位置:  开发笔记 > 开发工具 > 正文

vim编辑器常用的命令

1.进入vim编辑器的方式:(进入vim编辑器时,默认的模式是命令模式)在终端输入vi:进入vim编辑器vifilename:进入vim编辑器,新建了一个filename文件,光标定位到文件的第一行vi在工作时,会在当前目录下创...
1. 进入vim编辑器的方式:(进入vim编辑器时,默认的模式是“命令模式”) 在终端输入
vi:进入vim编辑器
vi filename:进入vim编辑器,新建了一个filename文件,光标定位到文件的第一行
vi在工作时,会在当前目录下创建.swp的临时文件,该临时文件也称为交换文件
当vi结束对当前文件编辑且正常退出时,临时文件.swp会被自动删除
当vi结束对当前文件编辑且非正常退出时,临时文件.swp会被残留下来
vi + filename:进入vim编辑器,打开已存在的filename文件,光标定位到文件的最后一行
vi在工作时,会在与被编辑文件相同的目录内创建一个名为.filename.swp的临时文件
当vi结束对当前文件编辑且正常退出时,临时文件.filename.swp会被自动删除
当vi结束对当前文件编辑且非正常退出时,临时文件.filename.swp会被残留下来
vi +# filename:进入vim编辑器,打开已存在的filename文件,光标定位到文件的第#行(#必须用数字代替)
vi -R filename:进入vim编辑器,以只读方式打开已存在的filename文件,被编辑的文件不能回存,但可以另存为
vi -r filename:从vi crash或非正常退出中恢复文件
vi -r .*.swp:从交换文件.*.swp中恢复文件
vi -r:列出当前目录内所有因vi非正常退出而残留的交换文件,以便恢复
vi -L:列出当前目录内所有因vi非正常退出而残留的交换文件,以便恢复
 
2. vi有三种工作方式:命令模式、编辑模式及命令项模式。
命令模式:在这种模式下,可以通过输入vi的命令对文件的内容进行处理(复制、删除、移动等),也可以通过按光标键来移动光标。
编辑模式:在这种模式下,可以在光标处输入内容。
命令项模式:在命令模式下,用户输入冒号后,光标会跳到底行,然后输入命令。
命令模式 --> 输入a、A、i、I、o、O等命令 --> 编辑模式
编辑模式 --> 按ESC键 --> 命令模式
命令模式 --> 输入冒号 --> 命令项模式
3. 退出vi的命令
在命令模式下,输入:
:w 保存文件,不退出vi
:w filename 把vi中的内容保存到不存在的filename文件,不退出vi
:w! filename 把vi中的内容保存到已存在的filename文件,不退出vi
:w>>filename 把vi中的内容追加到filename文件,不退出vi
:n1,n2w filename 把n1行到n2行的内容保存到不存在的filename文件
:n1,n2w! filename 把n1行到n2行的内容保存到已存在的filename文件
:wq 保存文件,退出vi
:x 保存文件,退出vi
:ZZ 保存文件,退出vi
:q 不保存文件,退出vi(若文件已改变,则不能退出)
:q! 不保存文件,退出vi
:ZQ 不保存文件,退出vi
4. 在命令模式下,可以输入以下命令:
(1)光标移动命令
h: 左
l: 右
k: 上
j: 下
向左光标键
向右光标键
向上光标键
向下光标键
(2)插入命令
i:在光标处插入内容
I:在第一行插入内容
a:在光标后插入内容
A:在当前行的尾部插入内容
o:在当前行的下面插入新行
O:在当前行的上面插入新行
(3)删除命令
x:删除光标处的字符
X:删除光标前的一个字符
d0:删除从当前光标所在行的第一个字符到当前光标的前一个字符的一串字符
D:删除从当前光标所在的字符到当前光标所在行的最后一个字符的一串字符
dd:删除光标所在行的所有字符
dw:删除从光标处字符开始的一个单词
例如:a boy girl pig
如果光标在l处,dw后,结果是:a boy girpig
如果光标在l和p之间的空格处,dw后,结果是:a boy girlpig
如果光标在b处,dw后,结果是:a girl pig
#dd:删除从光标所在的行到其后的#-1行(#必须用数字代替)
#x:删除从光标所在的字符开始的#个字符(#必须用数字代替)
:n1,n2 d:删除n1行到n2行的内容
(4)复制命令
:n1,n2 t n3:把n1行到n2行的内容复制到第n3行的下一行
(5)移动命令
:n1,n2 m n3:把n1行到n2行的内容移动到第n3行的下一行
(6)修改/替换命令
r:输入一个字符替换光标处的一个字符
R:从光标处的字符开始替换,后面的字符一个一个被输入的字符覆盖
s:输入一串字符来替换光标处的字符
S:先清除光标所在的行,你可以在当前行输入一串字符
cc:先清除光标所在的行,你可以在当前行输入一串字符
cw:修改一个单词
例如:ab cdef ghijk
光标在d处,输入cw后,结果是:ab cde$ ghijk,
此时若输入pqghd后,结果是:ab cpqghd ghijk
此时若输入p后按ESC键,结果是:ab cp ghijk
C:修改从光标处开始及其该行后面的部分
例如:ab cdef ghijk
光标在d处,输入cw后,结果是:ab cdef ghij$,此时输入pqghd后,结果是:ab cpqghd
(7)光标定位命令
0:定位到光标所在行的行首
$:定位到光标所在行的行末
:#:定位到第#行的行首
:$:定位到最后一行的行首
/exp:向后定位到字符串exp
?exp:向前定位到字符串exp
/^exp:定位到行首为字符串exp的行
/exp$:定位到行末为字符串exp的行
n,m ?/exp:从n行到m行向前搜索字符串exp (此命令有待商榷)
n,m |/exp:从n行到m行向前搜索字符串exp (此命令有待商榷)
(8)搜索替换命令
:s/exp1/exp2/g:将当前行的字符串exp1替换成字符串exp2
:n,m s/exp1/exp2/g:将n行到m行的字符串exp1替换成字符串exp2
:g/exp1/exp2/g:将当前行的字符串exp1替换成字符串exp2
:g/exp1/s//exp2/g:将全文中的字符串exp1替换成字符串exp2
(9)撤销命令
u
(10)缓冲区命令
默认情况下,vi使用无名缓冲区,例如:虽然将文件的某些部分删除了,但仍可以用u命名进行撤销。
yy:将光标所在的行放入无名缓冲区
Y:将光标所在的行放入无名缓冲区
p:将缓冲区中的内容粘贴到光标所在的行的下一行
P:将缓冲区中的内容粘贴到光标所在的行的上一行
"#yy:将光标所在的行放入缓冲区# (#必须用a~z代替)
"#p:将缓冲区#中的内容粘贴到光标所在的行的下一行 (#必须用a~z代替)
"#P:将缓冲区#中的内容粘贴到光标所在的行的上一行 (#必须用a~z代替)
"#d:删除当前行,将当前行的内容放入缓冲区#
(11)其它命令
:set nu:显示行号
:set nonu:取消行号
:n 定位到下一个文件
:N 定位到上一个文件
vi 1.c 2.c 3.c:一次打开3个文件
首先会打开1.c,输入:n命令后,会打开2.c,再输入:n命令后,会打开3.c,
再输入:N命令后,会打开2.c,再输入:N命令后,会打开1.c。
Ctrl+G:显示当前编辑文件的信息
Ctrl+L:刷新屏幕
Ctrl+d:向后翻半屏
Ctrl+u:向前翻半屏
Ctrl+f:向后翻一屏
Ctrl+b:向前翻一屏
 
 
 
作者 aniyo

推荐阅读
  • 本文详细介绍了Vim编辑器的三种主要模式及其常用命令,帮助用户更好地掌握这一强大的文本编辑工具。 ... [详细]
  • 帝国CMS多图上传插件详解及使用指南
    本文介绍了一款用于帝国CMS的多图上传插件,该插件通过Flash技术实现批量图片上传功能,显著提升了多图上传效率。文章详细说明了插件的安装、配置和使用方法。 ... [详细]
  • GIMP 2.99.2 发布:UI 采用 GTK3 实现、原生支持高分屏和 Wayland
    开源项目评选最后一周,手里的5票再不用就没用了https:www.oschina.netprojecttop_cn_2020GIMP2.99.2已发布,同时这也标志着GIMP3.0的到来,其中最显著的变化是从GTK2过渡到GTK3工具包。基于 ... [详细]
  • Unity编辑器插件:NGUI资源引用检测工具
    本文介绍了一款基于NGUI的资源引用检测工具,该工具能够帮助开发者快速查找和管理项目中的资源引用。其功能涵盖Atlas/Sprite、字库、UITexture及组件的引用检测,并提供了替换和修复功能。文末提供源码下载链接。 ... [详细]
  • 通过Web界面管理Linux日志的解决方案
    本指南介绍了一种利用rsyslog、MariaDB和LogAnalyzer搭建集中式日志管理平台的方法,使用户可以通过Web界面查看和分析Linux系统的日志记录。此方案不仅适用于服务器环境,还提供了详细的步骤来确保系统的稳定性和安全性。 ... [详细]
  • 本文介绍了ArcXML配置文件的分类及其在不同服务中的应用,详细解释了地图配置文件的结构和功能,包括其在Image Service、Feature Service以及ArcMap Server中的使用方法。 ... [详细]
  • 如何使用PyCharm及常用配置详解
    对于一枚pycharm工具的使用新手,正确了解这门工具的配置及其使用,在使用过程中遇到的很多问题也可以迎刃而解,文中有非常详细的介绍, ... [详细]
  • SPSS操作指南:双变量相关性分析的详细步骤
    本教程将详细介绍如何使用IBM SPSS Statistics进行双变量相关性分析。通过实例演示,帮助读者理解变量间的关系及其统计意义。 ... [详细]
  • Python处理Word文档的高效技巧
    本文详细介绍了如何使用Python处理Word文档,涵盖从基础操作到高级功能的各种技巧。我们将探讨如何生成文档、定义样式、提取表格数据以及处理超链接和图片等内容。 ... [详细]
  • 如何在CAD查看器中同时打开并对比两张DWG图纸
    本文将详细介绍如何使用专业的CAD查看软件,如迅捷CAD看图,来同时打开和对比两张DWG格式的CAD图纸。无论是在设计审核还是项目管理中,掌握这一技能都能显著提高工作效率。 ... [详细]
  • 编写了几个500行左右代码的程序,但基本上解决问题还是面向过程的思维,如何从问题中抽象出类,形成类的划分和设计,从而用面向对象的思维解决问题?有这方面的入门好书吗?最好是结合几个具体的案例分析的 ... [详细]
  • Qt QTableView 内嵌控件的实现方法
    本文详细介绍了在 Qt QTableView 中嵌入控件的多种方法,包括使用 QItemDelegate、setIndexWidget 和 setIndexWidget 结合布局管理器。每种方法都有其适用场景和优缺点。 ... [详细]
  • Ulysses Mac v29:革新文本编辑与写作体验
    探索Ulysses Mac v29,这款先进的纯文本编辑器为Mac用户带来了全新的写作和编辑环境。它不仅具备简洁直观的界面,还融合了Markdown等标记语言的最佳特性,支持多种格式导出,并提供强大的组织和同步功能。 ... [详细]
  • 解决Windows 10开机频繁自检问题的实用方法
    许多用户在使用Windows 10系统时,经常会遇到开机时自动进行磁盘检查的情况。这不仅影响了开机速度,还可能带来不必要的麻烦。本文将详细介绍如何通过简单的注册表修改来避免每次开机时的磁盘自检,提升系统启动效率。 ... [详细]
  • 本文详细介绍了流编辑器sed中的G、H、g、h命令,探讨了它们的工作原理及应用场景。通过实例解析和图解分析,帮助读者掌握这些高级命令的使用方法。 ... [详细]
author-avatar
平凡洗护店
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有