Vim

一、vim选中多行复制粘贴vim

  1. 按v进入可视模式,移动光标选中须要复制的行;
  2. 使用y复制选中块到缓冲区(剪切选中块使用d);
  3. 将光标移动到粘贴的位置,按p便可。

复制多行并粘贴到指定位置后,可能须要进行多行缩进。多行缩进步骤以下:函数

  1. 按shift+v进入可视模式,移动光标选中须要缩进的行;
  2. 使用>向右缩进,使用<向左缩进(注意使用符号<和>要按住shift,否则就变成了,和.)。

二、多行注释spa

  1. 进入命令行模式,按ctrl + v进入 visual block模式,而后按方向键选中多行,把须要注释的行标记起来
  2. 按大写字母I,再插入注释符,例如//
  3. 按esc键就会所有注释了

取消多行注释:一样 Ctrl+v 进入列选择模式,移到光标把注释符选中,按下d,注释就被删除了。命令行

三、撤销code

  • vim撤销操做:u
  • vim恢复操做:ctrl+r

四、查找替换orm

查找:按下/ 按回车定位到第一个匹配的,n下一个,N上一个,结尾加\c表示大小写不敏感(默认查找是大小写敏感)xml

查找当前单词:normal模式下按下*便可查找光标所在单词(word), 要求每次出现的先后为空白字符或标点符号。例如当前为foo, 能够匹配foo bar中的foo,但不可匹配foobar中的foo。 这在查找函数名、变量名时很是有用。it

按下g*便可查找光标所在单词的字符序列,每次出现先后字符无要求。 即foo bar和foobar中的foo都可被匹配到(至关于/foo)。io

替换::{做用范围}s/{目标}/{替换}/{替换标志},例如:%s/foo/bar/g会在全局范围(%)查找foo并替换为bar,全部出现都会被替换(g)class

做用范围分为当前行、全文、选区等等:当前行  :s/foo/bar/g

  • 全文  :%s/foo/bar/g
  • 选区,在Visual模式下选择区域后输入:,Vim便可自动补全为 :'<,'>。  :'<,'>s/foo/bar/g
  • 2-11行  :2,11s/foo/bar/g
  • 当前行.与接下来两行+2  :.,+2s/foo/bar/g

替换标记

空替换标志表示只替换从光标位置开始,目标的第一次出现:

:%s/foo/bar

i表示大小写不敏感查找,I表示大小写敏感:

:%s/foo/bar/i
# 等效于模式中的\c(不敏感)或\C(敏感)
:%s/foo\c/bar

c表示须要确认,例如全局查找"foo"替换为"bar"而且须要确认:

:%s/foo/bar/gc

 回车后Vim会将光标移动到每一次"foo"出现的位置,并提示

replace with bar (y/n/a/q/l/^E/^Y)?

按下y表示替换,n表示不替换,a表示替换全部,q表示退出查找模式, l表示替换当前位置并退出。

五、快速移动光标

  • 行首:使用键盘上的编辑键Home;也可在命令模式中使用快捷键"^"(即Shift+6)
  • 行尾:使用编辑键End;也能够在命令模式中使用快捷键"$"(Shift+4)。快捷键"$"前能够加上数字表示移动的行数。例如使用"1$"表示当前行的行尾,"25$"表示当前行的下25的行尾
  • 100j表示向下移动100行(从当前位置开始)
  • 移动到文本开头:gg
  • 移动到文本结尾:G
  • :123移动到第123行

六、多文件编辑

  • 若是没有打开vim,能够纵向分割显示: $ vim -O filename1 filename2  (横向-o)
  • 横向分割显示: :vs filename  
  • 纵向分割显示: :vsp xxx.c
  • 切换窗口:按住ctrl再按两下w,或者按住ctrl键,按一次w键,再按一次方向键

七、 记录功能

若是文件里有以下内容

stdio.h
fcntl.h
unistd.h
stdlib.h

想把它改为

#include "stdio.h"
#include "fcntl.h"
#include "unistd.h"
#include "stdlib.h"

将光标移动到第一行,而后依次执行以下:

qa                                 开始将后续的命令记入寄存器a

^                                    将光标移动到行首

i#include "<Esc>            在该行以前插入#include "

$                                   移动到行尾

a"<Esc>                         在行尾加上"字符

j                                    移到下一行

q                                   中止记录

而后按下@a就能够自动完成第2,3,4行的改变了。

相关文章
相关标签/搜索