首页 > 其他分享 >vi常用命令

vi常用命令

时间:2023-09-04 16:36:03浏览次数:56  
标签:old Ctrl vi 常用命令 字符串 new 替换 光标


                                                                             我最常用的vi命令

一、移动:
hjkl左下上右  移动
o在光标所在行后插入一空行。                                                 
O在光标所在行前插入一空行。   
0移动光标到行首
$移动光标到行尾
Ctrl + f向后滚一页。                                                 
Ctrl + d向后滚半页。                                                 
Ctrl + b向前滚一页。                                                 
Ctrl + u向前滚半页。                                                 
Ctrl + e屏幕向下滚一行。                                             
Ctrl + y屏幕项上滚一行。   
H,L当前屏幕的顶端/末尾
(n)G:按一个数字,然后按G,将光标跳到第n行,1G就是文件第一行,如果不打数字,则跳到文件末尾。
二、操作
i前插入 I在行首插入
a后插入 A 在行尾插入
r替换
dd删除整行
dw删除光标所在的单词
D或者d$删除光标之后的内容
u恢复上一次修改,撤销恢复:ctrl+r

yy 拷贝一行   2yy拷贝2行,依次类推

yw 拷贝当前到单词尾
y$拷贝光标位置到行尾

p 粘贴

块复制(最少记忆的方法  )

起始位置ma

结束位置y`a

粘贴位置p

w保存 w filename另存为
q退出 q!不保存退出

三、替换


在一行内替换头一个字符串 old 为新的字符串 new,请输入 :s/old/new



在一行内替换所有的字符串 old 为新的字符串 new,请输入 :s/old/new/g



在两行内替换所有的字符串 old 为新的字符串 new,请输入 :#,#s/old/new/g



在文件内替换所有的字符串 old 为新的字符串 new,请输入 :%s/old/new/g



进行全文替换时询问用户确认每个替换需添加 c 选项,请输入 :%s/old/new/gc



 全文替换时,还可以输入:1,$s/old/new/g。 其中1,$表示从第一行到文本结束。


四、其他
:/查找,配合n查找下一个,N查找上一个
:sh切换到shell,exit切换回来

还有一种很常见的情况:vi 修改了一个文件,保存的时候才发现readonly,原因是权限不够。编辑半天的东西,总不能退出重来。而再动用鼠标就太low了。如果当前用户被管理员授权sudo  ,则有解决办法:w !sudo tee %,输入密码,连续几次回车,然后:!q退出。


标签:old,Ctrl,vi,常用命令,字符串,new,替换,光标
From: https://blog.51cto.com/u_16245757/7352074

相关文章

  • Spring事务配置笔记(实现不同Service间调用事务)
    作者:fbysss关键字:Spring,事务处理一、关键配置示例:<beanid="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><propertyname="dataSource&qu......
  • Xml2Bean:为Webservice返回Collection准备的一个实用类
    作者:fbysss关键字:Webservice,Xml2Bean背景:Webservice 返回的是xml,如何得到Collection类型呢?最简单的方式就是把xml还原成Collection。准备包:commons-digester-1.8.jar源代码1:Xml2Beanpackagecn.edu.ustb.db.task.util;/***//***<p>标题:Xml2Bean.java</p>......
  • 软件测试 | Dalvik虚拟机是如何执行程序的
    Android系统的架构采用分层思想,这样的好处是拥有减少各层之间的依赖性、便于独立分发、容易收敛问题和错误等优点。Android系统由Linux内核、函数库、Android运行时、应用程序框架以及应用程序组成。如图3-4的Android系统架构所示,Dalvik虚拟机属于Android运行时环境,它与一些核心库......
  • 理解Qt中的setViewport和setWindow
    概念相关Qt的2D变换中有逻辑坐标(窗口)和物理坐标(视口)划重点:窗口(逻辑坐标)与视口(物理坐标)的关系:窗口的四个角会映射到视口的四个角,它们四个角之间一一对应,两者的比例是1:1。它们默认的状态下,逻辑坐标和物理坐标都是一一对应的,起始点都是(0,0),长度高度也一致即两者重合,对应......
  • 泛微E-cology HrmCareerApplyPerView.jspSQL注入漏洞
    漏洞简介泛微OAE-CologyHrmCareerApplyPerView.jsp文件存在SQL注入漏洞,攻击者通过漏洞可以获取服务器数据库敏感文件影响版本泛微OAE-Cologyv8.0漏洞复现fofa语法:app="泛微-协同办公OA"登录页面如下:POC/pweb/careerapply/HrmCareerApplyPerView.jsp?id=1%20union%20......
  • docker常用命令
    1.帮助启动类命令1.启动systemctlstartdocker 2.停止systemctlstopdocker 3.重启systemctlrestartdocker 4.查看状态systemctlstatusdocker 5.开机启动(linux开机自动启动docker)systemctlenabledocker 6.查看docker概要信息dockerinfo......
  • KVM管理工具Webvirtmgr 问题记录
    1.如果遇到虚拟机启动时报错:qemu-kvm:FailedtostartVNCserveron`172.17.42.1:0':Failedtobindsocket:Cannotassignrequestedaddres请将对应虚拟机XML配置中VNC部分改为:<graphicstype='vnc'port='-1'autoport='yes'listen='0.0.0.......
  • 【校招VIP】前端JavaScript语言之跨域
    考点介绍:什么是跨域?浏览器从一个域名的网页去请求另一个域名的资源时,域名、端口、协议任一不同,都是跨域。跨域是前端校招的一个重要考点,在面试过程中经常遇到,需要着重掌握。本期分享的前端算法考点之大数据相关,分为试题、文章以及视频三部分。答案详情解析和文章内容可点击下方......
  • vue3+vite使用require引用图片失效问题
    首先,这个问题的原因跟vue无关,是vite引用只支持import,require是隔壁webpack的引用方式,vite用自身的url可以用import.meta.url来拼装项目路径,如下:这个原理只不过是在发布的地址上去找对应图片,而且只会找项目中public文件夹下的图片资源,assets文件夹下的图片资源找不到(原因是publ......
  • vite
    vite的原理ESModulesvite的成功得益于现代浏览器对于基于ECMAScript标准原生模块系统(ESModules)实现。目前主流浏览器(IE11除外)都已经支持。他允许我们在浏览器使用export、import的方式导入和导出模块,在script标签里设置type="module"<scripttype="module">import......