vi 、vim 学习 第一章读书笔记

本文介绍了vi/vim编辑器的基础知识,包括编辑器的种类、基本操作命令、不同模式间的转换方法及常见问题的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

vi(visual editor)/vim 学习笔记

第一章

unix 中的编辑器种类:
- 行编辑器:一次只显示文件中显示一行。 – ed /ex
- 全屏编辑器:在屏幕上显示文件的一部分。 –vi、emacs

指令总结
指令命令
打开文件vi [文件名字]
打开非本目录文件vi 路径[文件名]
保存并退出zz 、wq
保存但不离开w
不保存直接退出q
恢复文件e!
恢复并离开q!
1.vi 的编辑文本原理
  1. vi 先将文件存到的一部分(也就是我们要显示的文件内容)存到缓冲区绕后
  2. 我们编辑文件缓冲部分,当我们保存文件时将用缓冲的文件保存到原文件中进行修改
  3. 注意: 编辑缓冲区文件,不保存,不会修改原文件。
2.1 文件打开
$ vi [文件名]
$ vi 路径/文件名 
2.2 打开文件时发生的问题

1.调用vi出现[open mode]消息

立刻退出,检查环境变量,因为终端为正确识别。

2 . 出现[new file] 说明是新文件。

3 . 调用vi 出现ex 提示符。

可能是vi重绘屏幕时被打断了。解决方法,重新进入。
4 . [read only]

>表示只读文件,vi 没有权限。应该先改变权限在打开。

5 . 出现

bad file number
block special file 
character special file 
directory
extcutable
non-ascii file
file non-ascii

> 文件类型不对

6 .

visual needs addressable cursor or upline capability
bad teremcap entry
termcap entry too long
terminal: unkown termiaal type
block device required
not a typewriter
>终端没有定义/ terminfo/tremcap错误。
 解救办法:离开后检查环境变量。 
运作模式

1 . 命令模式
2 . 插入模式

保存与离开文件

1 . 保存并退出(vi命令):ZZ(注意字母字母均为大写)
2 . 保存但不离开(ex命令):w
3 . 不保存直接退出:q
4 . 保存并退出:wq

结束不保存结果

1 . 恢复文件(撤销所有编辑内容,回到原来的样子):e!
2 . 消除所有编辑结果,并离开vi:q!

保存文件时发生问题

1 . 写入文件时发生以下-发生如下内容:
file exists
file file exists -use W!
[EXisting file]
file is read only

>解决办法--输入:w! file 覆盖现有文件。
或者 w newfile  编辑结果写入新文件。

2 . 写入文件发现无权限: permission denied

w newfile 将缓冲写入新文件。
或者 mv 将原文件写入原文件
w /pathname/file , 将文件写入某个你拥有权限的目录

3 . 写入文件,发现文件系统已满。

!rm junkfile 删除一些不要的文件,空出一些空间
或者 !df 看看其他文件系统是否有空间。 w pathname

4 . 系统进入开放模式,并显示文件系统已满。

这是vi 用于存放临时文件的系统已满,
解决办法:!ls /tmp 查看有无可以删除的文件,以腾出空间
(vi 可能将临时文件存放在 /usr/tmp 或者. /var/tmp ,vim 的临时文件通常和编辑的文件处于同一个目录下。)

>技巧,vi 和shell  可以自由切换:shell 从vi 进入 shell, shell退出exit 进入vi)

5 . 写入文件发现磁盘名额已满的消息.

解决办法 :
1.pre 强迫系统保存你会的缓冲区。
2.看看是否需要删除文件,:sh (使用作业控制系统)
回到vi再用w! 写入文件

内容概要:本文档主要展示了C语言中关于字符串处理、指针操作以及动态内存分配的相关代码示例。首先介绍了如何实现键值对(“key=value”)字符串的解析,包括去除多余空格和根据键获取对应值的功能,并提供了相应的测试用例。接着演示了从给定字符串中分离出奇偶位置字符的方法,并将结果分别存储到两个不同的缓冲区中。此外,还探讨了常量(const)修饰符在变量和指针中的应用规则,解释了不同类型指针的区别及其使用场景。最后,详细讲解了如何动态分配二维字符数组,并实现了对这类数组的排序与释放操作。 适合人群:具有C语言基础的程序员或计算机科学相关专业的学生,尤其是那些希望深入理解字符串处理、指针操作以及动态内存管理机制的学习者。 使用场景及目标:①掌握如何高效地解析键值对字符串并去除其中的空白字符;②学会编写能够正确处理奇偶索引字符的函数;③理解const修饰符的作用范围及其对程序逻辑的影响;④熟悉动态分配二维字符数组的技术,并能对其进行有效的排序和清理。 阅读建议:由于本资源涉及较多底层概念和技术细节,建议读者先复习C语言基础知识,特别是指针和内存管理部分。在学习过程中,可以尝试动手编写类似的代码片段,以便更好地理解和掌握文中所介绍的各种技巧。同时,注意观察代码注释,它们对于理解复杂逻辑非常有帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值