精通Linux中的编辑器(非常详细!!!)

今天我们来说一下编辑器......

Linux中的编辑器

vi:是一个文本编辑器,用于撰写文档,或者开发程序。

vim:是vi的增强版功能一致,可视化效果更好一些。去鼠标化编辑更加方便可定制化

注意:vim编辑器是一个模式化文本编辑器工具

编辑器中有三种常用的模式:

编辑模式、插入模式、末行模式

编辑模式

复制内容:#(数字)

复制代码
单行复制:yy
多行复制:#yy

剪切内容(也可以是删除):

复制代码
        单行剪切:dd

        多行剪切:#dd

        剪切(删除)光标之前的一个字符到行首的内容:d0

        光标到行尾的内容:d$

        光标到行尾的内容:D

        删除光标所在行到最后一行:dG

        删除光标所在位置的词组:dw        (注意:光标得在词组的第一个符号位置才可以删除词组否则只删除该单词)

粘贴内容: p

移动光标:

复制代码
        h:左移光标
        l:右移光标
        j:下移光标
        k:上移光标
        H:移动到当前屏幕的第一行,注意不是文档的第一行
        L:移动到当前屏幕的最后一行,注意不是文档的最后一行
        M:移动当前屏幕中间行

翻页快捷键:

ctrl+f 上翻一页

ctrl+b 上翻一页

ctrl+d 上翻半页

ctrl+u 下翻半页

复制代码
#G:数字+G,定位到文档指定行
G:定位到文档的最后一行
gg:定位到文档的第一行
w:跳转到最后一个词组的首字母
x:删除一个字符

撤销操作:

复制代码
u:撤销上一步操作(最多可以撤销50条)
ctrl -r:撤销撤销操作(回复撤销内容)
点(.)重复上一步的操作

插查询功能:

输入/ str 搜索功能(str代表搜索的内容)

n:向下跳转一个搜索到的关键词

N:向上跳转一个搜索到的关键词

插入模式:

切换到插入模式的时候左下角会出现INSERRT单词

进入插入模式的方式:

复制代码
i  -->  表示在光标前进行插入内容
a  -->  表示在光标后进行插入内容、
o  -->  表示在光标前行的下一行进行编辑
I  -->  表示在行首进行插入内容
A  -->  表示在行尾进行插入
O  -->  表示在光标所在的行的上一行插入新行进行插入内容

末行模式:

作用:用于执行一些命令或者与bash进行交互,或者执行一系列自动化指令

进入末行模式:切换到编辑模式才可以换成末行模式esc切换到编辑模式shift+:进入末行模式

复制代码
保存:w
退出:q
保存退出:wq
强制保存退出:wq!
强制退出:q!
保存退出快捷方式:x 、zz 或者 shift+zz
命令执行:!command [option] 参数
读取命令执行结果:r !conmmand [option] 参数
读取其他文件的内容:r /路径/文件名
显示行号:set nu
取消高亮:nohl
查找替换功能:
    指定范围查找::start,stop s/查找内容/替换内容/g
        start:起始行  stop:结束行  g:表示全部替换(不写默认是每行只替换第一个)  %:表示全文搜索
特殊替换:就是替换/
这时格式中的就得用别的特殊符号
设置tab缩进4个字符:set tabstop=4
复制指定范围到n行下:start,stop co n
删除指定行:start,stop d
移动指定行下面:start,stop m n

注意:如果想打开文件就显示行号或者查询不显示高亮可以在vim中的配置文件中加上这两个

显示行号: :set nu

显示高亮: :syntax on

保存退出即可

替换模式(不常用):

R:进入替换模式,esc退出

r:当替换一个字符后自动退出

注意:插入模式不可直接切换到末行模式下

vi的崩溃缓存机制

如果vi打开的文件没有关闭,则会在文件的位置下生成缓存文件,文件名的格式是:.文件名.sw什么的隐藏文件

基于崩溃缓存文件恢复成原始文件的过程:

1、用vi -r 崩溃缓存文件 打开后保存退出

2、用vi打开原始文件

确定恢复后,就可以把崩溃缓存文件删了;如果在崩溃缓存文件中无法保存就可需要加上!号

注意:vi的配置文件

~/.vimrc:每一个用户都有自己的配置文件,设置只对当前用户生效

/etc/vimrc:这是全局配置文件,对所有用户都生效(不建议更改)

vi补充:

Vi打开文件的时候:

如果文件存在,就是修改现有文件

如果文件不存在,就是创建一个新的空文件

如果vi打开出现无法保存的情况,就要看看打开的是不是一个目录

下次咱们说配置网络......

相关推荐
charlie1145141912 小时前
嵌入式Linux驱动开发——新 API 字符设备驱动完整教程 - 从设备结构体到应用测试
linux·运维·驱动开发
飞Link3 小时前
2000 亿砸向算力:字节跳动 AI 基建跨越,后端与运维的“万亿 Token”生死战
运维·人工智能
消失的旧时光-19433 小时前
C语言对象模型系列(四)《Linux 内核里的 container_of 到底是什么黑魔法?》—— 一篇讲透 Linux 内核的“对象模型”核心技巧
linux·c语言·算法
SWAGGY..3 小时前
Linux系统编程:(二)基础指令详解
linux·运维·服务器
kdxiaojie3 小时前
U-Boot分析【学习笔记】(3)
linux·笔记·学习
烛衔溟4 小时前
TypeScript 接口继承与混合类型
linux·ubuntu·typescript
张文君4 小时前
上古世纪服务端编译安装AAEmu docker编译安装
运维·docker·容器
蜡笔婧萱4 小时前
Linux--远程登录服务ssh
linux·服务器·ssh
雾岛心情4 小时前
小铭邮件管理工具箱的界面(公司版)
运维·服务器·工具·o365·小铭邮件工具箱(公司版)
一只鹿鹿鹿4 小时前
数据库运维与管理规范(WORD)
运维·数据库