vim 删除一行_Day40:vim入门

vim

vim 是linux系统自带的文本编辑器。Vim是一个类似于Vi的、功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。Vim普遍被推崇为类Vi编辑器中最好的一个,事实上真正的劲敌来自Emacs的不同变体

  1. vim模式

vim 一打开,就会进入所谓的普通模式(Normal),在这个模式下,大家输入的所有内容都会被 vim 解析成相应的指令并执行。

如果要输入内容,必须键入字母 i ,将 vim 切换到所谓的插入模式(Insert)。在插入模式下,大家就可以像在其他普通编辑器下那样输入文字了。输入完毕,需要通过按Esc返回普通模式。

vim 还有一个可视模式(Visual),『可视』是直译,翻译成『选中』比较合适。可视模式跟普通编辑器的选中有点像,都会选中一片文字,然后可以对选中的文字做一些操作。vim 的可视模式分三种,分别是:

  • 普通选中(使用 小写 v 开始普通选中)
  • 按行选中(使用 大写 V 开始行选中)
  • 按列选中(使用 ctrl+v 开始列选中)

选中之后可以执行其他操作,返回普通模式直接按Esc。

普通模式到底有什么用呢?

  • 在普通模式下,大家可以快速地查找、定位、修改和删除代码
  • 在插入模式下,相应的操作(查找、定位、修改和删除代码)会低效不少,主要用来写代码(要注意和修改代码的区别)。

作为程序员都有体会,大家大部分时间是在查代码、看代码、改代码,写代码的比重并不大。为了提升整体的工作效率,vim 将普通模式作为默认模式。代价则是大家需要在输入文本的时候需要额外切换一次模式。

c7bc01c8472ce51308a5cd31d2c02113.png
  1. vim光标
  • vim 使用 H(左)、J(下)、K(上)、L(右) 四个键来控制光标向左下上右四个方向移动,一次移动一行或者一列。
1717bd83a1894b131a98d0373340c8ba.png
  • vim 还针对行内移动提供了一些快捷键,加快移动速度。如 ^ 表示行首、$ 表示移到到行尾。
  • vim 还支持按单词移动,如 w 表示跳到下一个单词的开头,e 表示跳到下一个单词的结尾。
  • vim 行内移动的大杀器则是行内查找。大家可以通过键入 fa 跳转到当前行的下一个 a 上。这个 f 表示向前(行尾)查找;如果要向后查找,则需使用 F。注意,行内查找仅支持单个字母。
  • 向上翻页用 ctrl+b,向下用 ctrl+f。跳到文件的第一行用 gg,最后一行用 G。

vim 还有很多移动快捷键,相对不那么常用,这里不多介绍,初学者不用纠结。

如果只看 hjkl,大家不觉得 vim 在光标移动上有什么优势,甚至会认为还不如使用上下左右键方便。但再看行内查找,大家应该就会体会到普通模式(Normal)的威力。普通模式并不普通!

  1. 查找

在命令模式下输入以下命令进行查找,光标会跳转到第一个匹配的字符,此时按下n 代表重复前一个搜索动作;按下N代表反向重复前一个搜索动作 。

08ff804d3854bd5cf1fc427dbdf27695.png

3.1 Vim查找支持正则表达式

  • 例如/vim$匹配行尾的"vim"。需要查找特殊字符需要转义,例如/vim$匹配"vim$"。注意:查找回车应当用,而替换为回车应当用(相当于)。

3.2 vim查找默认是大小写敏感查找

  • 在查找模式中加入c表示大小写不敏感查找,C表示大小写敏感查找。例如:/fooc 会查找所有foo、FOO、fOOD等

3.3 查找光标所在单词

在命令模式(普通模式)下按下:

  • *:匹配当前光标所在的单词(这里的单词是指前后为空白字符或者点号,例如当前为foo, 可以匹配foo bar中的foo,但不可匹配foobar中的foo。这在查找函数名、变量名时非常有用),并将光标移动到下一个单词
  • #:匹配当前光标所在的单词,并将光标移动到上一个单词
  • g*:查找光标所在单词的字符序列,每次出现前后字符无要求,例如当前为foo,那么foo bar和foobar中的foo均可被匹配到。
  1. 替换

命令模式(普通模式)下替换的语法如下::{作用范围}s/{目标}/{替换}/{替换标志}

  • % :代表在全文范围内查找并替换
  • g:所有的出现都会被替换
  • i:i表示大小写不敏感
  • I:I表示大小写敏感
444c34b6863d0c0a99bbb8de4214104a.png
  1. 删除修改

初学者一般会先切换到插入模式,在用退格键删除已有内容,再输新内容。这不但效率低下,不会挫伤初学者的积极性。在命令模式(普通模式)下,正解如下。

  • 删除当前行用 dd
  • 删除光标所在的字母用 x
  • 修改用 r + 新字母
  • 也可以选中之后按 x 或者 d 删除整片文字
  • 大家选中之后还可以按 c,vim 会删除选中内容,并切换到插入模式,大家可以继续输入新内容。
  • vim 还有一个所谓的替换模式(Replace),通过 R 开启,开启后光标所在的内容会被新输入的内容替换。结束用 Esc。
f216a98404bbfd3c5b7e76c79768d52a.png
  1. 复制粘贴
  • 复制当前行用 yy
  • 也可以选中内容后按 y 复制。
  • 粘贴使用 p
  • 如果之前是整行复制,按 p 会将复制的内容粘贴到当前行的下一行,粘贴到上一行用 P。
  • 如果之前是选中复制,按 p 会将复制内容粘贴到光标当前位置的后面,粘贴到前面用 P。
3d332c4c8db582b117d1348dc1b7b6ee.png
  1. 撤销保存
  • 撤销上次操作用 u,反撤销用 ctrl+r。
  • 保存退出都要在命令模式(普通模式)下完成。保存用 :w path/to.txt,退出用 :q。如果是编辑已经存在的文件可以直接用 :wq 退出。

参考:https://baijiahao.baidu.com/s?id=1651375178973468485&wfr=spider&for=pc

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值