热门标签 | 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


推荐阅读
  • 深入解析零拷贝技术(Zerocopy)及其应用优势
    零拷贝技术(Zero-copy)是Netty框架中的一个关键特性,其核心在于减少数据在操作系统内核与用户空间之间的传输次数。通过避免不必要的内存复制操作,零拷贝显著提高了数据传输的效率和性能。本文将深入探讨零拷贝的工作原理及其在实际应用中的优势,包括降低CPU负载、减少内存带宽消耗以及提高系统吞吐量等方面。 ... [详细]
  • voc生成xml 代码
    目录 lxmlwindows安装 读取示例 可视化 生成示例 上面是代码,下面有调用示例 api调用代码,其实只有几行:这个生成代码也很简 ... [详细]
  • 深入解析:Android开发进阶之Vim编辑器基础操作与应用
    本文深入探讨了Android开发中使用Vim编辑器的基础操作与应用。通过详细解析Vim的基本命令、配置文件和常用插件,帮助开发者提高代码编写效率。文章还介绍了如何在Android开发环境中高效利用Vim,包括集成开发环境(IDE)的配置和常见问题的解决方法。适合初学者和有经验的开发者参考。 ... [详细]
  • 如果你对 IntelliJ IDEA 的界面不太熟悉,可能会对如何在 Android Studio 中执行一些常见任务感到困惑。本文提供了多种开发技巧和实用窍门,帮助开发者更好地利用 Android Studio 的强大功能,包括界面导航、代码调试和项目管理等方面,使开发过程更加高效顺畅。 ... [详细]
  • 在Laravel 5.5中,若应用启用了CSRF防护机制,在用户长时间未操作后再提交表单时,系统会显示一个预设的错误页面。本文介绍如何自定义该错误页面的视图内容,以确保其风格与您的应用程序界面保持一致,同时提供更友好的用户体验。 ... [详细]
  • 如何在Windows 10操作系统中将用户账户名称更改为英文
    最近,一位朋友在安装Anaconda虚拟环境并尝试安装Python包时遇到了频繁的错误。经过详细分析,发现问题是由于Anaconda安装路径包含了中文字符,导致某些软件无法正确识别路径。为了解决这一问题,建议将用户账户名称更改为英文,从而避免路径中出现非英文字符,确保软件的正常运行。此外,更改账户名称后,还需更新系统中的相关配置文件,以确保所有应用程序都能正确识别新的路径。 ... [详细]
  • 在2020年8月19日的深度分析中,我们探讨了HTML标签中同时存在`a`标签的`href`和`onclick`属性时的触发顺序问题。此外,还讨论了如何在一个自适应高度的父级`div`中,使两个子`div`中的一个固定高度为300px,另一个自动填充剩余空间的方法。最后,文章详细介绍了JavaScript异步加载的多种实现方式,包括但不限于`async`、`defer`属性以及动态脚本插入技术,为开发者提供了丰富的技术参考。 ... [详细]
  • 掌握DSP必备的56个核心问题,我已经将其收藏以备不时之需! ... [详细]
  • 在对文件或目录执行详细信息列表操作时,会看到一串字符。这串字符以每三个一组的形式出现,分别代表了用户、用户组及其他用户的访问权限。通过深入解析这些权限设置,可以更好地理解和管理系统的安全性与访问控制。 ... [详细]
  • Linux学习精华:程序管理、终端种类与命令帮助获取方法综述 ... [详细]
  • 手机上编写和运行PHP代码的最佳软件推荐 ... [详细]
  • Kali Linux 渗透测试实战指南:第24章 客户端安全威胁分析与防御策略
    客户端安全威胁分析与防御策略主要探讨了终端设备(如计算机、平板电脑和移动设备)在使用互联网时可能面临的各种安全威胁。本章详细介绍了这些设备如何作为信息和服务的提供者或接收者,以及它们在与服务器等其他系统交互过程中可能遇到的安全风险,并提出了有效的防御措施。 ... [详细]
  • 深入解析 org.hibernate.event.spi.EventSource.getFactory() 方法及其应用实例 ... [详细]
  • 内网渗透技术详解:PTH、PTT与PTK在域控环境中的应用及猫盘内网穿透配置
    本文深入探讨了内网渗透技术,特别是PTH、PTT与PTK在域控环境中的应用,并详细介绍了猫盘内网穿透的配置方法。通过这些技术,安全研究人员可以更有效地进行内网渗透测试,解决常见的渗透测试难题。此外,文章还提供了实用的配置示例和操作步骤,帮助读者更好地理解和应用这些技术。 ... [详细]
  • MD5,即消息摘要算法5,是一种广泛应用于确保数据传输完整性的哈希算法。作为计算机领域常用的杂凑算法之一,MD5在多种主流编程语言中均有实现。此外,本文还详细解析了SHA、DES、3DES、AES、RSA和ECC等加密算法的基本原理和应用场景,为读者提供全面的加密技术概览。 ... [详细]
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社区 版权所有