发布网友 发布时间:2024-09-26 16:31
共1个回答
热心网友 时间:1天前
简介vi 编辑器是Linux 系统下的标准编辑器,vi 可以分为三种状态,分别是命令模式(命令行模式)、插入模式(Insert mode)和底行模式(底行模式),各模式的功能区分如下: 命令行模式:控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入插入模式下,或者到底行模式。 插入模式(Insert mode):只有在Insert mode 下,才可以做文字输入,按ESC 键可回到命令行模式。 底行模式:将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号等。 在使用时通常把 vi 简化成两个模式,将底行模式也算入命令行模式。 更多可查看vim菜鸟教程 或者vim编辑器从入门到精通
1.启动与退出启动 vi :在系统提示符号输入vi 及文件名称后,就进入vi 全屏幕编辑画面,例如:$ vi myfile。 注意::进入vi 之后,处于命令行模式,要切换到插入模式才能够输入文字,在命令行模式下按下字母i 进入插入模式。 退出 vi 及保存文件:在命令行模式下,按一下冒号:键进入底行模式,例如:
:wq 存盘并退出vi):q! 不存盘强制退出vi):x或ZZ 有修改才存盘:w [filename] 将编辑的数据储存成另一个档案(类似另存为):r [filename] 在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个档案内容加到游标所在行后面:n1,n2 w [filename] 将 n1 到 n2 行的内容储存成 filename 这个档案。:! command暂时离开 vi 到指令行模式下执行 command 的显示结果!例如:! ls /home 即可在 vi 当中察看 /home 底下以 ls 输出的档案信息!2.命令模式功能键1) 插入模式按 i 进入插入模式后,是从光标当前位置开始输入文字;按 a 进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;按 A 进入插入模式后,是从目前光标所在行的行尾开始;按 o 进入插入模式后,是插入新的一行,从行首开始输入文字。2) 移动光标vi 可以直接用键盘上的光标来上下左右移动,但正规的vi 是用小写英文字母h、j、k、l,分别控制光标左、下、上、右移一格。
按 ctrl+b:屏幕往前移动一页。按 ctrl+f:屏幕往后移动一页。按 ctrl+u:屏幕往前移动半页。按 ctrl+d:屏幕往后移动半页。按 0:移到光标所在行的开头。(常用)按 G:移动到文章的最后。(常用)nGn 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu)gg移动到这个档案的第一行,相当于 1G (常用)n n 为数字。光标向下移动 n 行(常用)按$:移动到光标所在行的行尾。(常用)按^:移动到光标所在行的行首,同0。按 w:光标跳到下个字的开头。(常用)按 e:光标跳到下个字的字尾。按 b:光标回到上个字的开头。按10l:光标向右移动10个位置,可以数字与hjkl组合进行光标移动(常用)3) 删除文字x:每按一次,删除光标所在位置的"后面"一个字符。6x:6x 表示删除光标所在位置的"后面"6 个字符。(常用)X:大写的X,每按一次,删除光标所在位置的"前面"一个字符。20X:20X 表示删除光标所在位置的"前面"20 个字符。dd:删除光标所在行。10dd:从光标所在行开始删除10行dG删除光标所在行一直到文件末尾的所有内容:a1,a2d 删除从 a1 行到 a2 行的文本内容4) 复制yw:将光标所在之处到字尾的字符复制到缓冲区中。4yw:复制4个字到缓冲区,数字可改yy:复制光标所在行到缓冲区。6yy:表示拷贝从光标所在的该行"往下数"6 行文字。p:将缓冲区内的字符贴到光标所在位置。注意:所有与"y"有关的复制命令都必须与"p"配合才能完成复制与粘贴功能。5) 修改修改文本对象,用新输入的文本代替老的文本。它们等价于用删除命令删除老文本,然后用i命令插入新文本。注意:输入修改命令后,就进入到输入方式。所以输入新文本后,还要按ESC键,才能回到命令方式。
c:替换光标所在处的字符。6) 替换r:替换光标所在处的字符。R:替换光标所到之处的字符,直到按下ESC 键为止。:n1,n2s/a1/a2/g 将文件中 n1 到 n2 行中所有 a1 都用 a2 替换:g/a1/a2/g将文件中所有的 a1 都用 a2 替换7)常见动作u 复原前一个动作。(常用,相当于windows Ctrl+z)[Ctrl]+r重做上一个动作。(常用,相当于windows Ctrl+y)3.底行模式下命令在使用底行模式之前,先按ESC 键确定已经处于命令行模式下后,再按:冒号即可进入底行模式。
1)列出行号 set nu输入set nu 后,会在文件中的每一行前面列出行号。
2)跳到文件中的某一行号表示一个数字,在冒号后输入一个数字,再按回车键跳到该行,如输入数字15,再回车,就会跳到文章的第15 行。3)查找字符 / ?/关键字:往光标下方查找,按n查找下一个,按N查找上一个 ?关键字:往光标上方查找,按n查找下一个,按N查找上一个
/abc从光标所在位置向前查找字符串 abc/^abc 查找以 abc 为行首的行/abc$ 查找以 abc 为行尾的行?abc从光标所在为主向后查找字符串 abcn 向同一方向重复上次的查找指令N 向相反方向重复上次的查找指定4)替换字符 s:n1,n2s/word1/word2/g n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2:1,$s/word1/word2/g 或 :%s/word1/word2/g 从头找 word1 字符串,并将该字符串取代为 word2 !(常用):1,$s/word1/word2/gc 或 :%s/word1/word2/gc 从头找 word1 字符串,并将该字符串取代为 word2 !且在取代前显示提示字符给用户确认 (confirm) 是否需要取代!(常用)5)删除字符 d按 i 进入插入模式后,是从光标当前位置开始输入文字;按 a 进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;按 A 进入插入模式后,是从目前光标所在行的行尾开始;按 o 进入插入模式后,是插入新的一行,从行首开始输入文字。06)设置缩进的空格数 set ts=按 i 进入插入模式后,是从光标当前位置开始输入文字;按 a 进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;按 A 进入插入模式后,是从目前光标所在行的行尾开始;按 o 进入插入模式后,是插入新的一行,从行首开始输入文字。14. 使用vi编辑器编写代码(具体使用场景)1)批量加注释vim 中批量添加注释
方法一 :块选择模式
批量注释:
Ctrl + v 进入块选择模式,然后移动光标选中你要注释的行,再按大写的I 进入行首插入模式输入注释符号如 // 或 #,输入完毕之后,按两下 ESC,Vim 会自动将你选中的所有行首都加上注释,保存退出完成注释。
取消注释:
Ctrl + v 进入块选择模式,选中你要删除的行首的注释符号,注意 // 要选中两个,选好之后按 d 即可删除注释,ESC 保存退出。
方法二: 替换命令
批量注释: :起始行号,结束行号s/^/注释符/g
取消注释: :起始行号,结束行号s/^注释符//g
例子:
按 i 进入插入模式后,是从光标当前位置开始输入文字;按 a 进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;按 A 进入插入模式后,是从目前光标所在行的行尾开始;按 o 进入插入模式后,是插入新的一行,从行首开始输入文字。22)其他常用在插入模式下:
按 i 进入插入模式后,是从光标当前位置开始输入文字;按 a 进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;按 A 进入插入模式后,是从目前光标所在行的行尾开始;按 o 进入插入模式后,是插入新的一行,从行首开始输入文字。3编辑模式下快捷键:
按 i 进入插入模式后,是从光标当前位置开始输入文字;按 a 进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;按 A 进入插入模式后,是从目前光标所在行的行尾开始;按 o 进入插入模式后,是插入新的一行,从行首开始输入文字。4插入与编辑模式通用:
按 i 进入插入模式后,是从光标当前位置开始输入文字;按 a 进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;按 A 进入插入模式后,是从目前光标所在行的行尾开始;按 o 进入插入模式后,是插入新的一行,从行首开始输入文字。53)格式化代码vi编辑器默认缩进是8格,若要改成4格,可以参考https://blog.csdn.net/qq_33141353/article/details/122062168
按 i 进入插入模式后,是从光标当前位置开始输入文字;按 a 进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;按 A 进入插入模式后,是从目前光标所在行的行尾开始;按 o 进入插入模式后,是插入新的一行,从行首开始输入文字。6按 i 进入插入模式后,是从光标当前位置开始输入文字;按 a 进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;按 A 进入插入模式后,是从目前光标所在行的行尾开始;按 o 进入插入模式后,是插入新的一行,从行首开始输入文字。71.格式化全部代码 输入gg, 光标移到文件头部; 输入=; 输入G(shitf+g),整个文件就格式化了。 2.格式化部分代码 光标移到要格式化的第1行代码,输入shitf + v,进入可视化模式; 按j,选中要格式化的所有代码; 输入=,选中的代码就被格式化了。
原文:https://juejin.cn/post/7091245667305127972