1. 概述

  1. 标准模式下, 简单操作

    1. 移动
    2. 删除
    3. 复制粘贴
  2. 收益
    1. 熟练后, 编辑文本基本不需要鼠标操作了
  3. 思路
    1. 只讲最基本的, 避免初学时的混淆
    2. 把基本操作归类了, 方便理解

2. 准备

  1. 一篇篇幅较长的文档

    1. 推荐 /etc/profile
    2. 退出时不保存即可
  2. 模式
    1. 标准模式
  3. <num>
    1. 表示参数是 数字
    2. 最好是 标准键盘区 的数字
  4. 案件说明
    1. ,

      1. a, b 表示先按 a, 再按 b, 当然间隔不要太长
    2. +
      1. a + b 表示 同时按 a 和 b

2. 操作

1. 移动

1. 左右移动

  1. 概述

    1. 在一行内做 左右移动
  2. 基本移动

    1. 概述

      1. 左右移动
      2. 操作一次, 光标移动 一个单位
    2. 操作

      1. 左移: h
      2. 右移: l
    3. 疑问

      1. 我一次移动一个, 会不会有点慢啊
      2. 有更好的办法吗?
  3. 进阶移动

    1. 概述

      1. 一次左右移动多个单位
    2. 方式

      1. 以 单词 为单位的移动
      2. 以 长度 为单位的移动
      3. 直接跳转到 行首 或者 行尾
      4. 这些名字都好别扭, 啥时候能有个简单好记的名字
    3. 以 单词 为单位的移动

      1. 操作

        1. 左移, 定位到单词首字母: b
        2. 右移, 定位到单词首字母: w
        3. 定位到当前单词的尾字母: e
      2. 之前觉得没啥用, 现在发现真是的是一个不错的技能
      3. 这个操作, 会自动换到别的行
    4. 以 长度 为单位的移动

      1. 操作

        1. 左移 <num> 个字符: <num>, h
        2. 右移 <num> 个字符: <num>, l
    5. 直接跳转到 行首 或者 行尾

      1. 操作

        1. 跳转到行首: shift + 6;

          1. 也就是: ^
          2. 这里的行首, 指的是第一个 非空 字符
        2. 还是跳转到 行首: 0
          1. 这里的行首, 指的是 第一个字符, 包括了 空格 以及 tab
        3. 跳转到行尾: shift + 4
          1. 也就是: $
        4. 这些操作, 熟悉正则的同学基本没啥问题
    6. 行内查找

      1. 操作

        1. 向右查找

          1. f,
          2. 如果有 多个匹配字符, 按 ; 跳转到 下一个
        2. 向前查找
          1. F,
          2. 如果有 多个匹配字符, 按 ; 跳转到 上一个
  4. 疑问

    1. 我只能左右动不能上下动

      1. 这个编辑起文本来, 不也很麻烦?

2. 上下移动

  1. 概述

    1. 上下移动文本
  2. 基本移动

    1. 概述

      1. 上下移动, 一次只移动 一行
    2. 操作

      1. 上移: k
      2. 下移: j
    3. 疑问

      1. 一次动一行, 还不如鼠标或者滚动条呢

        1. 别急, 你能想到的, VIM 的作者, 也能想到
  3. 进阶移动

    1. 概述

      1. 上下移动多行
    2. 方式

      1. 以 行数 为单位移动
      2. 直接跳转文件开头结尾
      3. 移动到 指定行
      4. 跳转屏幕内行首行尾
      5. 其他跳转
      6. 名字我也没想好, 感觉不太好记
    3. 以 行数 为单位

      1. 操作

        1. 上移<num>行: <num>, k
        2. 下移<num>行: <num>, j
      2. 怎么样, 这个思路, 是不是似曾相识
    4. 直接跳转文件开头结尾

      1. 操作

        1. 跳转到开头: g, g

          1. 你没看错, 就是 gg 思密达
        2. 跳转到结尾: shift + g
          1. 也就是 G
    5. 跳转到指定行

      1. 准备

        1. 打开行指示器

          # 进入 命令模式
          : set nu
        2. 操作

          1. 跳转到 行号为<num> 的行: <num> , g
    6. 跳转到屏幕内 行首 或者 行尾

      1. 操作

        1. 跳转到屏幕内行首: shift + h

          1. 也就是 H
        2. 跳转到屏幕内行尾: shift + l

          2. 也就是 L
        3. h 和 l 你俩不是管左右的吗, 怎么叛变了呢?
    7. 其他跳转

      1. 概述

        1. 其他跳转我理解的不够深入, 就不细说
        2. 大体上也是翻屏幕的
        3. 自己用用, 就能找到感觉
      2. 操作

        1. 上移一段距离: ctrl + u

          1. u = up
        2. 上移一屏: ctrl + b
          1. b = back
        3. 下移一段距离: ctrl + d
          1. d = down
        4. 下移一屏: ctrl + f
          1. f = forward
    8. 编辑位置移动

    9. 概述

      1. 在编辑过的位置之间跳转
    10. 场景

      1. 偶尔需要返回 上次编辑 的位置查看
      2. 看完了, 可能需要返回 继续编辑
    11. 操作

      1. 返回上次编辑的位置: ctrl + o

      2. 返回下次编辑的位置: ctrl + i

