GVIM 工具指南

一、GVIM工具设置

Gvim的设置分两种:1. 临时设置,2. 默认设置。

配置Gvim只需修改Gvim配置文件即可,在Linux中,配置文件的地址是~/.vimrc,若没有该文件直接创建即可,我们可以直接输入`gvim ~/.vimrc来进行配置。

1. 设置显示行号

set nu

2. 设置主题,这里的desert是主题的名字,我最喜欢用的主题是desert,大家也可以换成其它主题

colorscheme desert

3. 设置字体主题和大小,这里的Monospace是默认字体的主题,也就是如果只想改变字号的话就填这个即可,字号前有个空格

set guifont=Monospace\ 14

 二、GVIM中常见的模式

1.Vim常用模式.

   命令模式(command-mode)

   插入模式(insert-mode)

   可视模式(visual-mode)

   正常模式(normal-mode)

2.如何进入这些模式

①.正常模式

正常模式主要用来浏览和修改文本内容的

一般的,打开Vim都是正常模式。在任何模式下,只要按下 Esc 键就可以返回正常模式。

②.插入模式

插入模式则用来向文本中添加内容的

i    在光标所在字符前开始输入文字并进入插入模式

a   在光标所在字符后开始输入文字并进入插入模式

o   (字母o) 在光标所在行的下面单独开一新行来输入文字并进入插入模式

s   删除光标所在的字符并进入插入模式

I   在行首开始输入文字并进入插入模式。此行首指第一个非空白字符处。如果行首有空格,则在空格之后输入文字并进入插入模式

A  在行尾开始输入文字并进入插入模式。不必管光标在此行的什麽地方,只要按 A 就会在行尾等着您输入文字。

O (大写字母O) 在光标所在行的上面单独开一新行来输入文字并进入插入模式。

S   删除光标所在行并进入插入模式

③可视模式

可视模式相当于高亮选取文本后的普通模式。

可视模式具有子模式,以行为单位进行选取的可视行模式,使用“V”键进入(也就是Shift+v);和以块为单位进行选取的可视块模式,使用“Ctrl+v”键进入。

④命令模式

命令模式则多用于操作文本文件(而不是操作文本文件的内容),例如保存文件;或者用来改变编辑器本身的状态,例如设定多栏窗口、标签或者退出编辑器。

三、Vim常用操作

1、跳转翻页

在命令行下直接输入:行号 比如跳到500行,输入:500即可

:101       跳转到101行

Ctrl+f     向下翻页

Ctrl+b    向上翻页

Ctrl+d    向下翻半页

Ctrl+u    向上翻半页

ctrl+e    向下滚动一行

ctrl+y    向上滚动一行

n%       到文件n%的位置。

zz        将当前行移动到屏幕中央。

zt        将当前行移动到屏幕顶端。

zb        将当前行移动到屏幕底端

2、整体缩进的操作

在命令行模式下,按住shift+v进入可视行选择状态,使用shift加上下左右方向键选择好整体的代码块,然后再按住shift+>或者shift+< 向右或者向左缩进即可整体缩进。

3、Vim多行缩进技巧

首先进入命令状态,然后按v进入visual状态,一定要在可视状态,选择多行()注意这里的选择可不是用鼠标选择,而是使用shift+方向键进行选择,用>或<缩进或缩出

4、撤销命令

命令模式下按 u撤销

返回  ctrl+r

5、光标移动

0      移动到行首

w      光标以单词向前移动 一直按w

nw    光标向前移动n个单词光标到单词的第一个字母上

B      移动到上一个单词开头,忽略标点

Enter  把光标移至下一行第一个非空白字符

b      与w相反

^      移动光标到行首第一个非空字符上去

$      移动光标到行尾第一个非空字符上去

%     移动到与制匹配的括号上去(),{},[],<>等。

nG     跳转到第n行。

可视模式

v        可视模式

V        选择行  shift+v

CTRL-V or CTRL-Q     选择块

G    移动到最后一行

gg  移动到第一行

h   左移一个空格

l   右移一个空格

下一行    j

上一行    k

E  跳到单词词尾 e 也是词尾 有区别  很有用   大写E跳跃跨度大

fc  把光标移到同一行的下一个c字符处

Fc  把光标移到同一行的上一个c字符处

M  把光标移到屏幕中间一行。

L  把光标移到屏幕最底端一行。

6、复制粘贴

y        复制选择的内容

ye        复制一个单词 (光标要在首字母)

yw      复制一个单词(光标到单词尾)

yaw      复制光标当前所在处的单词

y0      复制当前光标到行首

y$      复制光标到行尾

yy        复制当前一行

5yy     从当前行开始复制5行

viw        选中光标当前所在处的单词

yiw        复制光标当前所在处的单词

p        粘贴

x        可视模式下,x为剪切选择内容:%y+ enter   复制全部内容

:35,45 y+     复制特定行  复制35到45行

7、删除操作

dw        删除一个单词,需将光标移到单词的第一个字母上,按dw,如果光标在单词任意位置,用daw

dd        删除一行

cw        修改一个单词

D      删除当前行光标后内容

d^     删除光标到行首的字符

d$     删除光标到行尾的字符

ndd     删除当前光标n行

:g/^\s*$/d                             删除只有空白的行

删除光标后的所有内容    直到文章结尾      dG

删除光标前的所有内容    直到文章开头      dgg

删除具有特定关键词的行

:g/state/d   删除具有单词state的行     

:%d 删除全文

:100,200 d   删除100行到200行

d1G或dgg   剪切光标以上的所有行。

dG     剪切光标以下的所有行。8撤销返回操作

命令模式下:

u     返回

CTRL+R   撤销

8、显示你曾经输入过的字符

在命令模式下:按ctrl+p 或者 键盘的向上箭头

9、保存退出

存盘:

:q!         :不存盘退出

:e!         :放弃修改文件内容,重新载入该文件编辑

:wq         :存盘退出

:w            :存盘

:browse o    :用浏览器打开文件

:browse w    :用浏览器保存文件

:wqa        :保存并关闭所有文件

:qa            :关闭所有文件

:browse wa    :用浏览器保存所有文件

10、查找命令

查找

fx             :移动到一个指定的字符,单字符查找命令是最有用的移动命令之一。”fx” 命令向前查找本行中的字符 x。提示:”f” 表示 “Find”。

/pattern    :正方向搜索一个字符模式   从文件开头往结尾处搜索

?pattern     :反方向搜索一个字符模式 从文件结尾往开头处搜索

然后按n 继续向下找  按大写N向上搜索

精确查找整个单词    :如果你输入 “/the”,你也可能找到 “there”。要找到以 “the” 结尾的单词,可以用:

/the\>

“\>” 是一个特殊的记号,表示只匹配单词末尾。类似地,”\<” 只匹配单词的开头。 这样,要匹配一个完整的单词 “the”,只需:

/\<the\>

把光标放到某个单词上面,然后按*号键,表示查找这个单词。”#” 命令在反向完成相同的功能。

查找整个单词:/\<word\>

:set hlsearch         :高亮显示查找到的单词

:set nohlsearch     :关闭改功能

:set ignorecase  忽略大小写的查找

:set noignorecase  不忽略大小写的查找

11、 替换命令

[addr]s/源字符串/目的字符串/[option],我们可以看出addr和option是可以缺省不填的,他们各个字段的意思是:

 [addr]代表检索范围,缺省表示当前行,1,10表示1到10行,% 代表整个文件等价于1 , $  ,而  . , $ 代表当前行到文件末尾

 s代表替换的意思

 option代表操作类型,缺省只对第一个匹配的字符进行替换,g代表全局替换,c代表操作时确认,gc可以组合使用:%s/^/#/         全文的行首加入 # 字符,批量注释的时候非常有用

:%s= *$==        将所有行尾多余的空格删除

:g/^$/d          这里的g表示对文章中所有符合要求字符串执行替换操作,^表示行首,$表示行尾,整个意思是:将所有的空行删除命令模式:

简单指令

有无/g:有/g  表示所有,无则表示每一行第一个

:%s/string1/string2   在当前文件中,用string2 替换每一行的第一个string1  无需确认

:%s/string1/string2/g   在当前文件中,用string2 替换每一行的所有string1  无需确认

:%s/string1/string2/c  在当前文件中,用string2 替换所有的string1  需要一个一个确认

:line1,line2 s/string1/string2/g:在行line1至line2中间将所以string1替换为string2

:line1,line2 s/string1/string2/c:在行line1至line2中间将string1替换为string2,需要一个一个确认

:n, $s/sring1/string2 / 替换第 n 行开始到最后一行中每一行的第一个 string1为 string2 (空表示为最后一行)

:., $s/sring1/string2 /  替换当前行到最后一行中每一行的第一个 string1为 string2 (空表示为最后一行)

12、内容转移

写文件

:n1,n2 write temp.c 将本文件中的n1,到n2行写入temp.c这个文件中去

:n1,n2 co n3         :将 n1 行到 n2 行之间的内容拷贝到第 n3 行下。

:n1,n2 m n3         :将 n1 行到 n2 行之间的内容移至第 n3 行下。

:n1,n2 d             :将 n1 行到 n2 行之间的内容删除。

:n1,n2 w filename     :将 n1 行到 n2 行之间的内容保存到文件 filename 中

使用剪贴板

"*y    :将内容复制到剪贴板

"*p    :将剪贴板的内容粘贴出来

13、 文件切换与打开

同时打开多个文件 :gvim file1 file2 file 3

切换到下一个文件:bn  

切换到上一个文件:bp

14、 移动命令

查找替换:

way1:

/【word】 :查找某个word

? 命令功能与 “/” 的功能类似,但是是反方向查找

cw【newword】:替换为新word

n: 继续查找

.: 执行替换

way2:

:s/string1/string2/g:在一行中将string1替换为string2,g表示执行用c表示需要确认

:num1,num2 s/string1/string2/g:在行num1至num2中间将string1替换为string2

:1,$ s/string1/string2/g:在全文中将string1替换为string2

如果替换时需要确认,在g后面加上一个c(confirm)

如果要全文搜索,在”s/”前面加上一个%,例如”:% s/”

15、删除重复行

http://blog.gdsyzx.edu.cn/sense/?p=1129

16、列插入

1: 定位光标

2: CTRL+v             #进入Visual Mode。

3: j                       #选择要在哪些行加入?!

4: I                       #一定是大写!

5: 输入要插入的文本

6: ESC 

17、多界面操作

命令   :vs  多个竖立界面

命令   :sp  多个横向界面

目录跳转选择    :E

上跳行       W

下跳行       B

界面跳转:   ctrl+w   再按w或者方向键19 查看行号:set nu

18、 排序:sort

19、 标记:ma `a

