practical

tech2023-06-28  124

Updating, to be continued

致谢前言介绍这本书的结构举例说明先学打字,再学Vim 阅读被遗忘的手册了解Vim的内置文档在页面上模拟Vim的表示法演奏的旋律

致谢

感谢Bram Moolenaar创建了Vim,并感谢所有为其发展做出贡献的人。这是一款永远不会过时的软件,我期待着与它一起成长。

感谢Pragmatic Bookshelf出版社的每个人,是你们的共同努力使这本书达到了最好的效果。特别需要感谢的是Kay Keppler,我的开发编辑,指导我写作并帮助我校改,尽管期间经历了一些痛苦和我偶尔的脾气。我还要感谢David Kelly熟练地处理了我不寻常的格式请求。

搁置------------------------------------


前言

传统观点认为,Vim有一个陡峭的学习曲线。但是我想众多vim用户不以为然。当然,最初是有困难的,但是一旦运行了vimtutor并学习了应该在vimrc中添加哪些内容的基础知识,您就可以真正完成工作了——这是一种受限制的生产力。

接下来会发生什么?互联网对此的回答是“秘诀”——解决特定问题的秘诀。当您对某个问题的当前解决方案感觉不是最佳解决方案时,您可以搜索特定的技巧,或者您可以主动阅读一些更流行的技巧。这个策略奏效了——毕竟,这是我学到的——但它很缓慢。学习*在光标下搜索单词是有帮助的,但很难帮助您像Vim大师一样思考。当我发现Practical Vim使用的是tips格式时,你可以理解我的怀疑。几百条建议怎么能完成我花了几千条的工作呢?翻了几页后,我意识到我对“tip”的定义是狭隘的。与我所期望的问题/解决方案模式相反, Practical Vim教会我们像一个熟练的Vim用户那样思考。从某种意义上说,它们更像是寓言而不是食谱。前几个技巧是关于该命令广泛适用性的经验。这是一个主要的任何熟练的Vim用户的指令,但没有指导,它是几年前,我自己来认识到这。正是因为这个原因,我对Practical Vim的出版感到兴奋。因为现在,当Vim新手问我下一步该做什么时,我知道该告诉他们什么。毕竟,Practical Vim还是教会了我一些东西。


介绍

Practical Vim是为那些想要提高vim操作水平的程序员准备的。你可能听说过,在专家手中,Vim会以思维的速度分解文本。阅读这本书是你迈向这一目标的下一步。Practical Vim是掌握Vim的捷径。它不会手把手的教你,但是初学者可以通过Vim turor(Vim.1分发的交互式课程)找到必备的知识。Practical Vim建立在这个基础之上,强调核心概念并演示习惯用法。

Vim是高度可配置的。但是,定制是一件个性化的事情,因此我尽量避免建议哪些内容应该或不应该进入vimrc文件。取而代之的是,Practical Vim关注于编辑器的核心功能,即始终存在的东西,无论您是在远程服务器上通过SSH工作,还是使用GVim的本地实例,并安装插件来添加额外的功能。掌握Vim的核心,您将会得到一个跨平台的超强文本编辑器。

这本书的结构

Practical Vim 是一本recipe book(参考书 暂且这样翻译)。它不是设计用来从头读到尾的。(我的意思是它!在下一章开始时,我建议你跳过它,直接跳到行动部分。)每一章都是与主题相关的技巧的集合,每个技巧都演示了一个具体的功能。有些tips是独立的,有些tips则依赖书中其他的材料。这些tips是相互参照的,所以你可以很容易地找到所有东西。

Practical Vim并不会让你从新手到达高级水平,每一章都是如此。缺乏经验的读者可能更喜欢先通读一遍书,只阅读每一章的早期技巧。更高级的读者可以选择关注后面的技巧,或者根据需要阅读此书。

举例说明

在Vim中,完成任何给定任务的方法总是不止一种。例如,在第一章,Vim的方式,在第1页,所有的问题是设计来说明dot command的应用,但他们中的每一个也可以用:substitute解决。

看到我的解决方案,你可能会想,“这样做不是更快吗?”你很可能是对的!我的解决方案说明了一种特殊的技术。看看它们的简单之外,试着找到你每天面对的问题的相似之处。这就是这些技术可以为您节省时间的地方。

先学打字,再学Vim

如果你必须低头才能找到键盘上的按键,学习Vim的好处不会很快显现。学习盲打(touch type)是必须的。

Vim的祖先/历史可以追溯到经典的Unix编辑器vi和ed(见第53页关于Vim及其家族的词源)。它们在鼠标和点击界面出现之前就已经存在了。在Vim中,一切都可以通过键盘完成。对于盲打用户来说,这意味着Vim可以更快地完成所有任务。

阅读被遗忘的手册

在 Practical Vim中,我通过展示例子而不是描述它们来进行演示。这对于书面文字来说并不容易。为了显示在交互式编辑会话中采取的步骤,我采用了一个简单的表示法,它并排说明击键和Vim缓冲区的内容。如果你渴望跳转到行动,你可以安全地跳过这一章现在。它描述了在 Practical Vim中使用的每一种约定,其中许多约定您将发现是不言自明的。在某些情况下,你可能会遇到一个符号,想知道它代表什么。当这种情况发生时,请回过头来查阅本章的答案。

了解Vim的内置文档

了解Vim文档的最好方法是花时间在其中。为了帮助解决这个问题,我在本书中中包含了进入Vim文档相关条目的“超链接”。例如,这里是Vim tutor的超链接::h vim tutor。

这个图标有两个功能。首先,它起到路标的作用,吸引人们注意这些有用的参考资料。其次,如果您是在一个连接到互联网的电子设备上阅读本文,您可以单击该图标,它将带您到Vim在线文档中的相关条目。从这个意义上说,它确实是一个超链接。

但如果你读的是纸质版的书呢?不要担心。如果已经安装了Vim,只需输入在图标前面命令即可。

比如,键入:h vimtutor(:h是:help命令的缩写)。可以将此看作vimtutor文档的唯一地址:各种URL。从这个意义上说,帮助引用是一种指向Vim内置文档的超链接。

在页面上模拟Vim的表示法

Vim的modal interface(模式接口)使它有别于大多数其他文本编辑器。我们可以将Qwery键盘比作钢琴键盘。钢琴家一次演奏一个音符就能弹奏出旋律,他或她可以同时按下几个键发出和弦。在大多数文本编辑器中,键盘快捷键是在按住一个或多个修改器按钮(如控制键和命令键)时按下一个键触发的。这是Qwerty键盘上弹奏的和弦。

Vim的一些命令也可以通过演奏和弦来触发,但是常规模式命令被设计为作为一系列击键输入。Qwerty键盘相当于在钢琴键盘上弹奏一段旋律。Ctrl-s是表示弦键命令的常用约定。它的意思是“同时按Ctrl键和s键”。但是这种约定并不适合描述Vim的模式命令。在这一节中,我们会碰到在 Practical Vim中用来介绍Vim用法所使用的符号。

演奏的旋律

在正常模式下,我们按顺序输入一个或多个击键来编写命令。这些命令如下:

NotationMeaningx按下xdw先按d,再按wdap先按d、a,再按p

这些序列大多涉及两到三次击键,但也有一些较长。破译Vim的常规模式命令序列的含义可能很有挑战性,但是通过练习您会变得更好。

最新回复(0)