vim编辑器学习

2019.12.12

正值双12的季节,实验楼也推出了“30天100楼”的挑战活动,只要在参与活动之后,30天内上升到100楼,便可以获得奖品。这瞬间让我有了学习的动力(奖品什么的其实不是我的最终目标,只是给我个理由每天去学习新东西罢了),而昨天我也终于学完了vim的使用,体会到了vim作为编辑器的优秀之处。 这里记录的不会是全部用法和快捷键,而是我自己比较常用的。


zackary

DAY 3:

项目3: vim编辑器学习


1. 声明

项目来自于实验楼文章的作用仅用于自己记录学习,并且该项目在实验楼免费。如若侵权,请及时联系我删除。


2. vim编辑器

1. vim的常用模式

  • 普通模式(Normal): 不同于大部分的编辑器, vim的默认模式是普通模式,在这个模式下,你能做到绝大部分的操作,而vim也是因为这个模式而在众多编辑器中如此出类拔萃的。
  • 插入模式(Insert): 绝大多数其他编辑器的默认模式,在vim中通过按下 i(小写)进入,但也有其他操作会进入插入模式。
  • 命令模式(Command): 通过键入 : (英文冒号)来进入,可以运行键入的命令。
  • 可视化模式(Visual): 据我所知,用在选择文本时。通过键入v(小写)进入,同时也有其他方法进入。


  • 普通模式(Normal)
    • vim的默认和基本模式,在这个模式下你可以通过纯键盘操作,对文本进行浏览和修改,以及切换到任意其他模式。


      普通模式

  • vim可以在普通模式下通过hjkl这四个键来进行右、下、上、左(一一对应)的游标浮动操作。
    光标移动.gif

  • 对于行或者整篇文章来说,vim也有操作的快捷键。
    1. 键入 $ 可以去到当前行的末尾(相当于end键),键入数字 0 可以去到当前行的开头(相当于home键)。

    2. 与大写字母 G 有关的操作都是与整行有关的,可以与其他命令混合使用,比如删除第一行的 d1G

      • 数字+G:跳转到给定数字的行号,如 2G 则是跳转到第2行,如果没有显示行号, 则需要在普通模式下键入 :set nu 来显示行号。
    • gg1G :跳转到文章首。
    • G : 跳转到文章末。
      行移动.gif

  • 同时在一行内,还可以进行其他快速的移动。
    1. 对单词进行操作:
      • 跳转到下一个单词的首字母w (小写)键跳转,而 W (大写)表示长跳转,如 non-for-all 被认为是一个单词。
      • 跳转到下一个单词的末字母e (小写)键跳转,而 E (大写)表示长跳转,如 non-for-all 被认为是一个单词。
      • 跳转到上一个单词的首字母b (小写)键跳转,而 B (大写)表示长跳转,如 non-for-all 被认为是一个单词。
        单词移动.gif

  • 在普通模式下,vim具有十分方便的删除文本功能。

    1. 行操作

      • 删除整行:使用命令 dd ,便可以删除光标所在当前行(实则是剪切)。
      • 删除多行: 使用命令 数字 + dd ,如 3dd ,表示删除包括当前行的向下3行。
      • 删除当前行至文末 : dG
      • 删除当前行至文首(向上删除)d1G
    2. 删除单个或多个字母

      • 删除单个字母:使用命令 x (小写)即可以删除单个字母。
      • 删除整个单词:使用命令 dw 即可以删除一整个单词。
        删除.gif
  • 勘误:向下删除6行的命令是6dd


  • 普通模式下,可以进行复制、粘贴、剪切和替换的功能:
    • 所有与 y 有关的操作都与复制(yank)有关。
    • 所有与 p 有关的操作都与粘贴(paste)有关。
    • 通过使用删除(delete),即与 d有关的操作,实现剪切。
    • r:替换光标所在的字母,你下一个键入的字母将会代替原有的字母。
    • R不断将当前光标(会自动又走到下一个位置)替换成你输入的字母,直到按下Esc
      .:英文句号,重复执行上一个命令*


  • 插入模式(Insert)
    • vim的插入模式主要是编辑,就是我们平时的文本处理时常使用的模式。
    • 进入的方法:
      • i:在 当前光标处 进入编辑模式
      • I :在光标所在的 行首 处进入编辑模式(即光标会位于行首)
      • a:即append,在 当前光标的后一格 进入编辑模式
      • A:在光标所在的 行尾 进入编辑模式
      • o:在当前行的 新建下一行,并进入插入模式
      • O:在当前行的 新建上一行,并进入插入模式


  • 命令模式(Command)
    • vim的命令模式赋予了vim更丰富的使用场景,通过键入:命令来进入命令模式并执行命令。但我会使用到的大约只有以下几点
      • :new [文件名(可选)]在当前的窗口创建一个新的文本 ,如果无文件名,则创建无名文本。
      • :b跳到上一个文本(有限制,不能在第一个文本使用)
      • :b数字跳到指定顺序的文本,例如b2
      • :n跳到下一个文本(有限制,不能在最后一个文本使用)
      • :w保存文本内容
      • :w 文件名另存为给出的文件名的文件
      • :q退出
      • :wq保存并退出
      • :命令!:后面有感叹号,强制执行命令
      • :ls:列出缓冲区内的文件
      • :sp 文件名在水平方向分出一部分屏幕来打开一个文件,并去编辑新打开的文件
      • :vsp 文件名在竖直方向分出一部分屏幕来打开一个文件,并去编辑新打开的文件
      • :!外部命令可以在vim中使用linux命令,比如:!cat /etc/passwd


  • 可视化模式(Visual)
    • 可视化模式一般用于选择文本时使用,我一般只用到以下三个。
      • v:直接进入可视化模式,通过hjkl方向键来选择文本。
      • shift+v选择当前一整行
      • ctrl+v选择一整块文本,但是它有“木桶效应”,选择的块必须是长方形,所以它的“长”只能是选中的行中最短的那个。
        可视化.gif


总结:

大一的时候我的其中一个大牛舍友就开始使用vim了,而我之前总觉得vim要记这么多的快捷键很难用。但其实经过坚持使用一段时间后,发现除了还是有一点小鸡肋之外,还是一款超级强大的编辑器,可以提高我们的码字速率的。而且如果配置得足够好,用于做编程的IDE是完全足够的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. 关于Vim vim是我最喜欢的编辑器,也是linux下第二强大的编辑器。 虽然emacs是公认的世界第一,我...
    Dyworldhua阅读 5,292评论 0 2
  • 自我总结篇: 对文件的操作技巧: vim文件一个有三种状态:命令(浏览/输入命令转变末行模式),文本(添加/编辑/...
    小知大知阅读 4,181评论 0 0
  • vim 选择文本,删除,复制,粘贴 文本的选择,对于编辑器来说,是很基本的东西,也经常被用到,总结如下: v 从...
    壹首簡單的歌阅读 4,334评论 0 7
  • 在命令状态下对当前行用== (连按=两次), 或对多行用n==(n是自然数)表示自动缩进从当前行起的下面n行。你可...
    三十儿阅读 3,089评论 0 1
  • vim 选择文本,删除,复制,粘贴 文本的选择,对于编辑器来说,是很基本的东西,也经常被用到,总结如下: v 从光...
    MiracleJQ阅读 3,828评论 0 0