Vim 命令大全

帮助

vimtutor 查看使用说明
:help feature 获取feature 的相关信息
:help doc-file-list获取帮助文件的完整列表

CONTROL+] 打开链接
CONTROL+o 返回
:q 退出帮助文档

光标移动

w移动到下一个字的头部
b移动到前一个字头部

e移动到当前字的尾部

ge移动到前一个字的尾部

$ 行尾
0或^ 行首
gg 文档头
G 文档尾

行号+G:+行号,跳转到某一行,例如到第6行6G:6

%  跳转到配对的括号去
[[  跳转到当前或者上一代码块(函数定义、类定义等)的开头去(但要求代码块中'{'必须单独占一行)
][  跳转到当前代码块(函数定义、类定义等)的结尾去(但要求代码块中'{'必须单独占一行)
]]  跳转到下一代码块(函数定义、类定义等)的开头去(但要求代码块中'{'必须单独占一行)
[/  跳到注释开头(只对/* */注释有效)
]/ 跳到注释结尾(只对/* */注释有效)
gD  跳转到当前文件内标识符首次出现的位置,可用于跳转到全部变量的定义处;查找局部变量时,要是多个函数中定义了该局部变量,使用gD进行查找,找到的变量定义可能不是你需要的
gd 跳转到当前函数内标识符首次出现的位置,可用于跳转到局部变量的定义处
''  跳转到光标上次停靠的地方, 是两个', 而不是一个"
mx  设置书签,x只能是a-z的26个字母
`x  跳转到书签处("`"是按键1左边的键)

操作

重复上次操作

浏览

ctrl+d 下翻半屏 d=down
ctrl+u 上翻半屏 u=up
ctrl+b上翻一页 b=backward
ctrl+f下翻一页 f=forward

滚一行
ctrl-e ctrl-y

zz 让光标所在的行居屏幕中央
zt 让光标所在的行居屏幕最上一行 t=top
zb 让光标所在的行居屏幕最下一行 b=bottom

复制Yank 删除Delete 和 粘贴Put

Yank(Y) 复制到通用缓冲区
Delete(D)删除并放到通用缓冲区
Put(P) 把通用缓冲区的内容插入的当前文本

yy 复制当前行 n+yy 复制当前行和后面n-1行 gg + yG 复制全部 dd同yy一样
"ayy  复制到缓冲区a
"ap 粘贴缓冲区a到文本 

 

修改

dw删除到字的末尾
daw删除一个单词
dd删除行
x删除字符

