博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vim常用命令
阅读量:5100 次
发布时间:2019-06-13

本文共 2194 字,大约阅读时间需要 7 分钟。

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

你可能感兴趣的文章
BZOJ_1029_[JSOI2007]_建筑抢修_(贪心+优先队列)
查看>>
None.js 第五步 Buffer(缓冲区)
查看>>
dede文章页调用当前栏目链接方法
查看>>
django 自定义标签
查看>>
第二节课课堂作业
查看>>
在线mark.down编辑器
查看>>
PAT(乙级)1016
查看>>
1、mysql创建用户和授权总结
查看>>
【学校集训】【USACO15DecG】Bessie's Dream
查看>>
团队编程项目作业5-小组评分
查看>>
隔行变色效果
查看>>
js监听滚动条滚动事件
查看>>
java web实现文件下载的注意事项
查看>>
SQL数据库
查看>>
ORA-32004: obsolete and/or deprecated parameter(s) specified
查看>>
安装中文输入法
查看>>
glassfish 自定义 jaas realm
查看>>
Glassfish 设置时区
查看>>
th:each
查看>>
补码与C++的应用
查看>>