Vim 学习指南
作者:耀耀
出处:http://www.linuxeden.com/html/news/20130820/142667.html
Vim 学习指南
关注我们: 
![]()
第一层次 – 适应
在标准的编辑器里,写一些东西到屏幕上只需要在键盘上输入就足够了,在Vim中不是这样。Vim在普通模式里,让我们转到插入模式,键入字符i。 你应该感觉好一点了,能像在标准编辑器里输入了,回到普通模式只需按ESC键即可。 你现在知道了如何在插入和普通模式之间转换,下面是你在普通模式下需要记住的指令:
|
|
只有5个命令,一开始只需掌握这些,当适应了这些命令后(大概需要一天或更多的诗句),你可以转到第二层级了。 但首先,稍回顾一下普通模式。在标准编辑器里,要复制的话你需要使用ctrl键(Ctrl-c)。实际上,当你按下ctrl键时所有的按键的意义都改变了。在vim普通模式下就像在ctrl键自动按下的情况下使用编辑器。 最后的补充:
|
第二层 - 爽一把你知道,命令是由需求所定。是时候学习更多命令了。下面这些是我的建议:
花些时间学习所有这些命令。一旦完成后,你应该就能完成在像在其它编辑器中所有事情。也许,你可能还会觉得有点笨手笨脚。但是跟着我进入下一个层次,你就会发现为什么vim值得你额外付出的努力。 |
第三层次——更好,更强,更快为达到这一步表示祝贺!现在我们可以开始这有趣的东西。在第三层次,我们将只讨论命令,它兼容旧的vi编辑器。 更好让我们看看vim是怎么帮你做重复事情的。 1. .→(点)可以重复最后一个命令, 2. N<命令>会重复命令N次。 一些例子,打开一个文件然后写入下面内容:
|
更强知道怎么有效的移动对vim是非常重要的。请不要跳过这一节。 1. NG→定位到第N行 2. gg→1G的快捷方式——定位到第一行 3. G→定位到最后一行 4. 单词移动:
现在让我们来谈谈几个非常有效率的移动:
相信我,最后的三行命令是精华。 |
更快记住了vi移动的重要性?这里就是原因。大多数命令使用下面这种通用格式: <开始位置><命令><结束位置> 例如: 0y$意味着
我们也可以使用ye,从当前位置复制到单词的末尾。但是y2/foo 会一直复制到第二个foo出现的地方。 但对于y(复制), d(删除), v(visual 选择), gU(大写), gu(小写)等等命令都是真实的。 |
第四层次 – Vim 超能量使用上述的命令,你就觉得很爽了。但是现在,这里才是杀手锏。正因为其中有些特性,我才使用vim的。 在当前行移动:0^$g_fFtT,;
一个有用的提示:dt"→删除所有的直到”。 |
区域选择 : <命令>a<对象> 或 <命令>i<对象>这些命令仅仅能用在可视化模式的一个操作后。但是他们相当的有用。他们的主要模式有: <命令>a<对象> 和 <命令>i<对象> 命令可以是任何命令,例如 , d(删除),y(拉取),v(进入可视化模式)。对象可以是: w一个单词,W一个单词 (扩展的),s一个句子,p一个段落。而且也可以是普通的字符, 例如",',),},]。 假设现在光标在 (map (+) ("foo")) 这个字符串的第一个o上。
|
矩形选择块:<C-v>矩形选择块能够方便的对多行代码进行注释。 如:0<C-v><C-d>I-- [ESC]
![]() 提示:如果你的剪贴板在Windows中是非空的话,那么你就不得不使用<C-q>来代替<C-v>。 |
实现:<C-n>和<C-p>.在插入模式中:只要打出单词的首字母,然后按<C-p>,神奇的事情就发生了...
宏命令 : qa 做的一些事,@a,@@qa 把你的动作记录在了寄存器 a 中。然后@a 就会将存在寄存器中的动作重现,就好像你从新打了一边。@@是将你最后一次执行的宏命令再次执行的快捷键。
|
可视化模式选择: v, V, <C-v>我们已经看到过<C-v>例子,这里还有v和V。一旦已经选择好了,你可以:
![]() 在可视化模式所选择的行的末尾添加一些东西:
|
分割:: split 和 vsplit这些是很重要的命令,所以你应该在:help split看看。
|
小结这些是我经常使用的90%的命令。我建议你每天学习一到两个命令。在两到三周之后,你将会感觉到vim在你手上使用的是如此的强大。 学习vim更多的是记忆训练。值得高兴的是vim诞生了一些非常好的工具和优秀的文档。当你非常熟悉大部分基本命令之后就可以使用vimtutor了。另外,你应该仔细的阅读这页 ::help usr_02.txt. 然后,你要去学习了解寄存器,插件已经其它的功能。学习vim就像学钢琴一样,所有的都要掌握好。 |
参与翻译(4人):Lesus, Garfielt, szkiti, 耀耀
本文转自:开源中国社区 [http://www.oschina.net]
本文标题:Vim学习指南
本文地址:http://www.oschina.net/translate/learn-vim-progressively
Vim 学习指南的更多相关文章
- Vim学习指南
你想尽可能快地自学vim(为大家所熟知的最好的编辑器) .这是我学习的方法:从细处入手然后慢慢掌握所有技巧. Vim 六十亿美元的编辑器 设计优良,强壮,快速. 学习vim并把它作为你的下一个文本编辑 ...
- Unix和Linux下C语言学习指南
转自:http://www.linuxdiyf.com/viewarticle.php?id=174074 Unix和Linux下C语言学习指南 引言 尽管 C 语言问世已近 30 年,但它的魅力仍未 ...
- Civil 3D API二次开发学习指南
Civil 3D构建于AutoCAD 和 Map 3D之上,在学习Civil 3D API二次开发之前,您至少需要了解AutoCAD API的二次开发,你可以参考AutoCAD .NET API二次开 ...
- 笔记——shell脚本学习指南
<shell脚本学习指南>机械工业出版 ISBN 987-7-111-25504-8 第2章 2.4 初级陷阱 1.当今的系统,对#!这一行的长度限制从63到1024个字符都有,尽量不要超 ...
- 《Spring MVC学习指南》怎么样?答:书名具有很大的欺骗性
2016年6月21日 最近,因为工作需要,我从网上买了一本<Spring MVC学习指南>,ISBN编号: 978-7-115-38639-7,定价:49.00元.此书是[美]Paul D ...
- [go语言学习指南]
内部分享,根据自己的经验,收集汇总的go语言学习指南. 适合新手入门. 可以通过这里进行下载.
- Oracle学习指南
Oracle学习指南 你走的那天,我决定不落泪,迎着风撑着眼帘用力不眨眼 创建数据库.创建用户.创建表空间.创建表.插入数据..... 1.用系统用户登录,任选系统用户 代码: >>sql ...
- 推荐10个很棒的AngularJS学习指南
AngularJS 是非常棒的JS框架,能够创建功能强大,动态功能的Web app.AngularJS自2009发布以来,已经广泛应用于Web 开发中.但是对想要学习Angular JS 的人而言,只 ...
- 项目管理之道--纪我的新书《PMP项目管理认证学习指南(第4版)》出版并预祝大卖!
新年伊始,我最新的项目管理书籍——<PMP项目管理认证学习指南(第4版)>也出版了,真是新年新气象啊!翻译英文书籍是一件任重道远的工作,除了要具备扎实的基本功,熟悉相关的领域外,还需要细致 ...
随机推荐
- 洛谷P1427 小鱼的数字游戏
题目描述 小鱼最近被要求参加一个数字游戏,要求它把看到的一串数字(长度不一定,以0结束,最多不超过100个,数字不超过2^32-1),记住了然后反着念出来(表示结束的数字0就不要念出来了).这对小鱼的 ...
- C#实现简单的串口通信
前言 本着学习研究的态度,用c#语言实现简单的串口通信工具. 一.串口通信原理 串口通信 串口通信(Serial Communications)的概念非常简单,串口按位(bit)发送和接收字节.尽管比 ...
- 【hihocoder 1317】搜索四·跳舞链
[题目链接]:http://hihocoder.com/problemset/problem/1317 [题意] [题解] dfs就能过吧. 在选取的时候; 把选取的这一行,占据的列,列的权值+1; ...
- CF787A - The Monster
/* CF787A - The Monster http://codeforces.com/contest/787/problem/A 数学 扩展欧几里得 注意x或y为0的时候要特判 并且结果要大于b ...
- 工具-VS常用快捷键
项目管理: Ctrl+Shift+N: 新建项目 Ctrl+Shift+O: 打开项目 Ctrl+Shift+S: 全部保存 Shift+Alt+C: 新建类 Ctrl+Shift+A: 新建项 Sh ...
- servlet3.0理解
1.servlet是用Java编写的服务器端程序,服务器端程序,服务器端程序. 2.Servlet运行于支持Java的应用服务器中.spring mvc有自己的实现servlet 从原理上讲,Serv ...
- 使用postman 测试restful接口
前提: 在chrome网上应用商店安装postman 和 Postman Interceptor. 如下图: 使用postman的时候,最后开启postman Interceptor,如下图: 然后启 ...
- angularjs1-6,自定义服务
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...
- 转:Centos 7 使用git 用 ssh 连接github服务器
https://blog.csdn.net/wzq793957419/article/details/68067204 首先Linux下载git,ssh服务都弄好 生成ssh密钥: $ ssh-key ...
- [SCOI 2008] 奖励关
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1076 [算法] f[i][S]表示当前第i次抛出宝物,目前集合为S,所能获得的最高分 ...








