Linux 文件编辑命令

一、三种模式介绍

命令模式

插入模式(编辑模式)

末行模式

二、模式切换

1.命令模式切换到插入模式

(1) a //进入到当前光标后开始编辑

(2) A //进入到当前光标所在行的行末开始编辑

(3)i //进入当前光标位置开始编辑

(4)I //进入当前光标所在行的行头开始编辑

(5) o //进入当前光标下一行开始编辑

(6)O //进入当前光标上一行开始编辑

2.命令模式切换到末行模式

(1): //对文本的设置或保存工作

(2) / //对文本进行全文向下搜索字符串string

(3)? //对文本进行全文向上搜索字符串string

3.vi/vim常用命令

(1) n dd //删除光标开始向下的n行

例如:现在用vi打开一个main.c文件,文件中有以下代码,在命令模式下进行操作:

①删除多行

将光标移到某一行,按下数字n,就可以删除从这行开始往下的n行。

此时,假如现在不想要4,5,6这3行,将光标移到第4行,输入:3dd,这3行代码就被删除了:

②删除一行:

删除一行代码时不用输入1,之间把光标移到要删除的那一行,然后按dd。

现在要删除第四行,就直接把光标移到第4 行,然后按dd就可以删除这一行:

③这种删除是一种剪切式的删除:

可以将刚刚删除的一行代码粘贴到光标所在的那一行。将光标移到某一行,然后按p,刚刚删除的代码就会粘贴到这一行。

刚刚上面我们删除了一个空行,现在把这个空行粘贴到第5行,把光标移动到第5行,然后按p,此时刚刚删除的空行就粘贴到了第5行的下面,也就是第6行:

(2)n yy //拷贝光标开始向下的n行

例如:有以下代码:

①复制一行:

将光标移到某一行,不用按1,直接按yy,改行代码就被复制了。

②复制多行:

将光标移到某一行,要复制从这行开始往下的n行,就按下n,然后按yy,这时从光标开始往下的n行代码就被复制了。

如果现在要复制4,5,6,7这四行代码,就把光标移到第4行,然后按4yy,此时,这4行代码已经被复制了:

(3) p //粘贴

将光标移到某一行按p将刚刚复制的内容粘贴到光标所在的下一行。

如果要在第8行粘贴刚刚上面复制的4,5,6,7这4行代码,就将光标移到第8行,然后按p:

(4)u //撤销上一次操作

如果现在要撤销刚刚上面粘贴的代码,就直接按n,即可以撤销上一步粘贴的操作:

(5) ctrl + r // 恢复上一次撤销操作

如果,要恢复刚刚撤销的内容,就按ctrl + r :

(6) r和R //替换字符

①r:替换光标所在位置的字符,先按r,在按自己想要替换的字符。

例如,有以下代码:

现在要把光标所在位置的"n"替换为"y",就在光标所在位置按r,然后按y将其替换:

②R:替换从当前光标开始往后的字符,按Esc结束替换。

例如,有以下代码:

要将从现在光标位置开始往后的字符替换为"ZZZZZZ",按R,开始替换:

替换结束之后按Esc结束替换。

(7)cc //清除一行,进入插入模式重写代码,写完之后按Esc回到命令模式

例如,有如下代码:

现在要清除光标所在这一行进行重写,就按cc,从头开始写:

重写之后按Esc回到命令模式。

(8)C //清除当前光标到行末的内容,并进入插入模式进行重写代码,写完之后按Esc回到命令模式

例如,有以下代码:

现在要清除光标到行末的内容,并进入插入模式重写这段代码,按C:

重写之后,按Esc返回命令模式:

(8) shift + 6 //光标移动到当前行的行头

(9) shift + 4 //光标移动到当前行的行尾

(10)G //光标移动到整个文本的最后一行

(11)gg //光标移动到整个文本的第一行

(12)n G //光标移动到第n行

(13) d n G //删除光标到n行的内容

(14)d G //从当前光标位置删除到文件末尾

例如,有以下代码:

现在要删除光标所在位置11行行头到末尾的内容,就可以按dG:

(14) y n G //拷贝光标到n行的内容

4.末行模式下的操作

(1):w //保存文本

(2):q //退出编辑

(3):wq //保存并退出

(4):q! //强制退出

(5):w newfile //另存为

(6):set nu //显示行号

(7) :set nonu //取消行号

(8): set hlsearch //设置高亮搜索

(9): set nohlsearch //取消高亮搜索

(10):n //跳转的第n行

(11): n,m s/oldstring/newstring //替换整个文本每行的第一个oldstring

例如,有以下代码:

现在要把第5行到第15行中,每一行的第一个"toy"替换成"boy",输入:进入行末模式,然后输入5,15 s/toy/boy

按回车,即可替换:

(12) :n, m s/oldstring/newstirng/g //替换整个文本所有的oldstring

例如:有以下代码:

现在要把第5行到第15行中,所有的"toy"替换成"BBB",输入:进入行末模式,然后输入5,15 s/toy/BBB/g

按下回车,完成替换:

(13) /string //向下搜索string

例如,有以下代码:

按/,/后面输入要搜索的内容,进行搜索:

然后按回车,这时按n就可以在文件中从头到尾依次搜索所输入的内容:

(14)?string //从下向上搜索string

相关推荐
艾伦_耶格宇1 小时前
【ACP】阿里云云计算高级运维工程师--ACP
运维·阿里云·云计算
一位摩羯座DBA2 小时前
Redhat&Centos挂载镜像
linux·运维·centos
学习3人组2 小时前
CentOS配置网络
linux·网络·centos
计算机毕设定制辅导-无忧学长2 小时前
西门子 PLC 与 Modbus 集成:S7-1500 RTU/TCP 配置指南(一)
服务器·数据库·tcp/ip
weixin_307779132 小时前
Hive集群之间迁移的Linux Shell脚本
大数据·linux·hive·bash·迁移学习
漫步企鹅3 小时前
【蓝牙】Linux Qt4查看已经配对的蓝牙信息
linux·qt·蓝牙·配对
cui_win3 小时前
【网络】Linux 内核优化实战 - net.core.flow_limit_table_len
linux·运维·网络
梦在深巷、3 小时前
MySQL/MariaDB数据库主从复制之基于二进制日志的方式
linux·数据库·mysql·mariadb
风清再凯3 小时前
自动化工具ansible,以及playbook剧本
运维·自动化·ansible
深圳安锐科技有限公司3 小时前
深圳安锐科技发布国内首款4G 索力仪!让斜拉桥索力自动化监测更精准高效
运维·安全·自动化·自动化监测·人工监测·桥梁监测·索力监测