vim常用命令

1. 打开保存文件

:e <filename>               打开文件

:saveas <filename>       另存为

:ZZ                              等于:wq 保存退出

:bn                              切换到下一个打开的文件

:bp                              切换到上一个打开的文件

:!                               执行shell命令

2. 进入输入模式

i                                  从光标当前位置开始输入文件。

a                                 从目前光标所在位置的下一个位置开始输入文字

I                                  行首插入。

A                                 行尾插入。

o                                 插入新的一行,从行首开始输入文字。

O                                在光标所在的行的上面插入一行。

s                                 删除光标后的一个字符,然后进入插入模式。

3. 移动光标

h                                 向左

space                           向右(我觉得比l方便)

k                                  向上

J                                   向下

0                                  到行首

^                                  到本行第一个非空字符

$                                   到行尾

g_                                 到本行最后一个非空字符

w                                   跳到下个字的开头,W忽略符号

e                                   光标跳到下个字的字尾, E忽略符号

b                                   光标回到上个字的开头,B忽略符号

f+x                                向前跳到第一个x字符处,F向后

t+x                                跳到x的前一个字符,T向后跳到x的后一个字符

*|#                                搜索单词,*向下,#向上,配合大小n使用

gd                                  光标移到变量定义处

ctrl + n                           根据已有单词自动补齐

zz                                  让光标所在行居于屏幕中央,写到最底部时有用

zt                                   让光标所在行居于屏幕最顶部

zb                                  让光标所在行居于屏幕底部

%                                   移动到闭括号

[{            移动到匹配的{

4. 删除文本

dw                               删除光标到word结尾

cw                               删除光标到word结尾并进入insert模式

daw                             删除光标所在的整个word

caw                             删除光标的word并进入insert模式

d$                               删除至行尾

d0                               删除至行首

dG              删除至最后一行

: num1, num2 d             删除num1到num2之间的所有行

: 1,.d                           删除第一行到当前行

c$                                删除至行尾并进入insert模式,等于C

c0                                删除至行首并进入insert模式

dd                                删除整行

ddp                              上下两行调换

dt+x                             删除所有字符直到遇到x

cc                                 删除整行并进入insert模式

shift+j                           删除行尾的换行符,下一行接上来了

dib                                删除()内文本

dab                               删除()内文本,包括()

diB                                删除{ }内文本

daB                               删除{ }内文本,包括{ }

5. 复制文本

yw                               复制光标到word结尾

yaw                              复制整个word

nyw                              复制光标至第n个word结尾

y$                                复制至行尾

y0                                复制至行首

yG                                复制至最后一行

: num1, num2 y             复制num1到num2之间的所有行

:1,.y                             复制第一行到当前行

:num1,num2  co num3   复制行num1到num2到行num3,适用于复制多行

:num1, num2  m num3   剪切行num1到num2到行num3,适用于剪切多行

yib                                复制()内文本

yab                               复制()内文本,包括()

yiB                                复制{ }内文本

yaB                              复制{ }内文本,包括{ }

p                                  复制到当前字符后

P                                  复制到当前字符前

6. 替换文本

r                                  替换光标所在处的字符。

R                                 替换光标所到处的字符,直到按下“ESC”键为止,非常实用!

:s/string1/string2/g      将string1替换为string2, 限于本行

:%s/string1/string2/g             全文替换,%表示所有行,s为substitute,g为global(替换范围内每行所有string1),没有g只会替换每行的第一个string1

:num1,num2 s/string1/string2/g   行num1至num2范围内替换

:1,500 /^/#/g               在前500行行首插入#

:1,500 /$/#/g               在前500行行尾插入# 

~                                 切换大小写,当前字符

7. 可视模式

V                                  进入可视行模式,

v                                  进入可视字符模式

>                                  选中的块右移

<                                  块左移

=                                  块自动对齐

使用V选择多行,>,<和=可以多行对齐,实用功能!

ctrl + v                         列模式,可以选中块

在所有被选择行前加注释:

ctrl + v进入列模式, 选中注释行,I到第一行行首输入//, 按两次esc即可

删除注释:

ctrl+v 选中注释,d

在所有被选中行后加文本:

ctrl + v进入列模式, 选中注释行,$到行尾,A到第一行行尾输入文本, 按两次esc即可

vib                               选中()内文本

vab                             选中()内文本,包括()

viB                              选中{ }内文本

vaB                             选中{ }内文本,包括{ }

8. 区域选择

<action>a<object> 或<action>i<object>

action                    通常是 d (删除), y (拷贝), v (可视模式选择)。

object                   通常可以是字符 "   '    )    }    ]等,用于选择 “ ”   ‘ ’   ( )    [ ]     { }中的文本

i只选择符号内部字符,a包含符号

di)                         等于dib

daB                       等于da}

>>                        本行右缩进

<<                        本行左缩进

==                        本行自动缩进当前行

9. 命令

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

:set nohlsearch        关闭改功能

:set nu                   显示行号

:set nonu               关闭显示行号  

原文地址:https://www.cnblogs.com/wkun/p/3798843.html