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. 使用 git post-receive 钩子部署服务端代码

    在 git 中提交服务器源码的时候,如果能够直接更新到测试服务器,并且重启服务使其生效,会节省懒惰的程序员们大量的时间. git 的 Server-side hook (服务端钩子/挂钩)可以用来做件 ...

  2. python 怎么模拟加header(如User-Agent、Content-Type等等)

    # -*- coding: cp936 -*- #python 27 #xiaodeng #python 怎么模拟加header(如User-Agent.Content-Type等等) #办法一: i ...

  3. jquery利用appendTo动态创建元素

    动态创建元素可以说是DOM中常做的事情,下面我来介绍在jquery中利用appendTo来动态创建元素,有需要的朋友可参考参考. 当HTML字符串是没有属性的元素是, 内部使用document.cre ...

  4. 无法启动此程序,因为计算机中丢失 api-ms-win-crt-stdio-l1-1-0.dll 解决

    问题描述 最近用一台Windows Server 2012 R2系统的机器的时候碰到了这个问题. 因为在网上看了很多解决方案,都没有很好的解决.所以记录一下这个问题的解决. 之前使用VS2013编译出 ...

  5. 老古董---ASP.NET中aspx页面runat="server"

    自从 mvc3 被广泛的推进生产环境后,这个runat="server" 慢慢被人遗忘了... asp.net 的 webForm 基于控件的 html  渲染过程是否还记得呢?是 ...

  6. Navicatmysql专版

    Navicat是非常牛逼的公司在数据库可视化方面,做出许多工具...,可视化,为了更加人性化的操作,远离枯燥无味的黑色窗口 一睹真容 捐献一枚注册码 注册码:NAVH-WK6A-DMVK-DKW3 D ...

  7. 动态规划处理diff算法 Myers Diff (正向)

    Eugene W. Myers 在他1986年发表于"Algorithmica"的论文"An O(ND) Difference Algorithm and Its Var ...

  8. Heroku第三方服务接入指南(二)

    上文我们讲了第三方服务.Heroku.用户三者的关系,这一篇进入正题,了解第三方厂商(下文简称厂商)怎样为Heroku开发服务.这里仅仅做简介,了解heroku大致是怎么做的.假设你的平台.希望接入第 ...

  9. PL/SQL报无效的窗口句柄的解决办法

    在远程服务器上使用pl sql developer查询oralce数据库的时候,遇到很长的文本变量想点开小窗口看下具体内容, 但系统弹窗提示“无效的窗口句柄”,听同事介绍原来需要开启一个windows ...

  10. Android开发环境内容汇总

     Android开发环境将分为SDK相关内容.Eclipse ADT相关内容.模拟器AVD相关内容.调试器DDMS相关内容.日志LogCat相关内容.连接驱动ADB相关内容.内存泄露检测工具MAT相关 ...