Vim 系列笔记一
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 系列笔记一的更多相关文章
- 跟着鸟哥学Linux系列笔记2-第10章VIM学习
跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 跟着鸟哥学Linux系列笔记1 常用的文本编辑器:Emacs, pico, nano, joe, vim VI ...
- 跟着鸟哥学Linux系列笔记3-第11章BASH学习
跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 跟着鸟哥学Linux系列笔记1 跟着鸟哥学Linux系列笔记2-第10章VIM学习 认识与学习bash 1. ...
- Java系列笔记(2) - Java RTTI和反射机制
目录 前言 传统的RTTI 反射 反射的实现方式 反射的性能 反射与设计模式 前言 并不是所有的Class都能在编译时明确,因此在某些情况下需要在运行时再发现和确定类型信息(比如:基于构建编程,),这 ...
- Java系列笔记(4) - JVM监控与调优
目录 参数设置收集器搭配启动内存分配监控工具和方法调优方法调优实例 光说不练假把式,学习Java GC机制的目的是为了实用,也就是为了在JVM出现问题时分析原因并解决之.通过学习,我觉得JVM ...
- Java系列笔记(3) - Java 内存区域和GC机制
目录 Java垃圾回收概况 Java内存区域 Java对象的访问方式 Java内存分配机制 Java GC机制 垃圾收集器 Java垃圾回收概况 Java GC(Garbage Collection, ...
- 跟着鸟哥学Linux系列笔记0-如何解决问题
跟着鸟哥学Linux系列笔记0-扫盲之概念 在发生问题怎么处理: 1. 在自己的主机.网络数据库上查询How-To或FAQ -Linux 自身的文件数据: /usr/share/doc -CLDP中 ...
- 跟着鸟哥学Linux系列笔记1
跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 装完linux之后,接下来一步就是进行相关命令的学习了 第五章:首次登录与在线求助man page 1. X ...
- vim 使用笔记
vim命令笔记 a 插入 insert 插入 :%!xxd 以16进制方式进行编辑 :%!xxd -r 从16进制还原
- Java系列笔记(1) - Java 类加载与初始化
目录 类加载器 动态加载 链接 初始化 示例 类加载器 在了解Java的机制之前,需要先了解类在JVM(Java虚拟机)中是如何加载的,这对后面理解java其它机制将有重要作用. 每个类编译后产生一个 ...
随机推荐
- Django REST framework 之 认证 权限 限制
认证是确定你是谁 权限是指你有没有访问这个接口的权限 限制主要是指限制你的访问频率 认证 REST framework 提供了一些开箱即用的身份验证方案,并且还允许你实现自定义方案. 接下类我们就自己 ...
- 使用node.js搭建本地服务器
第一步安装node:https://nodejs.org/zh-cn/download/ 接下来就需要安装http的镜像文件 打开cmd:输入以下命令 npm install http-server ...
- 什么是webpack以及为什么使用它
什么是webpack以及为什么使用它 新建 模板 小书匠 在ES6之前,我们要想进行模块化开发,就必须借助于其他的工具.因为开发时用的是高级语法开发,效率非常高,但很可惜的是,浏览器未必会支持或认识 ...
- 异步任务分发模块Celery
Celery简介 Celery是一个功能完备即插即用的任务队列.它使得我们不需要考虑复杂的问题,使用非常简单. celery适用异步处理问题,当遇到发送邮件.或者文件上传, 图像处理等等一些比较耗时的 ...
- mysql数据库连接错误10060
今天在使用mysql数据库的时候,出现错误ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10060) 我在网上一顿 ...
- Vue知识整理15:组件注册
采用局部注册组件: 将代码放在vue的一个实例中,而不是单列申明.
- Linux_RHEL7_LDAP、Autofs服务
目录 目录 前言 LDAP 加入LDAP用户认证服务器 文件自动挂载服务autofs 前言 LDAP服务器,用作于网络用户的集中管理.在企业中员工的个人帐号一般采用集中管理的方式,在不同的系统平台上也 ...
- Scala的集合框架
1.元组 定义方式:val tp=("nana',1,1.1) 特点:集合中的数据可以是不同类型的 最多只能放22个元素 取值:通过角标取值,这里的角标是从1开始的,元组名称._角标 t ...
- Pycharm激活方法(license server方法)
pycharm所有版本 http://www.jetbrains.com/pycharm/download/previous.html 打开激活窗口 选择 Activate new license w ...
- cocos2dx基础篇(21) 进度条CCProgressTimer
[3.x] (1)去掉 "CC" (2)CCProgressTimerType 改为强枚举 ProgressTimer::Type:: // RADIAL //扇形进度计时器 BA ...