vi编辑器有3种模式:命令模式、输入模式、末行模式。掌握这三种模式十分重要:

命令模式:vi启动后默认进入的是命令模式,任何模式下,按[Esc]键都可以返回命令模式。
输入模式:可输入字符,在底部显示“--INSERT--”标志着vi进入了输入模式。
末行模式:在命令模式输入":"即可进入该模式,在末行模式中有好多好用的命令。

保存文件:
:w 保存当前文件 :wq 保存并退出 :q退出 :q!强制退出不保存

移动光标:
j向下 k向上 h向左 l向右
w下一个单词词首 W将特殊符号视为单词一部分
b上一个单词词首 B将特殊符号视为单词一部分
0行首     ^ 行首文字(行首空格之后)$ 行末
H 页面顶部 M页面中部 L页面底部

数字参数:
可以使用数字参数来重复执行。例如:
100j 执行100此j键,向下100行
GG 文件行首 G文件末行
<行号>G 按行号转到相应的行

编辑:n代表数字
x删除当前字符 dd删除当前行 yy复制当前行 p在光标后粘贴 P在光标前粘贴
ndd 从当前行开始删除n行 nx 删除光标处向右三个字符
u撤销最近一次操作,可以使用多次来回复所有操作。U取消所有操作
yy 复制当前行到缓存 yw复制当前单词 y$复制当前位置到行尾 y^复制当前位置到行首
nyy 复制n行 nyw 复制n各单词
如果要复制第m行到第n行之间的内容:m,ny 例如:3,5y复制第三行到第五行到缓存

查找:
查找和替换主要在末行模式
自上而下查找 /要找的字符  例如:/work 查找work
自下而上查找 ?要找的字符  例如:?work 查找work

替换:
:s/old/new 用new替换行中首次出现的old
:s/old/new/g  用new替换行中所有出现的old
m,n s/old/new/g 替换从第m行到第n行中出现的所有old
% s/old/new/g 用new替换整篇中出现的old
:s/old/new/gc 全局替换并需要用户确认

获取帮助命令 用:help [内容或命令]

vim快速指南的更多相关文章

  1. Vim 学习指南

    作者:耀耀 出处:http://www.linuxeden.com/html/news/20130820/142667.html Vim 学习指南 来源:开源中国社区 作者:耀耀 关注我们:   你想 ...

  2. [译] MongoDB Java异步驱动快速指南

    导读 mongodb-java-driver是mongodb的Java驱动项目. 本文是对MongoDB-java-driver官方文档 MongoDB Async Driver Quick Tour ...

  3. 转:C++ Boost/tr1 Regex(正则表达式)快速指南

    C++ Boost/tr1 Regex(正则表达式)快速指南 正则表达式自Boost 1.18推出,目前已经成为C++11(tr1)的标准部分. 本文以Boost 1.39正则表达式为基础,应该广泛适 ...

  4. (译)快速指南:用UIViewPropertyAnimator做动画

    翻译自:QUICK GUIDE: ANIMATIONS WITH UIVIEWPROPERTYANIMATOR 译者:Haley_Wong iOS 10 带来了一大票有意思的新特性,像 UIViewP ...

  5. JUnit5 快速指南

    JUnit5 快速指南 version: junit5 1. 安装 2. JUnit 注解 3. 编写单元测试 3.1. 基本的单元测试类和方法 3.2. 定制测试类和方法的显示名称 3.3. 断言( ...

  6. 【SFA官方翻译】使用 Kubernetes、Spring Boot 2.0 和 Docker 的微服务快速指南

    [SFA官方翻译]使用 Kubernetes.Spring Boot 2.0 和 Docker 的微服务快速指南 原创: Darren Luo SpringForAll社区 今天 原文链接:https ...

  7. Emacs 快速指南(中文翻译)

      Emacs 快速指南 目录 1. 小结(SUMMARY) 2. 基本的光标控制(BASIC CURSOR CONTROL) 3. 如果 EMACS 失去响应(IF EMACS STOPS RESP ...

  8. 29 A Quick Guide to Go's Assembler 快速指南汇编程序:使用go语言的汇编器简介

    A Quick Guide to Go's Assembler 快速指南汇编程序:使用go语言的汇编器简介 A Quick Guide to Go's Assembler Constants Symb ...

  9. Emacs 快速指南 - 原生中文手册

    Emacs 快速指南 -折叠目录 1. 小结(SUMMARY) 2. 基本的光标控制(BASIC CURSOR CONTROL) 3. 如果 EMACS 失去响应(IF EMACS STOPS RES ...

随机推荐

  1. 整合Tomcat和Nginx实现动静态负载均衡

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6386135.html Nginx与tomcat整合可以实现服务器的负载均衡. 在用户的请求发往服务器进行处理时 ...

  2. mysql改变字符串的大小写

    INITCAP:转换每个字的第一个字符为大写LOWER:转换所有字符为小写UPPER:转换所有字符为人写 eg: LOWER(phone)

  3. isset、empty、var==null、is_null、var===null详细理解

    //isset: 判断变量是否被初始化 //它并不会判断变量是否为空,并且可能用来判断数组中元素是否被定义 //听说在数组用isset与array_key_exists高出4倍 $a = " ...

  4. linux-env命令解析

    Linux的env命令查看当前用户的环境信息 [root@linux ~]# envHOSTNAME=linux.dmtsai.tw   <== 这部主机的主机名称SHELL=/bin/bash ...

  5. 基于微信小程序的票价和时间选择以及计算总价

    发布时间:2018-10-30   技术:wxml+wxss+JS   概述 微信小程序实现选择时间和票价,根据选择的票价和时间实时计算总价,当时间和票价都显示缺货状态时,点击弹出缺货登记,需要选择票 ...

  6. 如何解决input file 选取相同文件后,change事件不起作用解决方法

    两种方法 1.在你的input所属的form表单reset()就可以了! $("#avatorForm")[0].reset(); 2.设置你的input file value值为 ...

  7. 【tp5】表单验证之token

    1.本场景仅介绍复杂一点的ajax请求带上token验证,普通的form提交不讲 2.原理仅个人理解,如有偏差 欢迎各路大神指点:框架tp5.0.18 目前将token放置于 ajax的header头 ...

  8. ios中屏幕适配

    - (void)viewDidLoad { [super viewDidLoad]; // 左上角 // 固定左边和上边,伸缩右边和下边 self.leftTop.autoresizingMask = ...

  9. iOS 性能调优

    1.内存空间的划分: 我们知道,一个进程占用的内存空间,包含5种不同的数据区:(1)BSS段:通常是存放未初始化的全局变量:(2)数据段:通常是存放已初始化的全局变量.(3)代码段:通常是存放程序执行 ...

  10. 寻找自己的道路——与技术同胞共勉 一种划分为七个阶段的道路:自信=>意志=>布局=>切入点=>团队=>渠道=>产品

    寻找自己的道路——与技术同胞共勉 每个人的幸福都是不一样的.我喜欢田园式的生活,在人多的地方总是不舒服. 对我来说,最幸福莫过于在工作中做着自己喜欢的事情.闲暇时,在能够眺望江边的地方,端着一杯红酒, ...