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其它机制将有重要作用. 每个类编译后产生一个 ...
随机推荐
- OI常用的常数优化小技巧
注意:本文所介绍的优化并不是算法上的优化,那个就非常复杂了,不同题目有不同的优化.笔者要说的只是一些实用的常数优化小技巧,很简单,虽然效果可能不那么明显,但在对时间复杂度要求十分苛刻的时候,这些小的优 ...
- 14 补充 MySQL的创建用户和授权
权限管理 我们知道我们的最高权限管理者是root用户,它拥有着最高的权限操作.包括select.update.delete.update.grant等操作.那么一般情况在公司之后DBA工程师会创建一个 ...
- hg(Mercurial)使用参考
hg(Mercurial)使用参考 使用hg(mercurial)有好几个月了,个人感觉这款分布式的版本控制系统非常不错,易学,易用:你可以从做在你旁边的同事拉取完整的代码; 对网络的依赖性更低, ...
- nginx location的优先级
原来一直以为location的优先级是先后顺序,结果有次项目中傻眼了,赶紧百度一下,下面的内容参考了这个链接 location表达式类型 ~ 表示执行一个正则匹配,区分大小写~* 表示执行一个正则匹配 ...
- 十六、对RF中ROBOT_LIBRARY_SCOPE = 'GLOBAL'进行分析
(1)ROBOT_LIBRARY_SCOPE属于ROBOT库范围,这个范围有三个等级,分别是TEST CASE.TEST SUITE.GLOBAL三个等级,默认是TEST CASE:GLOBAL这个等 ...
- 我写过的bug...
添加对,更新和查询出错 因为只写了bean里只写了se't方法,没有写get 多条件联合查询,后一个条件没用 写xml里面复制上一行,忘记把变量名改了(propertyValue没改成register ...
- 【C++进阶】getline
在<istream>中的getline函数有两种重载形式: istream& getline (char* s, streamsize n );istream& getli ...
- maven setting.xml文件配置详情
1 首先,setting.xml一般存在与两个地方:maven的安装目录/conf/,和${user.home}/.m2/下.他们的区别是在maven安装目录下的setting.xml是所有用户都可以 ...
- 阶段3 1.Mybatis_11.Mybatis的缓存_2 延迟加载和立即加载的概念
用户关联的account信息,假设一个用户管理的account有100个.那么我们在查询用户的时候那100个关联的信息也被查询出来. 用的时候才去查关联的数据 这两个不同的地方就是查询的时机不同 什么 ...
- 那些堪称神器的 Chrome 插件
Chrome 的简洁快速以及丰富的插件种类使得它在国内日益盛行,帮助了我们很多 Chrome 用户提升了工作效率,而今天要给大家推荐8款实用甚至堪称神器的 Chrome 插件,希望对提升大家的工作效率 ...