你知道吗? Vim 也是一个 IDE

一个1991年正式发布,如今已经快35岁的「高龄」的代码编辑器Vim

vim是一款强大的编辑器,做过Linux c开发的同学应该非常熟悉,java相关的开发人员在Linux修改部署的配置文件等也是经常会使用到vim,本文将vim中常用操作进行整理,供大家装逼使用

本文将围绕以下常用操作进行整理总结,看完你也可以在Linux修改部署配置文件等操作

  • 复制粘贴
  • 添加删除
  • 搜索替换
  • 注释

vim工作模式

基本上 vi/vim 共分为三种模式,命令模式(Command Mode)、输入模式(Insert Mode)和命令行模式(Command-Line Mode)。

命令模式

用户刚刚启动 vi/vim,便进入了命令模式。

此状态下敲击键盘动作会被 Vim 识别为命令,而非输入字符,比如我们此时按下 i,并不会输入一个字符,i 被当作了一个命令。

命令模式常用的几个操作:

  • 切换到输入模式:在光标当前位置开始输入文本--i;在光标下一个位置开始输入文本--a;在当前行的下方插入一个新行--o(小写);在当前行的上方插入一个新行--O(大写) 。
  • 切换到底线命令模式:切换到底线命令模式--:(冒号) 以在最底一行输入命令
  • 剪切(删除)字符: 剪切(删除)当前光标所在处的字符--x;连续向后剪切(删除) n 个字符--nx;剪切(删除)当前光标所在处的前一个字符--X;连续向前剪切(删除) n 个字符--nX
  • 剪切(删除)行:剪切(删除)光标所在行--dd;剪 切光标所在的向下 n 行--ndd
  • 复制行:复制光标所在行--yy
  • 粘贴: 粘贴剪贴板内容到光标下方-- p(小写);粘贴剪贴板内容到光标上方--P(大写)。
  • 撤销:撤销上一次操作--u
  • 重做:重做上一次撤销的操作--Ctrl + r

输入模式

在命令模式下按下 i 就进入了输入模式,使用 Esc 键可以返回到命令模式。

输入模式中常用的几个操作:

  • 切换光标为输入/替换模式,光标将变成竖线/下划线-- Insert键
  • 退出输入模式,切换到命令模式-- ESC 键

底线命令模式

在命令模式下按下 :(英文冒号)就进入了底线命令模式。

输入模式中常用的几个操作:

  • 保存退出:保存文件--:w;退出 Vim 编辑器--:q;保存文件并退出--:wq:x;强制退出Vim编辑器,不保存修改--:q!
  • 显示隐藏行号:显示行号--:set nu;隐藏行号--:set nonu
  • 另存文档:将编辑的数据储存成另一个档案-- :w [filename]
  • 搜索:向光标之下寻找一个名称为 word 的字符串--/word;前一个搜寻的动作--n;『反向』进行前一个搜寻动作--N
  • 替换::n1,n2s/word1/word2/g n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2 ;:1,$s/word1/word2/g :%s/word1/word2/g 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !(常用)

在vim 中批量添加注释

批量注释: Ctrl + v 进入块选择模式,然后移动光标选中你要注释的行,再按大写的 I 进入行首插入模式输入注释符号如 // 或 #,输入完毕之后,按两下 ESC,Vim 会自动将你选中的所有行首都加上注释,保存退出完成注释。

取消注释:

Ctrl + v 进入块选择模式,选中你要删除的行首的注释符号,注意 // 要选中两个,选好之后按 d 即可删除注释,ESC 保存退出。

查看原文

相关推荐
王哲晓1 小时前
Linux通过yum安装Docker
java·linux·docker
gopher95111 小时前
linux驱动开发-中断子系统
linux·运维·驱动开发
码哝小鱼1 小时前
firewalld封禁IP或IP段
linux·网络
鼠鼠龙年发大财1 小时前
【x**3专享】安装SSH、XFTP、XShell、ARM Linux
linux·arm开发·ssh
nfgo1 小时前
快速体验Linux发行版:DistroSea详解与操作指南
linux·ubuntu·centos
Rookie_explorers2 小时前
Linux下go环境安装、环境配置并执行第一个go程序
linux·运维·golang
weixin_424215842 小时前
shell运算实战案例-KFC点餐系统
linux·centos
小黑爱编程3 小时前
【LInux】HTTPS是如何实现安全传输的
linux·安全·https
BeyondESH3 小时前
Linux线程同步—竞态条件和互斥锁(C语言)
linux·服务器·c++
鱼饼6号3 小时前
Prometheus 上手指南
linux·运维·centos·prometheus