高效率编辑器 VIM-操作篇

转载 2015年11月21日 13:52:05

插入操作

“i” — 从光标所在位置前开始

“I” –光标移到当前行的行首,然后在其前插入文本

“a”– 光标当前所在位置之后追加新文本

“A” –命令将把光标挪到所在行的行尾

“o” — 在当前行的下面插入新行

“O” — 在当前行的上面插入新行

移动操作

按字移动光标

在vim中,”字”有两种含义:

a. 广义的字,它可以是两个空格之间的任何内容。如:{int k;它只有2个字,一个是{int ,另一个是k;

b. 狭义的字,英文单词、标点符号和非字母字符(如$、%、^、&、*、(、)、-、+、{、}、[、]、~、|、\、<、>、/等)均被当成是一个字。上面那一行中就包括{、int、k、;这4个字。


vim中使用大写命令一般就是指将字作为广义来对待,使用小写命令就是作为狭义对待。

1. w和W命令:将光标右移至下一个字的字首,它们的区别是:w命令,把光标移到下一个字(狭义)的字首,W命令,将把光标移到下一个字(广义)的字首。

2. e和E命令(end of word):如果光标起始位置处于字内(即非字尾处),则该命令将把光标移到本字字尾;如果光标起始位置处于字尾,则该命令将把光标移动到下一个字的字尾。

3. b和B命令(backward):如果光标处于所在字内(即非字首),则该命令将把光标移至本字字首;如果光标处于所在字字首,则该命令将把光标移到上一个字的字首.


在当前行里面有效的移动光标

很多编辑器只提供了简单的命令来控制光标的移动(比如左、上、右、下、到行首/尾等)。VIM 则提供了很多强大的命令来满足你控制光标的欲望。当光标从一点移动到另外一点,在这两点之间的文本(包括这两个点)称作被“跨过”,这里的命令也被称作是 motion。(简单说明一下,后面会用到这个重要的概念)

这里是常用到的一些命令(motion):

fx:移动光标到当前行的下一个 x 处。很明显,x 可以是任意一个字母,而且你可以使用 ; 来重复你的上一个 f 命令。

tx:和上面的命令类似,但是是移动到 x 的左边一个位置。(这真的很有用)

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

w:光标往后移动一个词。

b:光标往前移动一个词。

^:移动光标到当前行的第一个字母位置。

$:移动光标到行尾。

):移动光标到下一个句子。

( :移动光标到上一个句子。


在整个文件里面有效移动光标

*:读取光标处的字符串,并且移动光标到它再次出现的地方。

#:和上面的类似,但是是往反方向寻找。


高效的输入

使用多重剪贴板

很多编辑器都只提供了一个剪贴板。VIM 有很多。剪贴板在 VIM 里面被称为寄存器(Registers)。你可以列出当前定义的所有寄存器名和它们的内容,命令为“:reg”。最好使用小写字母来作为寄存器的名称,因为大写的有些被 VIM 占用了。

使用寄存器的命令为双引号 “。

比如:我们要拷贝当前行到寄存器 k。你应该按 “kyy。(你也可以使用 V”ky。为什么这样也可以呢?)现在当前行应该已经存在了寄存器 k 里面直到你又拷贝了一些东西进入寄存器 k。现在你可以使用命令 “kp 来粘贴寄存器 k 里面的内容到你想要的位置。

避免重复

令人惊奇的 . 命令

在 VI 里面,输入 . (小数点符号),将会重复你输入的上一个命令。比如,你上个命令为“dw”(删除一个词),VI 将会接着再删除一个词。

使用数字

y3″ 将会拷贝从当前光标到第三个出现的引号之间的内容到剪贴板。

数字是扩展 motion 命令作用域非常有效的方法。

记录宏

有时候,你会发现你自己在文章的每段或者每行都重复相同的一系列动作。VIM 允许你记录一个宏来完成你的特殊需要。

qregister:记录宏到寄存器 register,这里 register 是任意的你的寄存器的名字。比如 qa,将会记录并且把宏存在寄存器 a 里面。

q:结束宏的记录。

@register:使用存在寄存器 register 的宏。比如 @a,将会使用存在寄存器 a 里面的宏。

必须要记住的是,宏只记录了你的系列按键并且重复执行它们。它们不是魔法。因为在 VIM 里面完成目的的方法有很多,所以有时候你要小心选择命令来记录你的宏。因为它们会在所有你要执行它的地方执行。

用 VIM 写代码

VIM 是一个用来写代码的绝好编辑器,因为它有一些特性是专门为程序员而设计的。这里是一些常用的:

]p:和 p 的功能差不多,但是它会自动调整被粘贴的文本的缩进去适应当前代码的位置。试一下!

%:匹配花括号、方括号、括号等。在一个括号的上面,然后按 %,鼠标就会出现在匹配的另外一半括号处。

K:在 Man 里面查找光标当前所在处的词。

[+ctrl+d:  跳转到#define处

高效率编辑器 VIM-操作篇

虽然从很久前就开始用 VIM 了,但一直都是半调吊子,翻来覆去只用自己会的命令。最近为了提高书写代码的效率,还有 coding 时候的乐趣,又重新钻研了一下 VIM,发现了一篇很好的 VIM 入门的文...
  • u010189918
  • u010189918
  • 2014年03月31日 16:07
  • 298

高效率编辑器 VIM-操作篇[转载]

原文链接:http://jmcpherson.org/editing.html 翻译链接:http://linuxtoy.org/archives/efficient-editing-with-...
  • sambrown123
  • sambrown123
  • 2013年04月09日 11:26
  • 393

高效率编辑器 VIM-操作篇,非常适合 VIM 新手

虽然从很久前就开始用 VIM 了,但一直都是半调吊子,翻来覆去只用自己会的命令。最近为了提高书写代码的效率,还有 coding 时候的乐趣,又重新钻研了一下 VIM,发现了一篇很好的 VIM 入门的文...
  • han_jiang_xue
  • han_jiang_xue
  • 2013年07月25日 14:28
  • 516

高效率编辑器 VIM-操作篇,非常适合 VIM 新手

原文地址:https://linuxtoy.org/archives/efficient-editing-with-vim.html
  • svitter
  • svitter
  • 2014年04月28日 22:25
  • 598

高效率编辑器 VIM-操作篇,非常适合 VIM 新手

然从很久前就开始用 VIM 了,但一直都是半调吊子,翻来覆去只用自己会的命令。最近为了提高书写代码的效率,还有 coding 时候的乐趣,又重新钻研了一下 VIM,发现了一篇很好的 VIM 入门的文章...
  • overstack
  • overstack
  • 2013年07月08日 00:28
  • 650

高效率编辑器 VIM-操作篇,非常适合 VIM 新手

https://linuxtoy.org/archives/efficient-editing-with-vim.html/2 有效的移动大段的文本 使用可视选择(visual sel...
  • boyhailong
  • boyhailong
  • 2014年03月18日 09:27
  • 666

高效率编辑器 VIM-操作篇,非常适合 VIM 新手

这篇教程写了在不同工作模式下使用 VIM 的一些基本技巧——即插入模式(insert mode), 命令模式(command mode), 存取文件等。目的是帮助刚刚接触 VIM 的新手更加有效率的使...
  • gui694278452
  • gui694278452
  • 2014年10月21日 17:38
  • 262

高效率编辑器 VIM-操作篇,非常适合 VIM 新手

这篇教程写了在不同工作模式下使用 VIM 的一些基本技巧——即插入模式(insert mode), 命令模式(command mode), 存取文件等。目的是帮助刚刚接触 VIM 的新手更加有效率的使...
  • yangxt
  • yangxt
  • 2013年02月22日 21:47
  • 368

高效率编辑器 VIM-操作篇,非常适合 VIM 新手

转载地址:http://linuxtoy.org/archives/efficient-editing-with-vim.html 虽然从很久前就开始用 VIM 了,但一直都是半调吊子,翻来覆去...
  • xxbs2003
  • xxbs2003
  • 2013年07月27日 22:37
  • 447

vim-编辑器之神

vi与vim vi编辑器是所有Unix及Linux系统下标准的编辑器,他就相当于windows系统中的记事本一样,它的强大不逊色于任何最新的文本编辑器。他是我们使用Linux系统不能缺少的工具。由于...
  • gb123q
  • gb123q
  • 2017年12月16日 13:45
  • 70
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:高效率编辑器 VIM-操作篇
举报原因:
原因补充:

(最多只允许输入30个字)