2. 删除

1. 行内删除

  1. 概述

    1. 行内的删除
  2. 基本删除

    1. 概述

      1. 删除的基本操作
      2. 一次只删除一个字符
    2. 操作

      1. 删除光标右边字符: x
      2. 删除光标左边字符: shift + x
        1. 也就是 X
    3. 疑问

      1. 我一次删一个, 删完得删到什么时候

        1. 还不如鼠标来的快
        2. 没关系, 还有补充道
  3. 进阶删除

    1. 概述

      1. 删除多个字符
      2. 删除光标到 行首 / 行尾
    2. 删除多个字符

      1. 操作

        1. 删除光标右边 <num> 个字符: <num>, x
        2. 删除光标左边 <num> 个字符: <num>, shift + x
    3. 删除到 行首 / 行尾

      1. 操作

        1. 删除到行首: x, shift + 6

          1. 也就是: x, ^
        2. 删除到行尾: x, shift + 4
          1. 也就是: x, $
    4. 疑问

      1. 我一次删一行, 也得删好久

        1. 别急, 后面还有解决方案

2. 行级删除

  1. 概述

    1. 行级别的删除
    2. 所有的删除, 都包含光标所在的行
  2. 删除一行

    1. 操作

      1. 删除一行, 且 不留空行: d, d

        1. 后面的行, 会顶上来
      2. 删除一行, 且 留下空行: shift + d
        1. 也就是 D
        2. 原行位置, 会变为 空行
  3. 删除多行

    1. 操作

      1. 删除光标下的 <num> 行: d, <num>, d

        1. 总共删除 num 行
    2. 其他操作

      1. 这块操作有能力的同学可以掌握
      2. 个人感觉有点别扭, 但是能用
        1. 删除 光标所在行 上方<num>行 : d, <num>, k
        2. 删除 光标所在行 下方<num>行 : d, <num>, j
        3. 总共删除了 num + 1 行
          1. 相当于确定了删除的边界
          2. 并且连边界也一并删除
          3. 而且删除后, 也不留空行
  4. 删除到 开头 / 结尾

    1. 操作

      1. 删除到开头: d, g, g
      2. 删除到结尾: d, shift + g

3. 复制粘贴

  1. 概述

    1. 复制与粘贴的操作

1. 复制

  1. 概述

    1. 这里只讲整行的复制
    2. 复制行内内容, 需要到 v 模式下
    3. 复制内容包含光标所在行
  2. 复制一行

    1. 操作

      1. 复制一行: y, y
  3. 复制多行

    1. 操作

      1. 复制 <num> 行: y, <num>, y

2. 粘贴

  1. 概述

    1. 有复制, 怎么能没粘贴
  2. 粘贴一次

    1. 操作

      1. 粘贴到 光标所在行下: p
      2. 粘贴到 光标所在行上: shift + p
        1. 也就是 P
  3. 粘贴多次

    1. 操作

      1. 粘贴到 光标所在行下 <num> 次: <num>, p
      2. 粘贴到 光标所在行上 <num> 次: <num>, shift + p

3. 剪切

  1. 概述

    1. 什么, 你问我如果想剪切怎么办

      1. 这确实是个值得思考的问题
      2. 其实, 之前的 d,d 删除命令, 就是剪切
      3. 删除的内容, 可以通过粘贴命令, 粘贴出来
      4. 和 y 命令公用剪贴板

3. 其他

  1. 感觉写的东西虽然乱, 但其实不少

    1. 思路没有之前清晰
  2. 本来还想写 标准模式 到 插入模式 的切换
    1. 感觉写的有点多, 就算了
    2. 这个内容, 以后再讲吧
    3. 这些东西讲完, VIM 的常规操作, 就剩个 命令模式搜索, 以及 多窗口应用 了
      1. 再讲自己就没东西了
      2. 得补

