热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

VIM编辑器的日常使用

vim是著名的命令行编辑器vi的升级版,在原有的基础上上增加了一些特性进去,支持语法、关键字高亮、缩进等。VIM的几种模式1.命令模式​在此模式下可以快速执行,文本的复制、粘贴、删除、替

vim是著名的命令行编辑器vi的升级版,在原有的基础上上增加了一些特性进去,支持语法、关键字高亮、缩进等。

VIM的几种模式

1.命令模式

​ 在此模式下可以快速执行,文本的复制、粘贴、删除、替换等工作;默认打开文件是命令模式。

2.编辑模式

​ 普通模式下按i I a A o O r R键可进入编辑模式,左下角显示INSERT字样表示已进入编辑模式,此时可以像使用图形文本编辑器一样去使用vim

3.末行模式

​ 主要用于保存文本或退出vim编辑器

​ 命令模式可以用:[shift+;]直接进入末行模式,编辑模式进入需先按ESC键退出编辑模式,然后输入:才能进入末行模式。
4.视图模式(可视块模式)

​ 可视化选中内容,然后可以执行命令模式的所有操作。有两种或可视模式,可是块模式和可视行模式。

可视块模式:

在命令模式进入可直接按ctrl+v,在编辑模式进入需要先按ESC退出编辑模式然后再ctrl+v

可视行模式:

在命令模式进入可直接按shift+v,在编辑模式进入需要先按ESC退出编辑模式然后再shift+v

命令模式的一些常用快捷键

快捷键 作用
h
j
k
l
gg 首行
[number] gg number行
G 尾行
yy 复制当前行
[number] yy 复制当前光标及其后的number行
p 粘贴
P 粘贴到光标上面
dd 快速删除当前行
[number] dd 删除number指定行
d g 清空
D 删除光标及光标之后的内容
u 撤销更改
x 删除当前光标后的一位
X 删除当前光标前的一位
ctrl+f 下翻页
ctrl+b 上翻页
$ 行尾
^ 行首
r 替换光标字符
R 一直替换光标位置同样的内容,直到按下ESC

编辑模式

快捷键 作用
i 直接进进编辑模式
I 在本行的头部进入编辑模式
a 在当前光标后一位进入光标模式
A 从当前行的行尾插入并进入编辑模式
o 从光标当前行的行尾插入新行并进入编辑模式
O 在当前光标行行首插入新行并进入编辑模式

注: 若打开文件时指定vim +[number] filename的话,则打开文件即可跳转到number指定的行 。

末行模式(:)

命令 行为
r [PATH] 导入PATH指定文件的内容
num r [PATH] 将PATH指定文件的内容导入到num行
w 写入文件
w! 强制写入
w [PATH] 写入PATH指定的路径文件(另存为...)
num1,num2 w [PATH] 指定行另存为
q 退出VIM
q! 强制退出但不保存
wq 写入并退出
wq! 强制写入并退出
x 先保存,再退出
X 加密文档
shift+zz 保存并退出
[number] 跳转到number行
/[str] 搜索str指定的内容,n按搜索内容一次向后查找,N向前
num1,num2s#str1#str2# 替换num区间内的str1为str2,只替换行里第一个出现的str1
num1,num2s#str1#str2#g 替换num区间内的所有str1为str2
%s#str1#str2#g 替换全局内的所有str1为str2
%s#str1#str2#gc 全局替换,交互式
nohl 禁止高亮(搜索后,关键字会一直保持高亮,可以用此命令关闭)
设置VIM的环境变量

命令模式,临时生效

变量 作用
set nu 开行号
set nonu 关行号
set ic 忽略大小写
set noic 检查大小写
set list 显示制表符(^,$^I等)
set nolist 不显示制表符
set ai 开自动缩进
set noai 关闭自动缩进

可将变量存入配置文件,/etc/vimrc影响全局(未存在个人配置时,默认),用户目录的.vimrc文件内的变量仅对当前用户生效!如果存在,会影响默认全局变量对当前用户的默认配置!因为用户目录下的这个自定义的配置比全局配置优先级较高

视图模式(V模式、可视块模式)

可搭配命令模式的快捷键执行块操作
快捷键 行为
ctrl+v 选中区间行或区块,up``down``left``righth\j\k\l移动光标区域
shift+i 进编辑模式插入指定内容,按ESC键就替换了选中的内容
shift+v 按行选择内容,选择区间行,可执行复制y删除d

其它特性

1.同时打开多个文件
vim -o file1 file2                          #水平式,同时打开两个文件

shuiping.jpg

vim -o file1 file2                          #垂直式,同时打开两个文件

ctrl+ww可在窗口间切换

2.对比文件,比diff命令更直观
vimdiff file1 file2                     #以vim方式打开比对,高亮显示不同之处

vimdiff.png


推荐阅读
  • 本文介绍了如何使用python从列表中删除所有的零,并将结果以列表形式输出,同时提供了示例格式。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • 006_Redis的List数据类型
    1.List类型是一个链表结构的集合,主要功能有push,pop,获取元素等。List类型是一个双端链表的结构,我们可以通过相关操作进行集合的头部或者尾部添加删除元素,List的设 ... [详细]
  • 本文讨论了Kotlin中扩展函数的一些惯用用法以及其合理性。作者认为在某些情况下,定义扩展函数没有意义,但官方的编码约定支持这种方式。文章还介绍了在类之外定义扩展函数的具体用法,并讨论了避免使用扩展函数的边缘情况。作者提出了对于扩展函数的合理性的质疑,并给出了自己的反驳。最后,文章强调了在编写Kotlin代码时可以自由地使用扩展函数的重要性。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • Day2列表、字典、集合操作详解
    本文详细介绍了列表、字典、集合的操作方法,包括定义列表、访问列表元素、字符串操作、字典操作、集合操作、文件操作、字符编码与转码等内容。内容详实,适合初学者参考。 ... [详细]
  • 本文详细介绍了git常用命令及其操作方法,包括查看、添加、提交、删除、找回等操作,以及如何重置修改文件、抛弃工作区修改、将工作文件提交到本地暂存区、从版本库中删除文件等。同时还介绍了如何从暂存区恢复到工作文件、恢复最近一次提交过的状态,以及如何合并多个操作等。 ... [详细]
  • macOS Big Sur全新设计大版本更新,10+个值得关注的新功能
    本文介绍了Apple发布的新一代操作系统macOS Big Sur,该系统采用全新的界面设计,包括图标、应用界面、程序坞和菜单栏等方面的变化。新系统还增加了通知中心、桌面小组件、强化的Safari浏览器以及隐私保护等多项功能。文章指出,macOS Big Sur的设计与iPadOS越来越接近,结合了去年iPadOS对鼠标的完善等功能。 ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
  • (九)Docker常用安装
    一、总体步骤1、搜索镜像2、拉取镜像3、查看镜像4、启动镜像5、停止镜像6、移除镜像二、安装tomcat1、dockerhub上面查找tomcat镜像 dockersearchto ... [详细]
  • 进入配置文件目录:[rootlinuxidcresin-4.0.]#cdusrlocalresinconf查看都有哪些配置文件:[rootlinuxid ... [详细]
  • linux qt打开常用文件格式,设置Linux Qt文件默认打开方式为QtCreator
    Linux自定义文件打开方式也可参照文本抱歉,本文前段时间写的ubuntu下的Qt工程文件默认打开方式是不好用的,因为其他的文本文件也会受到影响,强迫症患者,每次打开Qt工程都是先 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
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社区 版权所有