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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 比特币矿机哪种型号好_不考虑电费哪个矿机最好

    比特币矿机哪种型号好_不考虑电费哪个矿机最好矿机电源对于比特币矿机来说至关重要,毕竟挖矿中矿机稳定运行是非常重要的,而矿机电源就是保障比特币矿机稳定运行的重要法宝。现在矿机电源应用范围那么高,说明在技术,还有设备方面都完善了很多,而且完善之后的矿机,在做工跟加工方面都好很多,提高了很多,这是非常重要的一点,不管是在哪几个方面,在生产量方面也会越来越好,随着现在时代的不断的改变,矿机电源的应用会越来越精细化。因为比特币挖矿需要多显卡多芯片…

    2022年9月1日
    3
  • plsqldev怎么备份和还原数据库

    plsqldev怎么备份和还原数据库
    一、导出/导入(Export/Import)利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去。1、简单导出数据(Export)和导入数据(Import):Oracle支持三种方式类型的输出:(1)、表方式(T方式),将指定表的数据导出。(2)、用户方式(U方式),将指定用户的所有对象及数据导出。(3)、全库方式(Full方式),瘵数据库中的所有对象导出。数据导

    2022年5月9日
    46
  • pycharm远程调试python_pycharm怎么建立新项目

    pycharm远程调试python_pycharm怎么建立新项目一般代码本地调试完成后,需要运行到服务器上,比如自动化测试脚本、爬虫脚本等,所以第一步需要将项目上传到服务器,然后在服务器上进行调试和运行。但是需要长期维护和开发的项目,这样就繁琐了很多,并且我们时常要维护多个测试或者开发环境,每个环境的Python版本和依赖包有可能还存在差异,这样的话,每次更新需要花费的时间就更多了。其实,很多的编辑器都考虑到这个问题,可以实现远程调试,比如Pycharm、Vs…

    2022年8月26日
    7
  • java-计算器模板及源码

    java-计算器模板及源码java-计算器模板及源码计算器实现了大部分基础功能:基本运算,菜单栏选项,并且拓展了普通型和科学兴选项等等,读者可以在此基础上进行修改和拓展。其他具体实现方法可以看源码,里面有详细的概述,代码框架清晰。读者在阅读和引用过程中,如有问题欢迎评论区留言和私信交流。运行环境:win10EclipseIDEforJavaDevelopers-2020-06下面是计算器的视图:importjava.awt.*;importjava.awt.event.ActionEvent;im

    2022年7月19日
    13
  • ReleaseMutex用法

    ReleaseMutex用法Mutex中提供了WiteOne,ReleaseMutex两个实例方法~WiteOne的作用是”阻塞当前线程,提供对该线程的原子操作”也就是说当一个线程遇到WiteOne的时候,如果在WiteOne里面没有线程在操作,则此线程进去操作而里面有线程的时候,所有到此的线程均需要排队等候里面的线程执行完毕~而控制这样操作的结束标记就是使用ReleaseMutex方法!就好比WiteO…

    2022年6月26日
    51
  • led显示屏坏点(显示器坏点多少算正常)

    LED显示器的坏点相关问题   声明:本文为博主学习时的摘录,部分内容来源于网络,如有侵权,请联系博主删除,在此感谢分享这些内容的原作者,Helpingeachother,makeprogresstogether1,名称概述:  (1) 坏点   在白屏情况下为纯黑色的点或者在黑屏下为纯白色的点。在切换至红、绿、蓝三色显示模式下此点始终在同一位置上并且始终为纯黑色或纯白色…

    2022年4月10日
    1.3K

发表回复

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

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