Vim 系列笔记一

Vim 简介

什么是VIM ?

  • Vim 是从 Vi 发展出来的一个编辑器,是 Vi 的升级版。而 vi 则是 Unix 、类Unix(Linux)系统中自带的编辑器。

Vim/Vi 的使用

和其它文本编辑器不同,Vim/Vi 分为三种模式:

  • -- NORMAL -- 模式,即:命令模式(Normal mode)
  • -- INSERT -- 模式,即:输入模式(insert mode)
  • 在 -- NORMAL -- 模式下按冒号,进入底线命令模式(Command mode)

只有编辑器处于 -- INSERT -- 模式下,VIM才会表现的像我们平时打开的文档一样,可以随便进行输入、删除的操作,所以对刚接触VIM的新手总是不习惯,但是没关系,为了装逼为了飞,习惯就好。

不同模式之间的快速切换

刚刚启动vim/vi,默认进入的便是 -- NORMAL-- 模式,在此命令模式下,敲击键盘被视为执行一个命令,而不是输入字符或打一个字。

  • 在 -- NORMAL --模式下,进入 --INSERT-- 模式,需要执行命令

    • 按 a 键,表示在当前字母后边追加插入,append
    • 按 i 键,表示在当前字母前面追加插入,insert
    • 按 o 键,表示在当前光标所在行的下一行插入
    • 按 A 键,表示在当前光标所在行的行未尾插入
    • 按 I 键,表示在当前光标所在行的行首部插入
    • 按 O 键,表示在当前光标所在行的上一行插入
  • 按 ESC 回到 --NORMAL-- 模式
    • 在 normal 模式下,按冒号(:)进入 command 底线命令模式(可以执行更多更丰富的命令)

小技巧提示: 在vim中,大多数命令的大小写都是有相反的意思,具体的是什么意思,去体验去实操吧。

值得一提的是,vim 编辑器默认的上下左右移动光标键对应的是K、J、H、L,这样我们不用移动手到键盘右侧去按上下左右而浪费时间了,又据说在发明 vim 的时候上下左右键还未流行起来,所以与众不同。记住是在 --NORMAL-- 模式下使用哦。

总结

还有两个命令需要掌握:

  • 保存,在底线命令模式下输入 :w
  • 退出,在底线命令模式下输入 :q
  • 组合技,在底线命令模式下输入 :wq,表示保存后退出

对于初学者菜鸟,掌握这两个基本的命令就可以开始使用 vim 编辑文档了,话说有很多接触或使用Linux的人,用了好几年也基本就会wq,所以掌握以上技能就可以出新手村去闯荡江湖了。
但是对于一个有理想、有追求,还想人前秀一把操作的我来说,这些远远不够!VIM 探索路上再见!

扩展

还有一种模式是在 -- NORMAL-- 模式下,按 v 命令进入,感兴趣的可以自己先百度了解一下,后续学习笔记再详细介绍:

  • Visual(可视)模式

    • 竖/横分屏:vs(vertical split),:sp(split)
    • 全局替换: % s/foo/bar/g
    • 按 v 进入选择,批量编辑操作
    • 按 V 进入选择行
    • 按 Ctrl + v 进入块状选择

