vi(visual editor)/vim 学习笔记
第一章
unix 中的编辑器种类:
- 行编辑器:一次只显示文件中显示一行。 – ed /ex
- 全屏编辑器:在屏幕上显示文件的一部分。 –vi、emacs
指令总结
指令 | 命令 |
---|---|
打开文件 | vi [文件名字] |
打开非本目录文件 | vi 路径[文件名] |
保存并退出 | zz 、wq |
保存但不离开 | w |
不保存直接退出 | q |
恢复文件 | e! |
恢复并离开 | q! |
1.vi 的编辑文本原理
- vi 先将文件存到的一部分(也就是我们要显示的文件内容)存到缓冲区绕后
- 我们编辑文件缓冲部分,当我们保存文件时将用缓冲的文件保存到原文件中进行修改
- 注意: 编辑缓冲区文件,不保存,不会修改原文件。
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! 写入文件