dl 删除当前字符(与命令x相同)
d0 从行的开始删除
d^ 从行开始的第一个字符(不包括空格和tab字符)开始删除
dw 删除到字的尾部
d3w 删除到第三个字的尾部
db 删除到字的开始
d) 删除到句子尾部
d( 删除到句子头
d} 删除到段落尾部
d{ 删除到段落头
d/text 删除到text单词的下一次出现
D 删除到行尾
d$ 删除到行尾

cw 删除到字的末尾并进入插入模式

插入模式下:

ctrl+H 字符删除
ctrl+U 行删除
ctrl+W 字删除

 

查找

/+pattern:从光标开始处向文件尾搜索pattern,n重复查找命令,N反方向重复查找命令
?+pattern:从光标开始处向文件首搜索pattern
鼠标移动的一个单词上,按 * 查找

n:在同一方向重复上一次搜索命令
N:在反方向上重复上一次搜索命令

替换

s 替换当前字符
S 替换当前行
~ 修改大小写

:[g] [address] s/search-string/replacement-string[/option]
addess:代表行

:s/p1/p2/g 将当前行中所有p1均用p2替代
:1,.s/p1/p2/g 将当前行之前的所有行的字符串p1替换为字符串p2
:1,$s/p1/p2/g 将所有出现的字符串p1替换为字符串p2
:g/chaper/s/ten/10/将第一次出现的包含字符串chaper的所有行中的字符串ten替换为字符串10
:%s/<ten>/10/g 将所有出现的字ten替换为字符串10
:.,.+10s/every/each/g将出现的从当前行到后续10行内的每个字符串every替换为字符串each
:s/<short\>/"&"/将当前行中的字short替换为"short"(即将当前行中的字short用引号括起来)
:n1,n2s/p1/p2/g 将第n1至n2行中所有p1均用p2替代
:n1,n2 co n3将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2 m n3将n1行到n2行之间的内容移至到第n3行下
:n1,n2 d 将n1行到n2行之间的内容删除

格式化

== 格式化当前行
n+== 格式化当前和后面n-1行
gg=G 格式化全文

缩进

插入模式下:

CONTROL+T 右缩进
CONTROL+D 左缩进

命令模式下:

>  增加缩进,"x>"表示增加以下x行的缩进
<  减少缩进,"x<"表示减少以下x行的缩进

 

代码注释

方法一

多行注释:

  1. 进入命令行模式,按ctrl + v进入 visual block模式,然后按j, 或者k选中多行,把需要注释的行标记起来

  2. 按大写字母I,再插入注释符,例如//

  3. 按esc键就会全部注释了

取消多行注释:

  1. 进入命令行模式,按ctrl + v进入 visual block模式,按字母l横向选中列的个数,例如 // 需要选中2列

  2. 按字母j,或者k选中注释符号

  3. 按d键就可全部取消注释

方法二 替换命令

插入注释

:起始行号,结束行号s/^/注释符/g

例如:
:27,30s#^#//#g 在27 - 30行添加 // 注释

取消注释:

:起始行号,结束行号s/^注释符//g

例如:
:27,30s#^//##g在27 - 30行删除 // 注释

命名缓冲区

“+字母+yy 把当前行复制到字母的命名缓冲区
“+字母+p 把对应字母名字的缓冲区的内容复制到当前文档

标记

ma 设置标记,名字为a

‘a 定位到标记a的位置所在行的起始位置

`a 反引号将光标定位到标记字符的精确位置

d'a 删除当前行到标记a所标记行之间的文本

d`a 删除当前行到a标记字符处的所有文本

在命令中作为行号使用 :'m,.s/the/THE/g

编辑其他文件

:e[!] [filename] 编辑filename指定的文件,如果不指定filename,继续编辑当前文件(load文件到当缓冲区即编辑区,可做刷新文件用)
:e# 关闭当前文件,打开上次编辑的文件
:n filename 打开新文件

vim中执行shell

:sh
CONTROL+D 或exit 退出

:!command ,vim中执行command命令
!!command ,执行command命令,并把输出结果替换当前行
!+行地址+ command ,对指定行执行command命令,并用输出结果替换

Tab页

配置

set tabpagemax=18 VIM默认只能打开10个标签页,在配置文件可以修改这个限制:

set showtabline=0 不显示标签栏
set showtabline=1 这是默认设置,意思是,在创建标签页后才显示标签栏。
set showtabline=2 总是显示标签栏

命令行命令:

:tabe filename 用标签页打开文件
:tabnew filename 用标签页打开文件
:tab split 用标签页打开当期编辑的文件
:tabf filename* 用标签页打开与通配符匹配的一个文件
:tabs 显示所有标签页,> 指示当前页,+ 显示修改未保存

:tabc 关闭当前标签页,功能等同于:q
:tabo 关闭所有标签页
:tabn 跳转后一个标签页
:tabp 跳转前一个标签页
:tabfirst 跳转第一个标签页
:tabr 跳转第一个标签页
:tablast 跳转最后一个标签页
:tabm 0/1/2 将当前标签页移动到第1/2/3个页面位置
:tabdo 对多个标签页同时执行命令,如
:tabdo %s/aaa/bbb/g

操作命令:

gt 跳转后一个标签页
gT 跳转前一个标签页

分屏

分屏启动Vim

vim -On file1 file2 ...使用大写的O参数来垂直分屏。
vim -on file1 file2 ...使用小写的o参数来水平分屏。
注释: n是数字,表示分成几个屏。

关闭分屏

Ctrl+W c 关闭当前窗口。
Ctrl+W q 关闭当前窗口,如果只剩最后一个了,则退出Vim。

分屏

Ctrl+W s上下分割当前打开的文件。
:sp filename上下分割,并打开一个新的文件。
Ctrl+W v 左右分割当前打开的文件。
:vsp filename 左右分割,并打开一个新的文件。

切换分屏

Vi中的光标键是h, j, k, l,要在各个屏间切换,只需要先按一下Ctrl+W

Ctrl+W l 把光标移到右边的屏。
Ctrl+W h 把光标移到左边的屏中。
Ctrl+W k 把光标移到上边的屏中。
Ctrl+W j 把光标移到下边的屏中。
Ctrl+W w 把光标移到下一个的屏中。

改变分屏大小

:[vertical] res[ize] [N]

对配对标点内容操作

以下命令可以对标点内的内容进行操作。
ci+标点 更改配对标点符号中的文本内容
di 删除配对标点符号中的文本内容
yi 复制配对标点符号中的文本内容
vi 选中这些配对标点符号中的文本内容

另外如果把上面的i改成a可以连配对标点一起操作。

举个例子:

比如要操作的文本如下:

111"222"333

将光标移到"222"的任何一个字符处输入命令 di" ,文本会变成: 111""333

若输入命令 da" ,文本会变成: 111333

其他

自动补全 crl+pcrl+n

vim -d file1 file2 比较两个文件的差异

 

cit 删除标签内的


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
未来社区的建设背景和需求分析指出,随着智能经济、大数据、人工智能、物联网、区块链、云计算等技术的发展,社区服务正朝着数字化、智能化转型。社区服务渠道由分散向统一融合转变,服务内容由通用庞杂向个性化、服务导向转变。未来社区将构建数字化生态,实现数据在线、组织在线、服务在线、产品智能和决策智能,赋能企业创新,同时注重人才培养和科研平台建设。 规划设计方面,未来社区将基于居民需求,打造以服务为中心的社区管理模式。通过统一的服务平台和应用,实现服务内容的整合和优化,提供灵活多样的服务方式,如推送式、订阅式、热点式等。社区将构建数据与应用的良性循环,提高服务效率,同时注重生态优美、绿色低碳、社会和谐,以实现幸福民生和产业发展。 建设运营上,未来社区强调科学规划、以人为本,创新引领、重点突破,统筹推进、整体提升。通过实施院落+社团自治工程,转变政府职能,深化社区自治法制化、信息化,解决社区治理中的重点问题。目标是培养有活力的社会组织,提高社区居民参与度和满意度,实现社区治理服务的制度机制创新。 未来社区的数字化解决方案包括信息发布系统、服务系统和管理系统。信息发布系统涵盖公共服务类和社会化服务类信息,提供政策宣传、家政服务、健康医疗咨询等功能。服务系统功能需求包括办事指南、公共服务、社区工作参与互动等,旨在提高社区服务能力。管理系统功能需求则涉及院落管理、社团管理、社工队伍管理等,以实现社区治理的现代化。 最后,未来社区建设注重整合政府、社会组织、企业等多方资源,以提高社区服务的效率和质量。通过建立社区管理服务综合信息平台,提供社区公共服务、社区社会组织管理服务和社区便民服务,实现管理精简、高效、透明,服务快速、便捷。同时,通过培育和发展社区协会、社团等组织,激发社会化组织活力,为居民提供综合性的咨询和服务,促进社区的和谐发展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值