Vim 系列笔记一的更多相关文章

  1. 跟着鸟哥学Linux系列笔记2-第10章VIM学习

    跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 跟着鸟哥学Linux系列笔记1 常用的文本编辑器:Emacs, pico, nano, joe, vim VI ...

  2. 跟着鸟哥学Linux系列笔记3-第11章BASH学习

    跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 跟着鸟哥学Linux系列笔记1 跟着鸟哥学Linux系列笔记2-第10章VIM学习 认识与学习bash 1. ...

  3. Java系列笔记(2) - Java RTTI和反射机制

    目录 前言 传统的RTTI 反射 反射的实现方式 反射的性能 反射与设计模式 前言 并不是所有的Class都能在编译时明确,因此在某些情况下需要在运行时再发现和确定类型信息(比如:基于构建编程,),这 ...

  4. Java系列笔记(4) - JVM监控与调优

    目录 参数设置收集器搭配启动内存分配监控工具和方法调优方法调优实例     光说不练假把式,学习Java GC机制的目的是为了实用,也就是为了在JVM出现问题时分析原因并解决之.通过学习,我觉得JVM ...

  5. Java系列笔记(3) - Java 内存区域和GC机制

    目录 Java垃圾回收概况 Java内存区域 Java对象的访问方式 Java内存分配机制 Java GC机制 垃圾收集器 Java垃圾回收概况 Java GC(Garbage Collection, ...

  6. 跟着鸟哥学Linux系列笔记0-如何解决问题

    跟着鸟哥学Linux系列笔记0-扫盲之概念 在发生问题怎么处理: 1.  在自己的主机.网络数据库上查询How-To或FAQ -Linux 自身的文件数据: /usr/share/doc -CLDP中 ...

  7. 跟着鸟哥学Linux系列笔记1

    跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 装完linux之后,接下来一步就是进行相关命令的学习了 第五章:首次登录与在线求助man page 1. X ...

  8. vim 使用笔记

    vim命令笔记 a 插入 insert 插入 :%!xxd 以16进制方式进行编辑 :%!xxd -r 从16进制还原

  9. Java系列笔记(1) - Java 类加载与初始化

    目录 类加载器 动态加载 链接 初始化 示例 类加载器 在了解Java的机制之前,需要先了解类在JVM(Java虚拟机)中是如何加载的,这对后面理解java其它机制将有重要作用. 每个类编译后产生一个 ...

随机推荐

  1. 修改docker下mysql配置

    1.在/home/smile/docker/mysql/config/目录下增加一个文件 my.cnf # Copyright (c) , Oracle and/or its affiliates. ...

  2. iOS 自定义一对UI表现相反的按钮

    假如有一对按钮[重置][提交],要让他们的默认UI和点击的UI表现刚好相反 [提交]按钮,默认橙色,点击边框是橙色,字体是橙色,背景变白色 [重置]按钮,默认白色橙色,边框是橙色,点击字体是白色,背景 ...

  3. 【机器学习速成宝典】模型篇02线性回归【LR】(Python版)

    目录 什么是线性回归 最小二乘法 一元线性回归 多元线性回归 什么是规范化 Python代码(sklearn库) 什么是线性回归(Linear regression) 引例 假设某地区租房价格只与房屋 ...

  4. SPRING AOC、AOP 概念详解

    AOC 依赖注入:就是通过容器来控制业务对象之间的依赖关系.也就是把需要的业务对象都放入容器中,需要注入时,通过反射技术来动态获取指定的对象,装配到当前使用对象.代替了原始的 new 来实现对象的实例 ...

  5. 浏览器端-W3School:HTML DOM cells 集合

    ylbtech-浏览器端-W3School:HTML DOM cells 集合 1.返回顶部 1. HTML DOM cells 集合 HTML DOM Table 对象 定义和用法 cells 集合 ...

  6. python - property 属性函数

    Python中有一个被称为属性函数(property)的小概念,它可以做一些有用的事情.在这篇文章中,我们将看到如何能做以下几点: 将类方法转换为只读属性 重新实现一个属性的setter和getter ...

  7. ES6实现数组去重

    ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Array.from方法可以将 Set 结构转为数组. 扩展运算符内部调用的是数据结构的 Iterator 接 ...

  8. flask环境布署--废弃不用,只留作备份

    [前置条件] 创建1个flask-demo,生成requirement.txt文件(下载好gunicorn),上传至git.创建demo参照:创建一个flask api-demo(响应体显示中文) g ...

  9. 简要介绍一下MD5加密的书写

    大家应该多清楚数据的重要性,可以假设一下:一个非常大的企业,因为一个程序员的疏忽大意,没有使用MD5加密,那么可以说这个企业的数据库是非常不安全的,可以轻而易举的的访问你的数据库,并执行任何操作. 下 ...

  10. text_to_be_present_in_element

    text_to_be_present_in_element(locator,text)是指定页面元素的文本位置, 一般用于验证一个文本信息或者错误的信息,我们任然以百度登录为案例, 用户名和密码为空, ...