使用标记标注位置:便于快速跳转

 m{a-z}: 标记光标所在位置,局部标记,只用于当前文件。

 m{A-Z}: 标记光标所在位置,全局标记。标记之后,退出Vim, 重新启动,标记仍然有效。

 `{a-z}: 移动到标记位置。

 ‘{a-z}: 移动到标记行的行首。

 `{0-9}:回到上[2-10]次关闭vim时最后离开的位置。

 “: 移动到上次编辑的位置。“也可以,不过“精确到列,而”精确到行 。如果想跳转到更老的位置,可以按C-o,跳转到更新的位置用C-i。

 `”: 移动到上次离开的地方。

 `.: 移动到最后改动的地方。

 :marks 显示所有标记。

 :delmarks a b – 删除标记a和b。

 :delmarks a-c – 删除标记a、b和c。

 :delmarks a c-f – 删除标记a、c、d、e、f。

 :delmarks! – 删除当前缓冲区的所有标记。

 :help mark-motions 查看更多关于mark的知识。

20、插入

i: 在光标前插入;一个小技巧:按8,再按i,进入插入模式,输入=, 按esc进入命令模式,就会出现8个=。 这在插入分割线时非常有用,如30i+<esc>就插入了36个+组成的分割线

 :r filename在当前位置插入另一个文件的内容。

 :[n]r filename在第n行插入另一个文件的内容。

 :r !date 在光标处插入当前日期与时间

