Linux简单使用vi编辑器
vi很常用,这里记录一下简单的用法,以利于未来用到或忘记时快速查阅。vi的模式命令模式(command mode): 执行vi命令后默认进入命令模式。插入模式(insert mode): 在命令模式按"i "键,进入插入模式。按ESC键退出插入模式返回到命令模式。末行模式(last line mode): 在命令模式按": "键,进入末行模式。退出末行模式返回命令模式有两种方法,方法1是按ESC键返回命令模式,方法2是输入末行命令按enter键执行,等末行命令执行结束,就自动返回命令模式。
每种模式都有各自的命令,命令模式有命令模式的命令,插入模式有插入模式的命令,末行模式有末行模式的命令。保存文件(save; write)、退出vi编辑器(quit)
以下命令需在末行模式输入和执行:w 保存文件,把文件内容写入到当前文件。:wq 先保存后退出vi::q 退出vi:q! 强制退出vi:r filename 把其他路径下的文件内容 导入到当前文件光标所在行的下面 。:w filename 把当前文件的内容写入到其他的文件里,就是"另存为"操作。执行这个命令时,当前文件内容的修改不会写入到当前文件(原始文件)。命令模式进入插入模式的方法按i键 从光标所在位置的左侧(前面),进入插入模式按a键 从光标所在位置的右侧(后面),插入插入模式按A键 把光标移动到光标所在行的尾部,进入插入模式按o键 在光标所在行的下面插入新行,把光标移动到新行的行首,进入插入模式按O键 在光标所在行的下面插入新行,把光标移动到新行的行首,进入插入模式移动光标
以下4个键在命令模式和插入模式都可以使用按Home键 可以把光标移动到光标所在行行首。按End键 可以把光标移动到光标所在行行尾。按PgUp键 可以往上翻页,实现光标往上快速移动。按PgDn键 可以往下翻页,实现光标往下快速移动。
以下命令需在命令模式输入和执行
行内移动光标0 功能与^相同。^ 把光标移动到光标所在行的行首。$ 把光标移动到光标所在行的行尾。N + 把光标往后移动N个字符。(好像可以跨行)N + 把光标往前移动N个字符。(好像可以跨行)b 把光标移动到当前光标所在位置的前一个单词的首字母。w 把光标移动到当前光标所在位置的后一个单词的首字母。e 把光标移动到当前光标所在位置的后一个单词的尾字母。5b 往前移动5个单词。5w 往后移动5个单词。5e 往后移动5个单词。Ctrl + 左后方向键
行间移动光标gg 把光标移动到第一行。是1G 的快捷方式。G 把光标移动到最后一行。NG 把光标移动到第N行。1G 就是移动到第1行。N + 从光标所在行开始把光标往后(下)移动N行。H (high) 把光标移动到屏幕上面M (middle) 把光标移动到屏幕中间L (low) 把光标移动到屏幕下面
其他移动光标命令h 左移光标l 右移光标k 上移光标j 下移光标ctrl + f 光标向前翻整页ctrl + b 光标向后翻整页ctrl + d 光标向前翻半页ctrl + u 光标向后翻半页复制(copy)
以下命令需在命令模式输入和执行yy 命令复制光标所在行。y^ 命令复制光标所在位置至行首的全部字符。y$ 命令复制光标所在位置至行尾的全部字符。5yy 命令 从光标所在行开始往下复制5行。yw 命令复制光标所在位置至当前单词尾部的全部字符。
在末行模式输入以下命令执行:s,ey 复制第s行至第e行之间的所有行,如:50,100y 复制第50行至100行之间的所有行。粘贴(paste)
以下命令需在命令模式输入和执行P 命令 在光标所在位置前面粘贴p 命令 在光标所在位置后面粘贴。5p 命令 在光标所在位置往后粘贴5次删除(delete)
以下命令需在命令模式输入和执行dd 命令删除光标所在行d^ 命令删除光标所在位置至行首的全部字符。d$ 命令删除光标所在位置至行尾的全部字符。dw 命令删除光标所在位置至当前单词尾部的全部字符(含单词尾部的空格)。de 命令删除光标所在位置至当前单词尾部的全部字符(不含单词尾部的空格)x 命令删除光标所在位置后面的单个字符。J (大写字母)命令删除光标所在行行尾的换行符,等同于合并当前行和下一行的内容。5dd 命令 从光标所在行开始往下删除5行。5dw 命令 删除当前光标所在位置后面的共5个单词(含尾部的空格)。5de 命令 删除当前光标所在位置后面的共5个单词(不含尾部的空格)。5x 命令 删除当前光标所在位置后面的共5个字符。5J 命令 从光标所在行开始往下合并5行(通过删除每行行尾的换行符)。
在末行模式输入以下命令执行:d 删除光标所在行。:s,ed 删除第s行至第e行之间的全部行。:1,.d 删除第一行至光标所在行的全部行。:.,$d 删除光标所在行至最后一行的全部行。:1,$d 删除第一行至最后一行的全部行。慎用。:g/^.*$/d 删除第一行至最后一行的全部行。与上面的:1,$d 功能相同。慎用。:g/^$/d 删除全部空白行。这个命令非常有用,删除文件空白行是使用频率较高的操作,使用tr命令和sed命令也可以实现 。
删除文件空白行 - 执行:g/^$/d前
删除文件空白行 - 执行:g/^$/d后查找(find; search)
以下命令需在命令模式输入和执行/待找字符串 往下查找,按n查找下一个,按N查找上一个。?待找字符串 往上查找,按n查找下一个,按N查找上一个。替换(replace; substitute)
查找和替换的命令语法 :[range]s/old/new/gc 。查找和替换的范围有: 行内(单行)查找和替换 ,行间(多行)查找和替换 ,整个文件内(从第一行到最后一行的全部行)查找和替换 。range,指范围,指在哪一行或哪几行进行查找和替换。range是可以缺少的。缺少range时,会在光标所在行进行查找和替换操作。g指global,指全局查找和替换,找到目标字符串在每一行的每一个位置,进行替换。c指comfirm,指确认是否执行查找和替换操作。
行内(单行)查找和替换:s/old/new 在光标所在行执行一次查找和替换。何为行内一次查找和替换?从行首开始查找目标字符串,找到了它第一次出现的位置,执行替换操作,然后结束,不再往下进行查找和替换 。:s/old/new/g 在光标所在行执行全部(全局)查找和替换。
行间(多行)查找和替换:,s/old/new 在行间的每一行执行一次查找和替换。:,s/old/new/g(c) 在行间的每一行执行全部(全局)查找和替换。:.,$s/old/new/ 在光标所在行与最后一行之间的每一行执行一次查找和替换。:.,$s/old/new/g 在光标所在行与最后一行之间的每一行执行全部(全局)查找和替换。
在整个文件内(第一行与最后一行之间)进行查找和替换:%s/old/new/ 在第一行和最后一行之间的每一行执行一次查找和替换。:%s/old/new/g(c) 在第一行和最后一行之间的每一行执行全部(全局)查找和替换。%指百分百,就是指查找和替换的范围为整个文件,为第一行到最后一行的全部行。
查找和替换的例子:%s/^(.*)$/thinkdecideact: 1/g 在每行行首插入"thinkdecideact: "这个字符串。其中,"^(.*)$ "匹配整行,1 是反向引用(back reference),指前面正则里第一个分组匹配到的内容,即一整行数据。:%s/^(.*)$/1(thinkdecideact)/g 在每行行尾插入"(thinkdecideact) "这个字符串。:%s/^(life)/Good quote: 1/g 在以life开头的每一行行首添加"Good qutoe: "这个字符串。:%s/best/&/gn 统计整个文件里best这个字符串在整个文件中出现的次数。
查找和替换例子 - 原始文件内容
查找和替换例子 - 在每行行首添加一个字符串
查找和替换例子 - 在每行行尾添加一个字符串
查找和替换例子 - 在以life开头的每一行添加一个字符串取消(undo; cancel)
命令模式下输入以下命令执行u 命令取消最近一次操作,并恢复操作结果;可以多次使用u命令,不断往后取消恢复之前的结果(往后移动)。U 命令取消对光标所在行进行的全部操作。Ctrl + R 组合键恢复u命令取消的操作(往前移动)。(R是recover, restore之意 )什么是当前行?什么是当前单词?
光标所在行就是当前行。光标所在的单词就是当前单词。
构筑冠状病毒防火墙,索菲玛变芯金刚滤清器全球首发1hr一场突如其来的疫情,正在改变未来的出行安全。在疫情防控中,除了有紧急应援,还有防患于未然的担当。在汽车领域,吉利比亚迪等品牌投入巨资为新车戴上CN95标准口罩,现代汽车则计划
全系国六b零压舒适MPV2021款吉利嘉际上市5月25日,2021款吉利嘉际正式上市,新车共推出3种座椅布局4种动力系统共6款车型。其中,燃油版官方指导价为9。48万13。98万元,插电混动版嘉际ePro悠享型官方指导价15。
大众Viloran威然速览德系商务MPV初体验大众Viloran威然,上汽大众首款大型豪华商务MPV,将于5月28日正式上市。车名释意Viloran威然Villa别墅Velour天鹅绒Grand大气车身尺寸长5346mm,宽1
车市复工首月榜单出炉,轩逸夺冠,英朗亮眼3月中旬,国内车企除湖北武汉外陆续复工,4月是第一个完整的自然月。乘联会最新销量数据显示,4月国内狭义乘用车市场的零售销量为142。9万辆,同比下降仅5。6,环比增长36。6。市场
送保险补贴上汽大众SUV家族享三年无忧保养越是在艰难环境,越能展现一个品牌真正的实力。4月,上汽大众大众品牌SUV家族终端交付达到39,049辆,位列合资SUV市场第一,同比与环比增长分别达到28。4和80。1,领先市场进
这样的奥迪Q3轿跑,简直无敌了成为豪华A级SUV的扛把子,是奥迪Q3距离最近的目标。在多年与宝马X1和奔驰GLA的较量中,奥迪Q3从来就不满足你方唱罢我登场的戏码。而新锐凯迪拉克XT4的加入,让奥迪Q3的危机更
2021款嘉际曝光,零压座椅离车自动换P挡成亮点5月11日,2021款吉利嘉际曝光。新车聚焦座舱健康驾控安全和互联5大舒适维度,打造出行业首款0压舒适MPV。造型方面,新车采用了吉利全新黑标,日行灯由此前的横向变为了竖向设计,窗
比亚迪汉上海路演中5月16日,上海正大广场,比亚迪汉品鉴会现场。1hr特斯拉的牌打完了,轮到我们出牌了。5月1日,赵长江旗帜鲜明地将汉EV的目标锁定特斯拉Model3。身为比亚迪汽车销售有限公司总经
聚焦制动距离32。8米!比亚迪汉EV是怎么做到的?32。8米!汉EV创造全球新能源车最短百公里制动距离纪录。近日,汉EV在百公里制动距离的测试过程中,取得了32。8米的成绩。这个成绩不仅刷新全球新能源车最短的百公里制动记录,也为新
三分天注定,全新福特领界S用了十分力520,跨圈交朋友。在全新福特领界S的上市直播中,除了虚拟歌手洛天依出圈外,新车以近乎大派送的营销政策,盖过了发布价格的热度。拼了!爱拼才会赢福特领界S全系提供五款车型,售价10。
怎样理性看待帕萨特中保研安撞事件?帕萨特的安全性能靠得住吗?根据中国交通事故深入研究(CIDAS)官方,对5339起真实交通事故的深入研究结果显示,中国与欧洲和美国的交通环境存在较大差异,两辆乘用车相撞的比例较低,