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. Exchange 2016 CU6 安装后,发生错误 出现意外错误,无法处理您的请求

    公司的Exchange2016环境准备上线了,今天owa打不开了.出现如下图的错误,更多详细信息没有截图,但最关键的一句记下来了. X-OWA-Error Microsoft.Exchange.Dia ...

  2. Linux命令--压缩解压(简化版)

    Linux tar.gz.tar.bz2.zip 等解压缩.压缩命令详解(简化版) Linux 常用的压缩与解压缩命令有:tar.gzip.gunzip.bzip2.bunzip2.compress ...

  3. Chapter 4 Left Outer Join in MapReduce

    4.1 Introdution Consider a company such as Amazon, which has over 200 millions of users and possibly ...

  4. Java 多态(接口)

    有两种意义的多态,一是操作名称的多态,即有多个操作具有相同的名字,但这些操作所接收的消息类型必须不同(方法重载).另一种多态是和继承有关的多态,是指同一个操作被不同类型对象调用时可能产生不同的行为(方 ...

  5. VM安装CentOs7虚拟机后无法上网之解决方法

    最近在研究DC/OS的安装,读了很多安装方法后决定先从docker的安装入手,由于DC/OS的安装必须在CentOs7版本以上,所以就在VM下安装了CentOs7,殊不知安装后并不能上网,于是乎又转到 ...

  6. JavaScript的事件对象中的特殊属性和方法(鼠标,键盘)

    鼠标操作导致的事件对象中的特殊属性和方法 鼠标事件是 Web 上面最常用的一类事件,毕竟鼠标还是最主要的定位设备.那么通过事件对象可以获取到鼠标按钮信息和屏幕坐标获取等 鼠标按钮 只有在主鼠标按钮被单 ...

  7. 自定义控件(视图)2期笔记11:View的滑动冲突之 概述

    1. 引入: 滑动冲突可以说是日常开发中比较常见的一类问题,也是比较让人头疼的一类问题,尤其是在使用第三方框架的时候,两个原本完美的控件,组合在一起之后,忽然发现整个世界都不好了. 那到底是为什么会产 ...

  8. 「bzoj 4025: 二分图」

    题目 显然二分图没有奇环 于是考虑使用并查集维护一下看看是否存在奇环 我们可以考虑加权并查集,维护出\(x\)到\(fa_x\)的实际距离 由于我们只需要考虑奇偶性,于是我们处理出到根的路径异或一下就 ...

  9. Django的视图响应类型

    Django的视图响应类型 一. 视图函数编写原则 视图函数接受HTTP请求并返回响应,可以放在任何地方,可以是任何功能:视图函数可以返回Web文本,页面.重定向.错误.图片等任何内容:视图函数通过H ...

  10. 给trac的ticket添加提交时字段验证

    我们在项目管理中使用了trac系统,并且对于ticket添加了以下自定义字段并且对它们的格式都有一定要求: svn版本号:格式为 r1234.多个版本号之间使用半角逗号隔开.如:r1234,r5678 ...