21、文本对象

 aw:一个词

 as:一句。       :连续没有空格的多行

 ap:一段。       :连续没有空格的多行

 ab:一块(包含在圆括号中的)。例化时用到

y, d, c, v都可以跟文本对象

22、模式匹配:执行操作

还有一种比替换更灵活的方式,它是匹配到某个模式后执行某种命令,

语法为 :[range]g/pattern/command

例如 :%g/^xyz/normal dd。

表示对于以一个空格和xyz开头的行执行normal模式下的dd命令。

关于range的规定为:

 如果不指定range,则表示当前行。

 m,n: 从m行到n行。

 0: 最开始一行(可能是这样)。

 $: 最后一行

 .: 当前行

 %: 所有行

23、分屏操作

 vim -o file1 file2:水平分割窗口,同时打开file1和file2

 vim -O file1 file2:垂直分割窗口,同时打开file1和file2

:E 跳到目录 选中文件 o打开文件

Ctrl+W ctrl+w 切换窗口

24、水平分割

:sp           水平分割出同样大小的文件

:sp filename   水平分割窗口,并在新窗口中显示文件filename

:nsp         水平分割出一个n行高的窗口

ctrl+w +f     水平分割出一个窗口,并在新窗口打开名称为光标所在词的文件

25、垂直分割

:vs           把当前窗口分割成竖直分布的两个窗口

:vne         垂直分割出一个新窗口

26、大小写切换

选中:gu 小写 gU 大写

:m,n  gU   从m行到n行 全部大写

单词virtul全部大写:??

某个单词大小写切换:ESC==>鼠标双击单词==>gu 或者gU

27、缩进缩出-自动排版

正常模式下,按两下>;光标所在行会缩进。

如果先按了n,再按两下>;,光标以下的n行会缩进。

对应的,按两下<;,光标所在行会缩出。

如果在编辑代码文件,可以用=进行调整。

在可视模式下,选择要调整的代码块,按=,代码会按书写规则缩排好。

或者n =,调整n行代码的缩排

:130,140 >>   第130行到140行缩进

28、文件目录

:pwd 显示当前文件目录

29 、改写文件

 c[n]w: 改写光标后1(n)个词。

 c[n]l: 改写光标后n个字母。

 c[n]h: 改写光标前n个字母。

 [n]cc: 修改当前[n]行。

 [n]s: 以输入的文本替代光标之后1(n)个字符,相当于c[n]l。

 [n]S: 删除指定数目的行,并以所输入文本代替之。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值