>> [研讨会的Vim]
[刘布兰登] [哈佛大学]
[这是CS50。] [CS50.TV]
>>今天将是一个介绍Vim的。
怎么你们的很多人听说过的Vim？
你听到了什么关于Vim？
[学生]：它解决了所有的问题。
[布兰登L.]它解决了所有的问题。
别的你们听说过Vim的？任何印象如何？
[学生]几乎每个人我已经说过了喜欢使用Vim的。
哦，甜美。
[学生]：很多人都知道我喜欢用Vim。
好吧，这是很好的，因为有很多人在CS51
开始回升的Emacs，因为Emacs有稍微更好的支持
对于语言你会在CS51使用，
我担心没有足够的人在哈佛使用Vim，
所以我真的尝试做鼓励Vim的使用方面做得很好。
>>但这里是一个典型的XKCD漫画的你们可能会觉得有趣。
有你们用纳米之前呢？
这本漫画说纳米？真正的程序员使用Emacs。
嘿，真正的程序员用Vim。
不，真正的程序员使用爱德是这个 - 你永远不要想用埃德。
这是真的，真的老了，真的太差了，真正的程序员使用
磁化针和一个稳定的手。
而且你可以阅读休息，但它是相当有趣的。
而有趣的是在最后。
他们说，“当然，哦，是的，有一个Emacs命令来做到这一点。”
好老的Cx MC M-蝴蝶，这是一个排序时戳的Emacs
因为Emacs的是历史上被称为是一个有点臃肿
并有命令，几乎所有的东西，所以这是个玩笑似的为Emacs的。
>> Vim是什么？ VIM是一种先进的程序员的文本编辑器。
我真的想使文本编辑器之间的区别
和类似的文档处理器。
Microsoft Word中被称为一个文件处理器。
可以设置页边距，使事情加粗，加下划线的东西，
通过罢工的事情，改变字体大小和诸如此类的东西。
一个文本编辑器做无非只是编辑文本。
从字面上看，你只需要字符。
有没有那种造型，大小，字体，颜色，或类似的东西的。
你要做的就是编辑文本，而Vim编程而特别制作。
它有很多内置在短短的编程功能。
它明确地专为高效的文本编辑。
>>总的来说，Vim中是已知的，基本上最快的文本编辑器
你可以使用一个带任何其他文本编辑器，有可能进行比较。
很多IDE的类似的功能不直接内置到Vim中，
所以如果你使用的IDE和你已经习惯了像编译和自动运行
或调试什么在你的IDE或不同的东西一大堆
Vim不会来与自然，
但有一大堆的插件，你可以用它来之类的功能添加到Vim中。
Vim的本身侧重于文本编辑和做文字编辑真的，真的很好。
最后，它是真正可定制和可扩展的，
而且基本的Vim已经出现，或VI，其中的Vim是建立在，
已经存在了超过40年，这是一个非常，非常深的程序，
人们会用它一辈子，从不真正掌握程序发挥到极致，
而你将永远继续学习贯穿你的生活，多年来，
总是越来越好。
>>有基本没有结束你可以学到什么，有多少你可以用Vim的提高，
这实在是令人振奋的。
你不想把它当作可怕的东西，因为你可能会变得非常，非常精通
在Vim中，在短短几个星期，但它有点像一个持续的，
你总是可以学到更多，学到更多，做的东西好，
这对我来说是很兴奋。
这是一个什么样的Vim看起来像一个例子。
这不是我的。你会看到一些现场演示现在。
这是Vim的可能是什么样子的例子。
>>什么我们今天要做的是我们要开始了与
快速展示一下Vim可以做。
我会做一些技巧和诸如此类的东西对你们
所以你可以看到为什么我喜欢Vim的这么多，为什么人们喜欢Vim的那么多，
然后从那里我们将进入一个简单的介绍。
事实上，这将是一个有点快，介绍了Vim的。
我会问你们去下载一个文本文件，并与我跟着如果你能。
这是Vim的，而且在这里我使用的MacVim，
所以如果你们有苹果电脑你可能要考虑使用的MacVim
因为它的Vim的图形化版本，虽然正规的Vim，
什么在你的命令行，工作得很好。
我要告诉你一些随机的技巧和窍门
您可以使用Vim会告诉你为什么它是如此凉爽。
>>就在几个随机的东西我会去。
的第一件事是文本对象，并有周围的文本对象的几个命令，
而我居然会教你什么文本对象在后面详细的研讨会上，
但例如，让我们说我我的名字拼错，
Barndon刘，我想改变它。
我所要做的就是让我的光标在某个地方我在命令名称和类型
CIW，它会删除我的全名，把我在插入模式下，
我可以输入我的名字，并修复它。
同样，如果我想改变引号内的东西有也是一个命令。
我可以删除引号内的东西。
没有更多的双击，移动你的手放在鼠标，
双击，然后输入一些内容。互动
您可以从键盘做的一切，不管它是什么。
或者，或者，让我们说我有这样的图像标记这个锚标记内。
>>有你们的HTML覆盖在课堂上了吗？
是啊，也许我想删除这个标签，
通常你所要做的就是，你必须使用你的鼠标
并仔细高亮显示您希望删除，并删除它到底是什么。
但在Vim中，这根本DIT，你真的可以快速删除它，
我会向你解释什么所有这些命令的意思是，你如何使用它们在第二。
另外一个例子，我有一些代码在这里，
让我们说我要缩进的代码，但我要缩进的代码
只是在括号内，而我也可以使用3个命令缩进代码
使用基本> IB。
另一件事，真的很酷关于Vim是一种叫做可视块编辑。
我不知道，如果你们曾经想突出
文字在你的代码中的矩形块，有时
而不必做这种怪异的那种东西线跨越所有不同的线路。
例如，在Vim中你可以做到这一点。
我可以突出显示矩形就是这样，这是很酷，
但同时，我可以编辑使用该功能。
例如，如果我想给一些前缀给我们所有的名字
我可以突出一个块，然后添加一些东西。
>>同样，我也可以突出这个块，并选择将其删除，
也许我将重点介绍该块并将其更改为D，因为我们都是医生。
不管是什么，你可以做所有这些不同的事情。
最后，折叠是真的很酷。
很多的IDE有这个，你可以折叠不同的功能拿出来看
如果你不想看到他们。
例如，假设我有这样的一堆文字在这里，我真的不希望看到它。
我想保持它的看法，因为我编辑别的文件中。
我可以把它折叠起来使这一切都崩溃了，
而这种方式是拿出来看，
我可以编辑的页面上的其他东西，这真是太棒了。
您可以折叠起来的功能和诸如此类的东西或折叠起来的类，当你编程
只是为了让他们拿出来看，当你不编辑它们，
后来当你想看到他们，你可以打开它们。
而且你可以看到它刚开业一切。
制表符，缓冲区和窗口。
Vim的是在这很酷
通常在很多文本编辑器只能编辑一个文件时，
像纳米，或者如果你使用记事本或gedit的。
我其实从来没有使用gedit的非常多，但至少在记事本+ +
你可以有标签，但Vim有标签，缓冲区和窗口的概念。
例如，您可以打开了一堆新的标签。
>>您可以在这里看到，在最高层我现在有一堆选项卡，
我可以关闭它们。
另外，还有缓冲器的概念，
这是想法，一旦你打开一个文件
它停留在活着的缓冲区，如果你想真正快速定位到该文件
您可以在缓冲区内找到它真的很快为好，
进而，在一个窗格中，您也可以分割你的窗口分成多个窗口。
举例来说，如果我想要分割窗口分成多个窗口
你可以看到在这里，我可以有两次相同的密码，
我可以分裂越来越多，而现在它看起来并不好
因为默认情况下我有默认的窗口大小是那种大
因此，所有的人都压扁了，
但通常，当我在我的电脑，而不是这台投影机上
我可以有几个窗格打开在同一时间，这是非常好的对
编辑多个文件在​​同一时间。
你也可以有东西像选择和替换，
我们将实际上涵盖在研讨会上，
所以我将跳过，对于现在。
您也可以用在各种不同的方式在命令行交互。
例如，如果我这里有一些名单，我想对它进行排序，
我不知道，让我们添加另一个水果，葡萄，
我可以使用高亮功能突出这
并调用排序，它会自动排序对我来说。
>>同样，如果你要进行编辑的CSS，我相信你可能会做
为您的最终项目，大多数人做的，
也许你想保持你的CSS按字母顺序排序这些组织。
您也可以选中它们，并调用排序，它会整理它们。
这些都是一些的东西，Vim可以做例子，
你会发现，我真正想要的关键是要提请你注意
是，我是从键盘做的一切，
如果你能看到我的手放在
你还会看到我的手从来没有真正从母排移动。
通常，当你正在编辑的文本，通常必须先使用鼠标
并点击和诸如此类的东西，和那种运动的拖累你失望
和浪费时间，或者你家里行和箭头键之间移动，
所以你来回移动这样的，这是一个有点麻烦
但也减慢你失望的，就是一旦你在Vim的真的很不错
你想要做的一切，而不必移动你的手做
从母排，这是伟大的。
等一下，我要打开这个应用程序。我们走吧。
>>现在你可以看到什么命令都跑到右下角的窗口。
所有，我只是表明你是被默认包含Vim的东西的功能，
但也有一个巨大的插件，你也可以用数
提高你的Vim的经验。
如果您下载了我包括配置文件，
并有关于如何安装他们在PowerPoint中的说明
以及在电子邮件我送出去，我已经安装了约40插件
也许30插件，每一一个
带来了额外的功能，Vim会提高你的Vim的经验。
例如，我的最爱之一是一种叫做surround.vim，
它基本上可以让你与周围的工作
或分隔字符更容易。
>>一个例子，我不知道你们在LaTeX永远代码，
但乳胶是一种用于使一个数学排版语言
非常好看的数学，每当你想要的东西看起来像数学
你把它包在美元符号，并让我们说我打字的一些公式如F = MA，
我忘了把它包在美元符号。
然后，我可以强调这一点，并把它包在美元符号就这样。
另外，Vim允许你删除标签内的事情
和删除标签和诸如此类的东西，但Vim的性质
不允许您更改标签，因此，例如，我有这样的div标签，
我想升级到HTML5和使用新的头标记。
我可以做改变周围的标记和类型的头，
它会自动改变，对我来说。
同样，假设我们有东西在括号中，
我想改变，从括号放在括号中或类似的东西。
我也可以改变，真正轻松地通过键入C语言的变化，
S代表环绕，括号中。
哦，我想我必须更快型。
括号和大括号或中括号，它会自动改变，对我来说，
这是非常好的，否则通常它真的很麻烦。
>>这是非常好的也许单引号之间切换
和双引号字符串或类似的东西。
这是一个示例用例。
有一个叫逃犯插件
它集成了使用Git。
我猜也许你们还没有使用Git的那么多的CS50，
但你会发现自己使用Git越来越多，
不仅在整个班级哈佛，而且在工作和诸如此类的东西，
而通常你必须之间来回切换
命令行和Vim用Git的互动，
但有插件来使用Git从内部集成Vim
同时也给你的Git之上，甚至更多的功能。
还有一种叫NERDTree，你可以用它来探索
该文件结构在Vim内。
>>例如，我可以打开NERDTree在右窗格中，
你基本上可以看到随机文件
和开不税，不看我的税。
你可以看一下文件和诸如此类的东西，并打开其他文件等等等等。
我不会去为其他的插件，所以我们基本可以在潜水
并开始开发Vim，但也有插件，让您
更轻松地发表意见，插件，让您更轻松地跳档之间，
插件，让你的语法在Vim内检查，
这是真的很酷，和它给你的语法检查
对于大多数语言正确的开箱即用，
事情像彩虹括号，这实际上是真的，真的很酷。
让我给你这样一个例子，现在。
>>让我们来看看。
下面是我在写一些随机代码，
你会发现，括号和括号都是彩色的，
和同色的括号和括号匹配，这是很好的
有时提高了代码的可读性。
您还可以自动完成，表格格式。
当你有，你想获得的所有注释排队的东西
或者你想使一个表中的文字，你要
把一切看，而不必手动格式化，像一个漂亮的表，
有插件，会格式化你等等，等等。
这样的例子不胜枚举和和。
我可以花时间探索所有存在不同的Vim插件，
和它的令人难以置信的外面的东西。
>>到目前为止，有问题吗？甜蜜。
在这种情况下，我们将开始用Vim玩弄，
我想你们的工作有一些Vim的我
这样你就可以感受得到它，我可以指导你用Vim工作的第一步
因为很多人不堪重负，当他们打开Vim的了，
有时，如果你甚至不知道该命令退出，你甚至不能脱身的Vim，
但它不是那么糟糕。
你只是从别人谁也有用的Vim需要指导几分钟
或阅读一些教程在网上，你会用自己的方式在任何时间。
这里有一些说明来安装Vim的，如果你还没有。
你可以提出后看看这些幻灯片，如果你想安装更多的东西。
>>此外，这些都为我的安装配置文件的一些指令，
你也可以在以后遵循这些说明，如果你还没有。
如果你们可以去这个网站，并下载一个文本文件。
该链接将带你到这个文本文件，我想请你下载并在Vim中开拓，
并有一堆练习和诸如此类的东西在那里，你可以和我一起跟随周边
并开始得到一些做法与一些Vim的基本操作。
好。
当你打开那个了，我要去给一个简短的介绍，以2真正的关键原则
在Vim的编辑，这是真正重要的是了解你潜入Vim的时候，
这就是模式的编辑和运营商和议案。
我将介绍莫代尔编辑第一，然后我们将讨论运营商和运动
在一点点。
>> Vim的和几乎所有其他的第一个关键区别
任何形式的文本编辑器就是Vim的是一个模式的编辑器，
而当你使用Vim的意思是指
你可以在许多不同的模式之一。
有普通模式，还有插入模式，有可视化模式，
等等等等，而事情是，你的按键采取不同的行动，
采取不同的含义，这取决于你是哪个模式中。
正如一个例子，正常模式下是你，当你走动的方式，
所以我会用钥匙J可向下移动，
但在插入模式下，您可以使用键J可实际键入通知J在屏幕上，
这就是为什么很多人感​​到困惑，因为他们不习惯
在不同的模式是所有的时间，所以他们会打字出来的东西，
而你习惯了不管你输入显示在屏幕上，
但在Vim中也许你的光标移动所有的地方
因为你输入的字符怪异，突然你会得到
转移到插入模式，因为您键入一些关键
这使你进入插入模式，然后文本开始飞了出去，
很容易让人因为这一点困惑。
但是你要跟踪你在什么模式下，
并且，如果你的Vim的底部工具栏
应该有一个指示灯，告诉你，你现在在什么模式下，
这应该是有帮助的。
>>但在一般情况下，3个主要模式，你应该知道，
有可能只有6或7或8或模式的话，
但是你花大部分的时间在3。
第一件事就是正常模式。这是你花你的大部分时间。
所有击键记录为某种命令，
而我们将全天今天学习了很多的命令。
另一种模式是插入模式，这就是你真正打字出来的东西，
和插入模式基本上是你平时用的模式。
你输入的东西，它只是涉及在屏幕上，
和视觉模式的东西，你可以做高亮。
你前面看到的地方，有时我会被突出显示文本
并操纵它以不同的方式，那就是使用可视化模式的一个例子。
>>我们将与您需要在Vim中生存的绝对基本的开始吧，
它基本上是这7个命令就在这里。
HJKL使用来浏览周围的文件，
和它们对应于左，下，上和右，
而你可以自由地使用箭头键为好，
但我们真的鼓励您使用HJKL尽可能
因为这个想法是，你正在编辑的同时，你可以在文档中移动
而无需移动的箭头键之间
并在你打字，这是真的，真的很好。
你只是想在移动几个字符。
你没有给你的整个移交移位，这是种不错的了。
一些Vim的专家其实他们的方向键映射到其他功能
因为他们已经有HJKL，并且它们可以用于其它功能的方向键，以及。
HJKL移动你身边，而你在正常模式。
如果你想进入插入模式并输入一些内容
您可以按i插入模式，并让你在插入模式下，
您可以输入一些东西，而你输入逃逸
从插入模式，回到正常模式。
逃避永远向您发送回正常模式
无论你是在的，如果有什么模式，你要离开
您可以键入：WQ进入，
你能记住这一点的方法是w代表写，
和q表示退出，所以：WQ，
和结肠运行命令，所以：WQ输入要运行的命令
保存并退出。
>>如果你打开​​该文件了，我们将通过第一个练习一起去。
步骤1尚存在Vim中，
并希望你们都有这个开放。
好了，我们有一些简单的练习，为您习惯使用这些键。
HJKL确实似乎直观起初不，
这是初始块1，而使用Vim的人们有
就是使用这些键来浏览周围。
这不是直观的，但一旦你习惯了它
果然集成到你的头脑，而且很多人经常发现自己
在Word或同时在Chrome中使用J和K，
实际上人们已经创造了这个浏览器插件叫做Vimium
您可以使用在Chrome或铬来浏览Chrome浏览器
用Vim般的快捷键使用键盘，
所以人们都非常热衷，但继续尝试和使用
HJKL的数字之间进行导航，所以您可以熟悉
这些东西是如何工作的。
>>一旦你完成，你也可以去玩弄这个迷宫，我创建
只是为了好玩，你可以排序按照虚线
尽量不要撞到墙上
并尽量做到迷宫的尽头。
如果你使用Gmail的快捷方式或任何数量的不同应用
你会发现，J和K，例如，经常被用来上下移动，
而且主要来自Vim的本质，所以你有J和K，
它真的很好，因为你可以上下移动，而无需
移动你的手来回的箭头键。
现在让我们尝试进入插入模式，走出的插入模式。
你会发现，现在我的光标是一个大大的黑盒子，
而当你进入插入模式，你会发现，
它变成一个狭窄的游标就像你已经习惯了。
如果你使用的Vim的终端，你可能不会发现这是事实
因为终端不支持这种薄光标，
但如果你使用的MacVim或gVim的Windows上
然后你会发现，它变成一个游标，这是一个非常快速的可视指示器。
这对你，告诉你无论你在正常模式或插入模式。
>>让我们继续前进，并尝试编辑这条线。
它使用自己的信息或不管它是补中，
以及如何做到这一点是您可以移动到空白的结束，
TYPE I进入插入模式，你可以退格
并输入你的名字，当你完成输入
您可以按Escape键离开插入模式，
你可以搬过来这里，类型插入，删除的是，
键入逃生摆脱插入模式​​，你可以输入：w进入
保存该文件。
您可以输入刚：w来保存文件。
您可以输入刚：Q不保存退出，
或者您可以键入：wq保存并退出。
当然，我们并不想退出，因此你可以键入：瓦特
也许这似乎有点低效先
因为移动到那个地方你不得不J型一群倍，
也许我一堆时间去那个地方，
你必须按退格一群倍，似乎真的没有效率
而通常你可能会移动你的鼠标移到那里，
双击并开始打字，当然，
事情是，当你第一次开始Vim的，你只知道这些基本的命令，
是的，这将是一个有点慢，但很快你学习一些更强大的命令，
这将允许您在整个文件更快速地移动，
你不会有这个很麻烦的使用
重复的JS和重复KS和LS等等等等。
>>到目前为止，有问题吗？固体。
返回到PowerPoint中。
现在，我们要引入先进的运动几个命令。
你经历不必键入也许我有很多或H了很多，
这里有一些更多的命令，你可以用它来更快地走动。
假设你的光标在O上的一些“这是一些文本。”
这里有5个命令，你可以用它来跨线更容易移动。
所以，^和$分别移动到开始和结束行，
在某些时候，当你学习正则表达式或其他各种事情
你会发现，这些排序约定的情况非常普遍。
在^一般是指该行的开头。
元通常指的是行的结尾。
这些都是很容易记住，同样，B，E和W，
他们容易记住的好，因为B对应到后或开始，
E对应于目的，它是字的结尾，
和w对应到下一个单词，所以w代表词。
如果你继续键入e或继续键入瓦特
你发现你可以字之间跳跃，而且它不仅仅是打字升得更快。
>>现在，接下来的事情就是操作符 - 动作模型。
其实，这是关键原因，Vim可以这么强大的一个，
并且那是因为你基本上可以组成不同的元素
为更强大的功能，所以一般
当你在Vim中做任何事情，你可以把它作为
结合运动操作。
到目前为止，我们只处理了动作，像HJKL。
他们移动你的周围，然后B和W，他们也打动你身边不同的方式，
但我们还没有去还没有能够删除的东西或改变的事情，或诸如此类的东西，
而当你把运营商提供的运动那么你就能够有
更强大的效果，因此，例如，
如果我想删除2个字，我可以用d表示删除操作员，
我可以添加一个2来表示我要删除2个字，
然后我有一个运动。
我可能包括瓦特说删除2个字。
我可以使用类似J可说删除下调2倍
并删除2行我下面。
我可以说D2B删除向后两次，
并有比那些我在这里表现得更加运动
真的，真正使您的Vim编辑功能更强大。
>>这些都是一些最流行或最常用的运算符
而且很容易记住。
D表示删除，C改变。
C是基本上是完全相同的东西改变，只是
当你自动使用C你得到把进入插入模式之后。
通常，当你使用删除您从正常模式下使用它，
你删除你留在正常模式下的东西后。
但是，如果你想改变的东西，你可以使用C
删除的东西，然后立即进入插入模式
这样你就可以开始输入文字和修复的东西。
Y是为粘贴。
它基本上是复制的Vim的概念。
例如，如果我想复制下一个2的话我可以做Y2W或类似的东西，
和v是用于高亮显示，基本上。
还什么是真正酷的是，如果你输入一个操作符两次
它会作用于整行，所以如果我要删除一整行
我可以输入dd来删除整行，
或者，如果我想复制整行，我可以使用yy或类似的东西。
>>让我们来试试这个更多一些。
这里有一个在这里锻炼一个先进的移动运营商，以及
甚至一些其他的事情我不打算在今天将PowerPoint覆盖，
但你可以随意查看他们后来和玩弄他们
并熟悉它们。
操作符与动作。
例如，假设有你只是想在句子中删除这些2个字。
什么，你会想要做的就是你要确保你的
光标在要删除的第一个字的开头，
您可以输入D2W，它将删除那些2个字给你。
并使用这个确切的命令，D2W，似乎有点麻烦
和毫无意义的，但它应该表达的想法
您可以以防万一撰写这些不同的东西，也
你碰巧是在这种情况，那么你就可以最终使用DW或D2W，
这点我偶尔使用。
DD和CC我用得更频繁，因为你可以在整个线采取行动。
>>例如，让我们说我有这样的随机列表在这里，
也许我想删除，说哈士奇，因为它不适合就行了，只是因为，
我不希望它进入插入模式之后。
我想删除它，在这种情况下，我可以键入日，
并且，将删除整行。
但是，假设现在有，我要删除这个其他线路，
但我也想修复它，并重写它，在这种情况下，我会尝试像CC，
并删除整条生产线，但使我在插入模式下，你可以看到，
我可以从那里修复它。
而且有很多很多不同的方式，你可以结合运营商和议案，
和您使用Vim越来越多的您更多地了解不同的方式
您可以使用这些命令，你会变得越来越好。
真棒，现在这里有一些其他杂七杂八的命令
这也是非常非常常用的，也将帮助你成为在Vim的更好。
>>比如，我们谈到了小写字母V的视觉高亮显示。
我们也可以使用大写V的视线高亮。
这样，你可以很容易地突出在整个时间线等等。
您可以使用O当你在正常模式下，基本插入新行
线下你目前并付诸插入模式开始打字。
您可以使用小写字母x删除的字符这是你的当前光标下。
您也可以使用u撤消，这是种不错的，
您也可以使用大写字母A追加到当前行的末尾，
所以也许你的光标就行了某个地方，你要添加到该行的末尾。
然后，您可以键入大写的A，立即跳转到该行的末尾
并进入插入模式，这样你可以添加到该行的末尾。
>>我觉得我有一些更多的练习了，我们可以尝试一下。
事实上，我没有，我没有。不是那些。
但是，我们有下一节我们将看到一些更多的练习。
但是，这些你可以尝试自己为好。
例如，如果你在正规的V型，你会得到你已经习惯了喜欢这个经常高亮。
如果您在首都V型，你可以得到全系强调这样的，
或者如果我输入的邻它基本上会打开一个新行对我来说，这是种不错的。
X I可以用它来删除字符上的光标。
我可以按x一群倍和删除的东西。
我可以按u撤消了这一切。
A，我可以键入立即到该行的末尾，
我也包括了许多很好的钥匙
您还可以看看介绍之后，学习一些其他命令。
>> [学生]有什么替代呢？
[布兰登L.]更换也很酷
基本上，如果你去的地方 -
你有没有，人们并不真正使用它那么多了，这些天，
但你们见过在Microsoft Word中，如果您键入插入
你突然进入这个奇怪的模式，你输入的每一个字符
基本上取代了下一个字符？
我不知道，如果你们已经见过了。
这是类似的。
例如，如果我想覆盖什么我现在有出于某种原因
我可以输入大写的R，而现在我会在替换模式下，你可以在左下角看到。
如果我输入的东西它覆盖的东西，我也可以退格，这是一种很酷的，
我可以撤消。
我不使用，很多时候，但每一个现在，然后它变得得心应手。
>>让我们来谈谈文本对象，这是我的一个关于Vim喜欢的东西，说实话。
文本对象基本上都是定义某种文本块的这个概念
您的文本文件里面，我就去了这些键第一，
然后我会给你一些示范让你更充分地明白这意味着什么。
W是指一个单词，如文本对象作为一个词，
所以有些话，你通常知道，
如果有标点符号的字旁
那么它将不包括标点符号一般。
但是，举例来说，如果您要包含标点符号由于某种原因
或者你正在做的事情，这不是英文，你要包括
所有由空白划定的字符
您还可以使用资本W到得到的四周空白的一切。
您也可以使用括号来引用文本对象
这是一组括号内。
你可以做同样的事情用方括号，尖括号，
花括号和引号为好，最后，
您还可以使用T指一些标记。
>>让我来告诉你如何实际发挥出来。
例如，这是我在我展示的第一个例子。
有在这句话中的一些词，我想改变，
我们聊大约W被用作运动，
但你也可以把它作为像这样的文本对象。
例如，一个方法，我可以改变奥巴马的名字或基本修改
是我可以去这个字和类型的开始在C的变化和w代表词，
并且，将删除整个单词并把它变成插入模式。
但它是非常恼人的，让我有去的话所有的时间的开始。
这真的很烦人。我不希望有这样做。
其实我可以在里面他的名字在任何地方
并在CIW，而i代表内心，
所以，如果我输入CIW它代表改变一个字，
或者换句话说，改变我目前里面的字，
它会给你确切的同样的效果。
你可以解决这个问题。
>>同样，也许我有一些像这样的情况下，
其中由于某种原因，也有一些分隔符或者类似的东西，
或者有一些标点符号，我想删除整个事情。
如果我输入CIW它会​​删除什么这些定界符，
但我想拿到的四周空白整个事情，
所以我可以使用CIW删除整个事情。
我会输入5，做同样的事情，并在六人。
同样，如果我想改变的东西，在括号中
我可以在CI型）删除一切的括号内
然后填写任何我想做的事情，如int的argc，不管你想要做什么，
同样，同样的事情引号。
我可以修复文本的引号里面，
而且我还可以改变的事情，是标签内。
这是否有道理？
>>你可以做的另一件事情是你没有用c。
您也可以使用d如果你想删除什么这些标签里面。
如果我要删除一个标签内的文字，我可以使用DIT删除该标签。
我也可以用维生素突出什么，在标签内，例如。
另一件事是，而不是用我在中间，你也可以使用，
这代表所有的，所以记住，如果你使用我会参考文本对象
或使用的包含在定界符文本对象，
但如果您使用的是它将包括文本以及作为分隔符本身。
例如，如果我想强调这个文本及周边标签
我可以使用增值税，V为视觉亮点，一为all，然后吨的标记。
你可以做这样的事情为好。
也许我要删除这个google.com与它周围的引号为好，
我可以使用类似哒“删除所有的，例如。
>>到目前为止，有问题吗？
我知道我对你倾倒了大量的Vim命令的全部一次，
这基本上是因为我要揭露你的所有不同的命令
给你介绍了这些命令在Vim中。
但是，当你回去什么事情要发生的是
你将不得不慢慢地拿起这些命令一个接一个。
你不想压倒自己，因为那是过于庞大。
如果你想拿起Vim你要真正做的是
开始第一个基本集，我已经打破它分为教训你
使您更容易遵循，并尝试和掌握每一个命令集
一个接一个，每次一个。
这是太多的事情要做面面俱到，所以当你回去是你应该做的
去的第一课，这是HJKL，插入模式，逃进正常模式，
和保存并退出，而这一切你真的需要在Vim中生存，
并获得非常，非常舒服。
以后一旦你很舒服的那几天
你应该移动到更先进的运动运营商，
更先进的运动，并在给运营商等等等等。
>>我知道我经历了很多，但我希望得到你接触到了很多不同的东西。
但是，如果你准备好迎接挑战，我可以告诉你
如何使用大多数我们今天刚刚获悉把这一切放在一起，
你也可以跟着，如果你想，
但是我创造了一些随机的运动。
假设我们有某种名册这样
在那里你有这些块用别人的名字，
房子，年，浓度和诸如此类的东西，
你想添加自己的新条目。
什么是为你做这一点的最好方法是什么？
让我们像这样做。
我们为什么不首先强调这个块。
你会选择它，我们可以按y键猛拉它，
所以现在我们基本上可以复制和粘贴第一这个模板
而不必从头开始重写了整个事情。
现在，我会按J键向下一堆次下井，
我会按p来粘贴。
也许我会加上一个空格一些额外的线条，
并让我们说现在我想改变你的名字的人。
然后我就可以去这里并在C2W像以前一样改变这个名字。
鲍勃·琼斯，谁知道。
也许，如果我想改变房子我可以去到中间位置
和类型的CIW，把卡博特众议院。
>>这里可能是，您可能要考虑使用一个例子
替换模式下，如果你想改变你的毕业一年，
或者我们也可以使用CIW为好。
不要紧
也许你想改变你的专业。
而这就是你要做的。
也许我会给你什么，我可能会做一个示范
如果我是，如果你继续学习Vim的更高级的命令
因为我们几乎没有划伤表面在这里，
我可以做这样的编辑速度甚至超过了我在这里向您展示
因为我知道更多的命令，我还没有得到一个机会展示你今天。
例如，如果我想强调这我能做到它这样，
向下移动。
我已经添加了我自己的映射
基本上自动突出显示的东西对我来说
我可以，我不知道。
我的意思是，这只是想告诉你，你可真，真
开始编辑东西比较快，尤其是当你把所有这些不同的领域，
而且通常你可能会做的是那种一下
并强调，然后键入。
你可以做的一切一下子，复制和粘贴，
向上和向下移动的文件之间，
刚刚划定的东西，格式化的东西。
这一切都可以在Vim的多，更快速地完成。
>>最后的一点点东西，我认为可能是非常好的，
这是查找和替换。
那些你们谁使用Gmail的快捷键
你也知道，如果你键入/它发送到你的搜索框，
而在很多不同一般的应用程序，你会发现斜线
也许控制斜线或是与斜线
将会把你带入某种搜索模式，
而这也主要来自Vim的本质
因为斜线运营商或斜杠命令允许你输入
某种形式的字符串，你可以用它来在文档中搜索。
你可以n和资本n转到下一个和以前发生的，
你也可以使用类似的搜索和文档内更换。
我给你什么可以做一个示范。
>>也许如果我想找到这个文件中的字符串抽出的所有实例
我可以键入/猛拉，因为你可以在左下角看到，
当我输入输入它强调所有实例。
我可以使用基本上n到来回跳转所有这些不同的实例之间，
让我们假设我要搜索和替换抽出一些随机单词
这也是在文档中。
我可以按：开始输入在Vim某种命令，
一些命令，这比走动更复杂
或删除或类似的东西。
我会键入％符号来引用我想用这个替换命令
在整个文档。
键入以s为替换。这来自于珍珠本质。
而这一个命令，你会发现珍珠一个非常标准的命令
而不是和其他编程语言，你会
可能会开始学习，因为你做更多的计算机科学，
我基本上可以使用/在我要查找和替换的单词键入/，类型
然后键入另一个/在什么的话，我想替换这个词型。
谁知道，也许nyancat。
我这样做，然后你会看到一切都得到了更换。
>>但是你会发现，有这个词在这里。
由于某种原因，我们的部分抽出的实例将被替换，但不是全部
那是因为路这样的说词已经写入
不仅在Vim的，但在其他地方是，当你运行该命令替换
它只会替换每一行中的单词的第一个实例，
所以如果我想其实在替换每一行字的所有实例
然后我必须做同样的事情，但将银旗在最后，
这代表全球，然后，将实际
替换所有实例。
而一旦你学会了正则表达式，那里实际上是一个CS50研讨会
正则表达式，所以如果您想了解正则表达式
你也可以采取座谈会，了解更多。
>>但是例如，让我们说我有一个这样的名称的列表，
我想，而不必姓，逗号，名字重新排列，所以
我想重新安排它，所以它说名字，空格，姓氏。
实际上，你可以使用此命令在这里
从根本上为你做的，所以你可以在这里看到
我们先从一个s，这意味着我们想要做一个查找和替换，
然后我添加了一个标志称为\ V，这是一种叫这个神奇的标志
在Vim里，让您更轻松地做正则表达式。
然后从那里我们基本上匹配任何一行
即形式的一组字，逗号，空格，和一组单词或一组字母。
\ W +基本上是指一个或多个字符，
而括号是用来捕获这些群体
所以我以后可以参考它们。
正如你所看到的，也就是说，一旦这些捕获2块
这是一个逗号，空格分隔
那么我们要取代它的是我用\ 2 \ 1
参考以前被抓获的话
在实际find命令，
等\ 2是指任何被包含在第二组括号，
\ 1是指任何被包含在第一组括号，
正如你所看到的，我把2 1以空格分隔前
尝试和姓氏前移动的第一个名字。
这是否有道理？
>>而我所能做的就是，我可以隐藏这些第一次，所以我只能在这些线路上运行此命令，
然后我会在键入此命令。
你可以看到它不正是因为划分。
再次，这是勉强划伤表面，
如果你去正规表达式研讨会话，我敢肯定你会学习
有更多不同的东西，你可以使用正则表达式做，
这基本上开始暗示你真的可以用Vim做
如果你真的开始成为它的主人。
也许你要重构的东西，你想找到的所有实例
的一些功能如下几种命名模式。
你想改变这种状况的命名方式。
你可以写一些像这样做，对你sort命令的，
这就是灵活性的那种你可以在Vim中得到
那你只是不会得到在其他的文本编辑器。
>>，基本上涵盖了所有我想今天来教你在今天的研讨会上的东西，
但同样，我真的想强调的是，如果你想拿起Vim的
这是事实，有一个在一开始就稍高的学习曲线。
在一开始你会略显不足生产力
比你可能会在其他方面，但如果你坚持下去
在数天或数周，取决于你学习的速度有多快，
你会变得非常非常快，我想给你示范
关于什么的Vim能够，但我并没有真正得到一个机会向您展示
当我常举例来说，在课堂上我输入了我的笔记用Vim会发生什么。
那是因为我可以工作，所以比我快得多的Vim与任何其他程序。
这是字面上的Vim相比其他方案2或3时生产率的提高，
不仅文字编辑的速度，而且在路上我可以在文档中移动
我可以访问我的计算机上的其他文件的方式
并跳转它们之间等等等等。
这只是一个非常非常巨大的生产力提升。
>>但是当你学习，你要确保你了解一件事的时候，
尽量不要淹没自己有太多不同的命令
因为有很多命令和很多不同的快捷方式，您可以在Vim中学习。
你要一点点回暖的时间和多年来
逐渐积累的Vim越来越大的理解。
如果您想继续了解更多，这些都是一些比较高级的主题
您可以继续了解，即使这样勉强皮毛。
以下是一些流行的插件，你可以随时检查出来和谷歌他们
和玩弄他们，如果你想，只是看到什么样的插件都在那里。
然后在这个PowerPoint演示结束时，我有一堆链接
各种资源，你可以使用来自学习。
这里有一堆不同的链接，您可以用它来开始使用的Vim。
他们有不同的教程和诸如此类的东西，
最后，这些都是一些可以使用更高级的东西
也检查出来为好，
一些屏幕的演员和Vim的一些更先进的技术
也有一些不同的部分源代码，你可以看看在GitHub上
只是为了看看别人的配置文件
还是来看看在Vim插件等等等等。
>>这就是我对你的。
[CS50.TV]