`
BradyZhu
  • 浏览: 249542 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Vim使用进阶

 
阅读更多

作为一个使用vim挺长时间的人,现在来写这篇东西确实是尴尬的,就像很多大神们说的,vim是世界上最好用的编辑器,没有之一。然后前两天又重新看了看vim的那些功能和使用方法,更觉得这么长时间使用vim却远没有用到它的强大之处。所以这里对常用的vim功能和用法做一个总结,自己时常也能翻看熟悉一下。

看过学习vim使用方法的几条建议,也一并写来警示一下自己吧:学习vim在开始时是痛苦的;需要时间和不断地练习,就像你学习一个乐器一样;不要期望你能在3天内把vim练得比别的编辑器更有效率(像博主这种应该需要两周以上的苦练)。

首先需要说明一下的是,vim有四种基本模式:

1)命令行模式:键入的内容被解释为命令。

2)插入模式:键入的内容被插入文件。

3)可视模式:通过键盘选择、剪切、复制文本。

4)Ex模式:使用更多命令(例如:存储文件、替换文本等)。

博主最先接触vim的时候,也试图像其他的编辑器一样使用,即进入到插入模式后进行笨拙的操作。而事实上,vim真正强大和快速的地方在于其命令行模式。在真正熟练vim之后会发现,使用插入模式的时间越来越少,而越来越倾向于使用便捷的命令行模式。

一、关于打开关闭和模式切换

可以通过以下命令启动Vim:

$vimtest.txt

然后文档被打开了,但还不能进行编辑,此时Vim处在命令行模式。该模式下可以使用键盘执行Vim命令。

要插入文本,将光标定位至插入位置(下几节中会说明高效的光标定位方法),然后按i进入插入模式。

按Esc即可返回命令行模式。

编辑完毕后输入:wq再回车可以保存退出,或者:q!可以不保存退出。

在命令行模式下,有以下一些值得注意的地方:

1):e<path/to/file>→打开一个文件

2):w→存盘

3):saveas<path/to/file>→另存为<path/to/file>

4):x,ZZ或:wq→保存并退出(:x表示仅在需要时保存,ZZ不需要输入冒号并回车)

5):q!→退出不保存:qa!强行退出所有的正在编辑的文件,就算别的文件有更改。

6):bn和:bp→在同时打开很多文件时,可通过这两个命令来切换下一个或上一个文件。

二、关于光标移动

Vim中的确可以使用←↓↑→移动光标,不管是命令行模式下还是插入模式下,然而Vim非常不鼓励大家这么做。因为这样你需要把右手从字母区移动到方向键,严重影响效率。

强烈建议使用hjkl来移动光标,一个简单的记忆方法是j就像一个下垂的钩子,是向下移动的。

另外一些在命令行模式下常用的光标移动基本方法包括:

1)0→数字零,到行头

2)^→到本行第一个不是blank字符的位置(所谓blank字符就是空格,tab,换行,回车等)

3)$→到本行行尾

4)g_→到本行最后一个不是blank字符的位置。

5)/pattern→搜索pattern的字符串(陈皓注:如果搜索出多个匹配,可按n键到下一个)

还有一些用熟练之后很强大的光标定位功能:

1)NG→到第N行,注意G是大写的

2)gg→到第一行。

3)G→到最后一行。

4)w→到下一个单词的开头。

5)e→到下一个单词的结尾。

6)%:匹配括号移动,包括小中大括号(需要把光标先移到括号上)

7)*和#:匹配光标当前所在的单词,移动光标到下一个(或上一个)匹配单词(*是下一个,#是上一个)

8)fx:移动光标到当前行的下一个x处。x可以是任意一个字母。

9)tx:和上面的命令类似,但是是移动到x的左边一个位置。

10)Fx:和fx类似,不过是往回找。

三、删除、撤销与恢复

1)x→删除光标所在处的字符(X删除光标前的字符)。

2)d→代表你将要删除一些内容,在按下d之后,搭配移动光标的命令,可指定需要删除的内容。(dW可以删除至下一个单词,d^可以删至行首)

3)dd→删除整行。

4)cw→删除并替换当前单词。

5)u→命令行模式下撤销上一个命令

6)Ctrl+r→恢复之前撤销的命令。

四、关于可视模式

命令行模式按v进入可视模式,该模式下会高亮一些文本,可以通过光标移动选择文本。选定后按y可以复制文本,c可以剪切。之后可以使用p在光标后粘贴,P在光标前。

V是行选取模式,以行为单位进行选取。

Ctrl+v是块选取模式,可以选取一块矩形区域中的文本。

五、快速移动大段文字

在很明确的知道想拷贝或者剪切什么,其实无需进入可视选择模式。在命令行模式下使用一些快捷操作可以节省更多时间:

1)d{motion}→剪切motion命令跨过的字符到剪贴板。比如,dw会剪切一个词而dfS会将从当前光标到下一个S之间的字符剪切至剪贴板。

2)y{motion}→和上面类似,不过是拷贝。

3)c{motion}→和d{motion}类似,不过最后进入插入模式。

4)dd→剪切当前行。

5)yy→拷贝当前行。

6)cc→剪切当前行并且进入插入模式。

7)D→剪切从光标位置到行尾到剪贴板。

8)Y→拷贝当前行。

9)C→和D类似,最后进入插入模式。

10)x→剪切当前字符到剪贴板。

11)s→和x类似,不过最后进入插入模式。

12)p→粘贴

13)N<command>→重复某个命令N次

六、关于搜索和替换

Vim中有类似正则表达式的搜索查找功能,非常好用。命令行模式下,按下/,输入搜索内容,按下回车即可。n查找下一处匹配,N查找上一处。

替换文本需要使用:s/命令(注意冒号),格式为:[范围]s/[原字符串]/[新字符串]/[参数]。

命令

作用

:s/xxx/yyy/

将当前行中的第一个「xxx」替换为「yyy」

:s/xxx/yyy/g

将当前行中的所有「xxx」替换为「yyy」

:s/xxx/yyy/gc

同上,但每次替换都会询问

:%s/xxx/yyy/g

将整个文件中的所有「xxx」替换为「yyy」

可以用:g/命令匹配字符串(注意冒号),并对每个匹配执行同一操作。格式为:[范围]:g/[模式串]/[命令]。例如:

命令

作用

:g/^#/d

删除所有以「#」打头的行

:g/^$/d

删除所有空行


看过一个总结的很好的思维导图,整张图放在这里看不清,因此按照不同的操作类型拆分成多张图,列在下面了:








分享到:
评论

相关推荐

    vim使用进阶vim使用进阶vim使用进阶

    vim使用进阶vivivim使用进阶vim使用进阶m使用进阶m使用进阶vim使用进阶

    vim使用进阶:vim使用技巧、配置、命令和插件

    vim使用进阶: 在VIM中使用GDB调试 本文介绍了如何使用vimgdb补丁在vim中用gdb调试程序,同时还介绍了vim的编译方法。然而,vim只是一个编辑器,而不是一个集成开发环境(IDE),所以它对调试的支持很有限。

    vim使用进阶.PDF

    vim使用进阶系列PDF电子书籍 从入门到精通,深入学习提高你文本编辑效率。

    VIM使用进阶 pdf格式

    VIM使用进阶 一篇介绍VIM高级使用技巧的文档,pdf格式

    vim用户手册和vim使用进阶

    vim用户手册中文版,vim使用进阶,使用vim提高你的文本编辑效率,学会使用vim必须的参考资料!!

    vim使用进阶 使用vim提高你的文本编辑效率

     本系列文章介绍我自己使用vim的一些经验,主要包括vim使用技巧、vim配置、vim命令、vim 插件等内容。本篇是序言,务虚为主。  在使用vim进行软件开发之前,我使用的工具是Source Insight,相信大家并不陌 生。...

    vim使用进阶

    介绍vim的进阶使用方法,提高使用vim的文本编辑效率

    vim使用进阶pdf版

    linux下用会了vim会有很大的好处的 ,建议好好学习

    vim 从入门到精通

    vi/vim使用进阶: 使用taglist插件 本文介绍如何使用taglist插件(plugin)来查看程序中的标签(tag),并介绍了taglist插件的配置和用法。taglist插件利用Exuberant ctags程序生成标签文件,并提供像Source Insight那样...

    Vim进阶索引

    Vim使用进阶索引, 作者使用vim达20年之久, 经典之作

    vi及vim编辑器使用进阶

    自己在linux学习过程中的vi使用笔记,教你熟练使用vi及vim编辑器。 vi编辑器是所有Unix及Linux系统下标准的编辑器,美国加州大学伯克利分校的Bill Joy所创立[1] ,它的强大不逊色于任何最新的文本编辑器,这里只是...

    Vim插件与习惯

    三本书:habits_2007,Vim使用进阶,Vim-handbook-cn-72

    vim使用入门进阶教程

    文本编辑器概述 vi编辑器简介 模式切换与使用 基本操作命令 高级功能及其他选项 配置 插件使用 文本编辑器概述 vi编辑器简介 模式切换与使用 基本操作命令 高级功能及其他选项 配置 插件使用

    神器VIM配置文件进阶v1.0beta

    神器VIM配置文件进阶v1.0beta

    vim进阶.pdf

    你想以最快的速度学习人类史上最好的文本编辑器VIM吗?你先得懂得如何在VIM幸存下来,然后一点一点地学习各种戏法。

    VIM使用讲解.pdf

    vim 的使用 第一讲 • 移动光标 • VIM的进入和退出 • 文本编辑之删除 • 文本编辑之插入 • 小结 第二讲 • 删除类命令 • 其他删除类命令 • 关于命令和对象 • 对象命令的特殊情况 • 撤消类命令 • 小结 第三讲...

    advance vim tips

    vim使用进阶 使用vim提高你的文本编辑效率 目录 1. 目录 ........................................................................ 1 2. 序言 ..................................................................

    Vim+基础+进阶+使用手册+源码资源合集

    本教程的设计目标是讲述一些必要的基本命令,而掌握好这些命令,您就能够很容易将vim当作一个通用的万能编辑器来使用了 以我个人学习 vim 的经验来看,通过看文档或看其他人操作其实是很难真正学会 vim 的,你必须...

Global site tag (gtag.js) - Google Analytics