编辑器

编辑器是用于制作文档或者文本的程序

  • word
  • vscode/sublime/atom

文本编辑器可读文本,包括程序源代码、markdown、txt文档、脚本等

  • 图形化文本编辑器
  • 字符界面文本编辑器:vi/vim,emacs,nano

vi编辑器

vi编辑器是全屏字符界面编辑器

vi/view两个程序,view是只读程序

vi工作模式

  • 命令模式
  • 插入模式
  • 命令行模式
  • visual模式

vim

su

apt install vim

启动/退出vi

  • 启动后进入命令模式
  • 命令行模式下:q!退出

vi的模式切换

vi的模式切换

•默认进入命令模式

•按:进入命令行模式

•从输入模式返回命令模式的命令键: ESC

vi编辑器基本命令

创建或编辑一个文件

vi test.txt(文件名可以随意,并且后缀名不是必须的)

按下键盘上的“i”键,进入编辑状态。

移动光标

键盘方向键移动光标
命令模式下移动光标
  • :help → usr_02.txt The first steps in Vim → Ctrl-]

  • h表示向西/左

  • j表示向南/下

  • k表示向北/上

  • l表示向东/右

  • 0或^移动光标到行首

  • $移动光标到行尾

  • w向后移动一个word

  • b向前移动光标到word的开头

  • e移动光标到word的尾部

  • [space]向后移动光标一格

  • [return]光标移动到下一行的行首

  • [backspace]光标向前移动一格

插入文本

在命令模式下,输入i,I,a,A,o,O字符切换到输入模式

命令 功能
i 在光标左侧插入
I 在光标所在行的开头插入
a 在光标右侧插入
A 在光标所在行的末尾插入
o 在光标所在行的下一行增添新行,并且光标位于新行的开头
O 在光标所在行的上一行增添新行,并且光标位于新行的开头

文本修改

在命令模式下,如下命令可以修改文本

命令 功能
x 删除光标所在字符
dd 删除光标所在行
u 撤销最近修改
U 撤销当前行的所有修改
r 替换光标所在字符
R 替换从光标开始的字符,同时进入输入模式
. 重复上一次的修改

搜索文本

在命令模式下:

  • /向后搜索
  • ?向前搜索
  • n按照/或?的方向搜索下一个匹配项

保存文本

: 进入命令行模式
:wq 保存并退出
:q 退出*
:q! 强制退出

help

命令行模式:help进入帮助模式

  • :help x搜索命令模式下x命令
  • :helpgrep以grep方式搜索

vimtutor

vi缓冲原理

vi的缓冲模型

•vi将文件从磁盘调入内存缓冲

•只显示一个页面大小

•存在一个修改队列

  1. 每次进入文本模式记录为1项
  2. 命令将最后一次修改append到队列
  3. u命令回退这个队列

vi的缓冲模型