VIM - 标准模式下简单操作的更多相关文章

  1. vim介绍/vim颜色显示和移动光标/ vim一般模式下移动光标/ vim一般模式下复制、剪切和粘贴

    5.1 vim介绍 5.2 vim颜色显示和移动光标 5.3 vim一般模式下移动光标 5.4 vim一般模式下复制.剪切和粘贴 vim   是vi的升级版本 vim 带有颜色显示 安装vim : y ...

  2. vim normal 模式下L键

    vim normal 模式下L键总是到一行的最后一个字符,而不是最后一个字符的下一个字符,这样进入插入模式,就还得往右移动一下,就很费劲? 怎么解决 更新: a键进入插入即可

  3. 【HTML&CSS】 第二章:标准模式下的页面与怪异模式下的页面区别

    盒模型 前面提到,盒模型(box mode)是浏览器 Quirks Mode 和 Standards Mode 的主要区别. 描述 对于“盒模型”一词并没有明确的文档定义,它是开发人员描述 CSS 中 ...

  4. Linux中在vim/vi模式下对文本的查找和替换

    查找: 1.vim  filename  进入一般模式下 2.查找和替换方法 /word    向下查找word 的字符串  例如  /chengtingting   向下查找字符chengtingt ...

  5. Linux centosVMware Vim介绍、vim颜色显示和移动光标、vim一般模式下移动光标、vim一般模式下复制、剪切和粘贴

    一.Vim介绍 vim 是一款功能强大的文本编辑器,是vi的升级版,带有颜色显示, 默认有三种模式:一般模式, 命令模式,  编辑模式   安装Vim [root@davery ~]# vim /et ...

  6. 解决Vim插入模式下backspace按键无法删除字符的问题【转】

    本文转载自:https://blog.csdn.net/zxy987872674/article/details/64124959 最近使用某个服务器编辑文件时,快捷键i进入插入模式后,下方不出现in ...

  7. Python+Selenium学习笔记5 - python官网的tutorial - 交互模式下的操作

    这篇笔记主要是从Python官网的Tutorial上截取下来,再加上个人理解 1. 在交互模式下,下划线'_'还可以表示上一步的计算结果 2.引号转义问题. 从下图总结的规律是,字符串里的引号如果和引 ...

  8. linux命令-vim一般模式下光标移动

    vim 有一般模式,编辑模式,命令模式 ///////一般模式可以光标移动,复制,剪切,粘贴     编辑模式可以输入想输入的字符       命令模式刚才用到了set nu //////////// ...

  9. MySQL学习笔记(cmd模式下的操作)

    1.登入MySQL 1.1 登入MySQL 1.1.1命令如下: C:\Users\zjw>mysql -hlocalhost -uroot -p Enter password: ****** ...

随机推荐

  1. December 29th 2016 Week 53rd Thursday

    The true nobility is in being superior to your previous self. 真正的高贵在于超越过去的自己. It is really difficult ...

  2. December 16th 2016 Week 51st Friday

    My life is a straight line, turning only for you. 我的人生是一条直线,转弯只是为了你. My life is a straight line that ...

  3. Mac下的mongodb安装

    mac下的mongodb安装主要有两种方式,一是手工安装,需在官网下载源文件,二是通过homebrew,至于homebrew不做介绍.既然是Mac系统下,我认为直接通过homebrew安装最好,省事还 ...

  4. angularJs购物金额实例操作

    <!DOCTYPE HTML> <html ng-app> <head> <meta http-equiv="Content-Type" ...

  5. LeetCode: Word Ladder II [127]

    [题目] Given two words (start and end), and a dictionary, find all shortest transformation sequence(s) ...

  6. [LuoguP2158][SDOI2008]仪仗队

    [LuoguP2158][SDOI2008]仪仗队(Link) 现在你有一个\(N \times N\)的矩阵,求你站在\((1,1)\)点能看到的点的总数. 很简洁的题面. 这道题看起来很难,但是稍 ...

  7. HDU 1301Jungle Roads(最小生成树 prim,输入比较特殊)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1301 Jungle Roads Time Limit: 2000/1000 MS (Java/Oth ...

  8. CC2540 低功耗串口, POWER_SAVING 模式 下 串口 0 的使用

    低功耗 模式 下 使用 串口 ,  因为 PM2 或者 PM3 状态下  32M晶振 是不工作 的,根据手册得知没有32M晶振, 串口是不能工作的,但是可以使用 外部中断,因此,我把  串口的接收引脚 ...

  9. alibaba之Nacos

    本文为转载文章 原文链接:https://windmt.com/2018/11/09/intro-to-spring-cloud-alibaba-nacos/ 上个月最后一天的凌晨,Spring Cl ...

  10. oracle安装程序异常终止解决办法

    安装Oracle时总是会报程序异常终止,摸不着头脑,作为初学者一下就乱了分寸   工具/原料   Oracle软件包 win764位 方法/步骤     右击Oracle安装图标setup.exe,选 ...