vi/vim常用命令

vi/vim常用命令ctrl+b上一页ctrl+f下一页ctrl+u上半页ctrl+d下半页H跳到屏幕的第一行M跳到屏幕的中间行L跳到屏幕的最后一行zt将光标所在的那一行移至屏幕顶部zb将光…

大家好,又见面了,我是你们的朋友全栈君。

ctrl + b             上一页
ctrl + f              下一页
ctrl + u             上半页
ctrl + d             下半页

H                     跳到屏幕的第一行
M                    跳到屏幕的中间行
L                     跳到屏幕的最后一行
zt                    将光标所在的那一行移至屏幕顶部
zb                   将光标所在的那一行移至屏幕底部
zz                   将光标所在的那一行移至屏幕中部    
            
G                      跳到文件底部
g+g                   跳到文件顶部
#G                    跳到第#行

数字0                跳到行首
^                       跳到行内非空格的第一个字符
w                      跳到下一字头(大写标点符号不算单词)
e                      跳到下一子尾(大写标点符号不算单词)
b                      跳到上一字头(大写标点符号不算单词)

小x                   删除后1字符
#x                    删除后#字符
大X                  删除前1字符
#X                   删除前#字符
            
dd                    删除所在行
#dd                  删除所在行开始#行
d←                  删除光标前的字符
d→                  删除光标处的字符
d0                   删除至行首
D                    删除至行尾

‘.                    定位到上一次修改点
‘.                    定位到上一次修改行    
        
yw                    复制所在处到字尾
#yw                  复制#字 
yy                    复制所在行
#yy                  复制所在行开始的#行(向下)
            
p                     粘贴

r                      更改当前字符,并保持在正常模式
R                     连续替换当前光标下的字符,按<Esc>结束
大C                 替换当前行后面的部分,并进入插入模式,按<Esc>结束
小cc                替换当前行(大S),并进入插入模式,按<Esc>结束
cw                  替换当前单词并进入插入模式,按<Esc>结束
小s                 替换当前字符并进入插入模式,按<Esc>结束
~                    更改当前字符的大小写
            
u                     恢复,撤销
U                    还原当前行

<<                    当前行左移一个TAB
>>                    当前行右移一个TAB

v或者ctrl + v          进入可视化(用于选中)
shift + *                 向下查找并高亮显示
shift + #                向上查找并高亮显示
g + d                    高亮显示光标所属单词,“n” 查找!
:noh                   取消高亮 

[ + ctrl + i         跳到函数变量和#define处,用ctrl + o返回         ctrl + ]
[ + ctrl + d        跳到#define处,用ctrl + o返回 

ctrl + o            跳到后几次光标位置(返回)
ctrl + i             跳到前几次光标位置

小括号跳转:跳到句子的个开下头,句子以句号或者空行结束
(                  光标移到这个句子开头
)                  光标移到下一句子开头

中括号跳转:跳到函数的开头或结尾
[[                  跳往上一个 函数的起始大括号
]]                  跳往下一个 函数的起始大括号
[]                  跳往上一个 函数的结束大括号
][                  跳往下一个 函数的结束大括号

大括号跳转:跳到段落开头,以空行划分
{                   跳到上一段落
}                   跳到下一段落

:res[ize] [N]      修改窗口高度为N
:vertical res[ize] [N]  修改窗口宽度为N

查找与替换
语法如下:
:{作用范围}s/{目标}/{替换}/{替换标志}
例如:%s/foo/bar/g会在全局范围(%)查找foo并替换为bar,所有出现都会被替换(g)。

作用范围
作用范围分为当前行、全文、选区等等。

当前行:
:s/foo/bar/g

全文:
:%s/foo/bar/g

选区,在Visual模式下选择区域后输入:,Vim即可自动补全为 :'<,’>。
:'<,’>s/foo/bar/g

2-11行:
:5,12s/foo/bar/g

当前行.与接下来两行+2:
:.,+2s/foo/bar/g

替换标志
上文中命令结尾的g即是替换标志之一,表示全局global替换(即替换目标的所有出现)。 还有很多其他有用的替换标志:

空替换标志表示只替换从光标位置开始,目标的第一次出现:
:%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表示替换当前位置并退出。^E与^Y是光标移动快捷键,参考: Vim中如何快速进行光标移动。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/142881.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 虚拟机docker安装RabbitMQ[通俗易懂]

    虚拟机docker安装RabbitMQ[通俗易懂]官方下载地址选择使用Docker安装(选择带有management是含有管理界面的)拉取镜像和启动:dockerrun-d–hostnamemy-rabbit-p5672:5672-p15672:15672rabbitmq:3.8.0-beta.4-management浏览器访问:虚拟机ip:15672默认账号密码都是guest…

    2022年5月10日
  • rider 激活 csdn【中文破解版】

    (rider 激活 csdn)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月30日
  • 堪比坐牢!深圳一公司给每个工位都装监控,只为防止泄密?[通俗易懂]

    堪比坐牢!深圳一公司给每个工位都装监控,只为防止泄密?[通俗易懂]当事人回应已拆除

    2022年7月24日
  • Java应用结构规范[通俗易懂]

    Java应用结构规范[通俗易懂]简介:在Java程序开发中,命名和应用分层无疑是广大后端同胞的两大“痛点”,本文提供一种基于领域模型的轻量级应用分层结构设计,供大家参考。下面按分层结构、分层明细、调用关系、各层规范和通用代码工具展开介绍。作者|阿卓来源|阿里技术公众号序言在Java程序开发中,命名和应用分层无疑是广大后端同胞的两大“痛点”,本文提供一种基于领域模型的轻量级应用分层结构设计,供大家参考。下面按分层结构、分层明细、调用关系、各层规范和通用代码工具展开介绍。一分层结构web(前端请求层)

    2022年8月16日
  • java getmethods_method

    java getmethods_methodpublicclassDynamicInvoker{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubDynamicInvokerapp=newDynamicInvoker();app.sayHello(“张三”,2);try{try{app.getClass().getMethod(…

    2022年9月23日
  • org.aspectj aspectjweaver 报错

    org.aspectj aspectjweaver 报错http://mvnrepository.com/artifact/org.aspectj/aspectjweaver在pom中把版本改高一些就Ok了      org.aspectj     aspectjweaver     1.7.4   之前红色部分是1.6.11

    2022年7月14日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号