VIM常用技巧总结

VIM总结

移动

词移动

  1. w移到下一个单词的词头,b移动到上一个单词的词头。

  2. 大写字母可以用来移动字符串。而不是一个单词。可以试试 W 和Bw和b

移动到一个指定的字符

  1. 本行字符查找命令 fx,f:查找命令,x:待查找的字符
  2. 3fl表示,查找本行中第三次出现字符l的位置
  3. f表示向右查找,F表示向左查找。

移动指定行

1G跳到第一行

10G跳转到第10行

50%跳转到文件中间

G跳转到最后一行

搜索

使用/来启动查找对应的字符串。查找方式是正向查找。

使用?为反向查找。

N查找下一个匹配对象。

简答的查找模式

^ 匹配行头

$匹配行末

.匹配任意单个字符,比如c.m,将匹配。“com became cumin”

匹配特殊字符

如果你想匹配点字符。可以在.前添加一个\进行转义。eg: ter\.

标记

自定义标记位置,使用m+[a-z],二十六个字母。来标记26个位置。eg:ma,标记当前位置。使用``a`,跳转到这位置。

使用:marks,来查看当前标记列表。当然有一些特殊标记。

你会注意到有一些特殊的标记,包括:

   '       跳转前的光标位置
   "       最后编辑的光标位置
   [       最后修改的开始位置
   ]       最后修改的结束位置

全局标记

如果你编辑另一个文件并在那里加了标记,这些标记都是这个文件专用的。这样,每个文件都
有一个自己的标记集,并只能在该文件中使用。

到此为止,我们都用小写字母的标记。实际上还可以使用大写字母标记,这种标记是
全局的,它们可以在任何文件中使用。例如,你在编辑一个文件 “foo.txt”。在文件的中
间 (50%) 并建立一个 J 标记 (J 表示甲):

    50%mJ

现在编辑文件 “bar.txt” 并在文件的最后一行放一个标记 Y (Y 表示乙):

    GmY

现在你可以使用 “J" 命令跳回到 foo.txt 的中间。或者在另一个文件中输入 "Y” 跳
回到 bar.txt 的末尾。

查看所有标记

:marks 

分隔窗口

:split将当前窗口的大小,分为上下两个。

:vsplit将当前窗口的大小,分为左右两个。

   CTRL-W h        跳转到左边的窗口
   CTRL-W j        跳转到下面的窗口
   CTRL-W k        跳转到上面的窗口
   CTRL-W l        跳转到右边的窗口

用 vimdiff 显示文件差异

有一种特殊的启动 Vim 的方法可以用来显示两个文件的差异。让我们打开一个 “main.c”
并插入一些字符。在设置了 ‘backup’ 选项的情况下保存这个文件,以便产生 “main.c~”
备份文件。
在命令行中输入如下命令:(不是在 Vim 中)

    vimdiff main.c~ main.c

Vim 会用垂直分割的方式打开两个文件。你只能看到你修改过的地方和上下几行的地方

标签页

你会注意到窗口永远不会重叠。这意味着屏幕空间很快会用完。这个问题的解决方法叫做
标签页。

假设你正在编辑文件 “thisfile”。下面的命令可以建立新的标签页:

    :tabedit thatfile

这会在一个窗口中编辑文件 “thatfile”,这个窗口会占满整个 Vim 窗口

你可以通过单击顶端的标签切换标签页。如果没有鼠标或者不想用它,可以使用 “gt” 命
令。助记符:Goto Tab。

在任何打开窗口的 Ex 命令前面,你都可以放上 “:tab”。这个窗口在新标签页中打开。
另一个例子:

    :tab help gt

它将在新的标签页中显示关于 “gt” 的帮助。

使用标签页可以完成更多的工作:

  • “tabonly” 命令
    关闭除了当前标签页以外的所有标签页,除非其它标签页中的改变没有保存

可视列块模式

插 入 文 本

你用 CTRL-V 进入可视列块模式,然后移动光标定义一个列块。接着输入 I 进入插入模式,并随后输入文
本。这时,你输入的内容只出现在第一行。 然后你输入 结束输入,刚才输入的字符串将神奇地出现在每一行的可视区的左边。

如果选中的块经过一个短行,并且这行没有任何内容包括在可视列块中,则新的文本不会
被插入到该行中。如下。

This is a long line
short
Any other long line

          ^^^^ 用可视列块选中的部分

追加文本

“A” 命令的效果与 “I” 命令一样,只是把文字插入可视列块的右边,而且在短行中会插
入文字。

修 改 文 本

可视列块中的 “c” 命令会删除整个可视列块并转入 “插入” 模式,使你可以开始文本,
这些文本会被插入可视列块经过的每一行。

与 “I” 命令一样,短行不会发生变化。

查找文件

假定现在你在编辑一个 C 程序,该程序有这样7行:

#include “inits.h”

你想要查看文件 “inits.h” 里有些什么。把光标移到该文件名上,并键入:

gf

Vim 就会找到并打当这个文件。

那么,如果该文件不在当前目录里怎么办?Vim 将利用 ’path’ 选项来寻找这个文

件。该选项是/系列目录名,Vim 会在其中为你寻找文件。

假设你把你的头文件存放在目录 “c:/prog/include” 里。下面这个命令把该目录加入

’path’ 选项:

:set path+=c:/prog/include

这个目录名是/绝对路径。不管你在哪儿,它都指向同一个目录。如果你已经知道要编辑的

文件位于当前文件所在目录下某个子目录里,你该怎么办呢?那样的话,你可以指定一个

相对路径。相对路径以 “.” " 始:

补 全 源 代 码

源代码文件有良好的结构。这使通过某种智能方式补全成为可能。在 Vim 中,这被称为

全能补全。在其他编辑器中,它被称为智能补全(intellisense),但这是一个注册商标。

全能补全的热键是 CTRL-X CTRL-O。显然,O 在这里代表全能 (Omni),这样方便我们记

忆。让我们以编辑 C 程序为例:

*{* ~

struct foo *p; ~

p-*>* ~`

光标在 “p->” 之后。现在键入 CTRL-X CTRL-O

为使全能补全工作, 要做一些初始化。起码,要保证打当文件类型插件。你的 vimrc

文件应该包含形如:

filetype plugin on

或:

filetype plugin indent on

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值