Ubuntu学习之vi编辑器
一、vi简介
- vi是 Visual interface 的简称,是Linux 中 最经典的文本编辑器。
- vi特点
- 没有图形界面 的功能强大的编辑器
- 只能是编辑文本内容,不能对字体、段落进行排版
- 不支持鼠标操作
- 没有菜单
- 只有命令
- vi 编辑器在 系统管理、服务器管理 编辑文件时,其功能永远不是图形界面的编辑器能比拟的
- vi特点
- vim是从vi 发展出来的一个文本编辑器,支持代码补全、编译 及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,被称为编辑器之神。
- 在很多 Linux 发行版中直接把 vi 做成 vim 的软连接
二、打开和新建文件
- vi 文件名
- 如果文件已经存在,会直接打开该文件
- 如果文件不存在,会新建一个文件
- vi 文件名 +行数 :打开文件并且定位行
- 如果只带上 + 而不指定行号,会直接定位到文件末尾
- 异常处理
- 如果 vi 异常退出,在磁盘上可能会保存有交换文件,下次再使用 vi 编辑该文件时,会看到以下屏幕信息,按下字母 d 可以 删除交换文件即可。
- 按下键盘时,注意关闭输入法
- 如果 vi 异常退出,在磁盘上可能会保存有交换文件,下次再使用 vi 编辑该文件时,会看到以下屏幕信息,按下字母 d 可以 删除交换文件即可。
三、三种工作模式
- 命令模式
- 打开文件首先进入命令模式,是使用 vi 的 入口
- 通过 命令 对文件进行常规的编辑操作,例如:定位、翻页、复制、粘贴、删除……
- 在其他图形编辑器下,通过 快捷键 或者 鼠标 实现的操作,都在 命令模式 下实现
- 末行模式 —— 执行 保存、退出 等操作
- 要退出 vi 返回到控制台,需要在末行模式下输入命令
- 末行模式 是 vi 的 出口
- 末行模式命令
- w :write 保存
- q :quit 退出,如果没有保存,不允许退出
- q! : quit 强行退出,不保存退出
- wq :write & quit 保存并退出
- x :保存并退出
- :e :edit会打开内置的文件浏览器,浏览要当前目录下的文件
- :n 文件名 :new新建文件
- :w文件名 :write另存为,但是仍然编辑当前文件,并不会切换文件
- 编辑模式 —— 正常的编辑文字
四、常用命令
- 重复次数:在命令模式下,先输入一个数字,再跟上一个命令,可以让该命令 重复执行指定次数
- 移动和选择
-
-
- 移动(基本)
-
- h :向左,食指
- j:向下,食指
- k:向上,中指
- l:向右,无名指
-
- 移动(基本)
- 行内移动
- w :word向后移动一个单词
- b :back向前移动一个单词
- 0 :行首
- ^ :行首,第一个不是空白字符的位置
- $ :行尾
- 行数移动
- gg :go文件顶部
- G :go文件末尾
- 数字gg :go移动到 数字 对应行数
- 数字G :go移动到 数字 对应行数
- :数字:移动到 数字 对应行数
- 屏幕移动
- Ctrl + b :back向上翻页
- Ctrl + f :forward向下翻页
- H :Head屏幕顶部
- M :Middle屏幕中间
- L :Low屏幕底部
- 段落移动
- vi 中使用 空行 来区分段落,在程序开发时,通常 一段功能相关的代码会写在一起 —— 之间没有空行
- { :上一段
- } :下一段
- 括号切换
- 在程序世界中,()、[]、{} 使用频率很高,而且 都是成对出现的
- % :括号匹配及切换
- 标记
- 在开发时,某一块代码可能需要稍后处理,例如:编辑、查看
- 此时先使用 m 增加一个标记,这样可以 在需要时快速地跳转回来 或者 执行其他编辑操作
- 标记名称 可以是 a~z 或者 A~Z 之间的任意 一个 字母
- 添加了标记的 行如果被删除,标记同时被删除
- 如果 在其他行添加了相同名称的标记,之前添加的标记也会被替换掉
- mx :mark添加标记 x,x 是 a~z 或者 A~Z 之间的任意一个字母
- 'x :直接定位到标记 x 所在位置
- 选中文本(可视模式)
- 学习复制命令前,应该先学会怎么样选中要复制的代码
- 在vi中要选择文本,需要先使用Visual命令切换到可视模式
- vi中提供了三种可视模式,可以方便程序员选择选中文本的方式
- 按ESC可以放弃选中,返回到命令模式
- v :可视模式从光标位置开始按照正常模式选择文本
- V :可视行模式选中光标经过的完整行
- Ctrl+v :可视块模式垂直方向选中文本
- 可视模式下,可以和移动命令连用,例如:ggVG能够选中所有内容
-
-
- 编辑操作:删除、复制、粘贴、替换、缩排
- 删除文本
- x :cut删除光标所在字符,或者选中文字
- d :(移动命令)delete删除移动命令对应的内容
- dd :delete删除光标所在行,可以ndd复制多行
- D :delete删除至行尾
- 如果使用可视模式已经选中了一段文本,那么无论使用d还是x,都可以删除选中文本
- 删除命令可以和移动命令连用,以下是常见的组合命令:
- dw :从光标位置删除到单词末尾
- d0 :从光标位置删除到一行的起始位置
- d} :从光标位置删除到段落结尾
- ndd :从光标位置向下连续删除n行
- d代码行G :从光标所在行删除到指定代码行之间的所有代码
- d'a :从光标所在行删除到标记a之间的所有代码
- 复制、粘贴
- 原理:vi中提供有一个被复制文本的缓冲区,复制命令会将选中的文字保存在缓冲区;删除命令删除的文字会被保存在缓冲区;在需要的位置,使用粘贴命令可以将缓冲区的文字插入到光标所在位置。
- vi中的文本缓冲区同样只有一个,如果后续做过复制、剪切操作,之前缓冲区中的内容会被替换;vi中的文本缓冲区和系统的剪贴板不是同一个;所以在其他软件中使用CTRL+C复制的内容,不能在vi中通过P命令粘贴;可以在编辑模式下使用鼠标右键粘贴。
- y(移动命令):copy复制
- yy:copy复制一行,可以nyy复制多行
- p:paste粘贴
- 命令d、x类似于图形界面的剪切操作——CTRL+X
- 命令y类似于图形界面的复制操作——CTRL+C
- 命令p类似于图形界面的粘贴操作——CTRL+V
- 撤销和重复
- 撤销和恢复撤销
- u : undo 撤销上次命令
- CTRL + r :redo恢复撤销的命令
- 撤销和恢复撤销
- 查找替换
- 替换
- r :replace替换当前字符命令模式
- R :replace替换当前行光标后的字符替换模式
- R命令可以进入替换模式,替换完成后,按下ESC可以回到命令模式,替换命令的作用就是不用进入编辑模式,对文件进行轻量级的修改
- 缩排和重复执行
- >> :向右增加缩进
- << :向左减少缩进
- . :重复上次命令
- 缩排命令在开发程序时,统一增加代码的缩进比较有用!一次性在选中代码前增加4个空格,就叫做增加缩进;一次性在选中代码前删除4个空格,就叫做减少缩进;在可视模式下,缩排命令只需要使用一个>或者<。
- 在程序中,缩进通常用来表示代码的归属关系,前面空格越少,代码的级别越高前面空格越多,代码的级别越低.
- 常规查找
- /str :查找str
- 查找到指定内容之后,使用Next查找下一个出现的位置:
- n:查找下一个
- N:查找上一个
- 如果不想看到高亮显示,可以随便查找一个文件中不存在的内容即可
- /str :查找str
- 单词快速匹配
- * :向后查找当前光标所在单词
- # :向前查找当前光标所在单词
- 查找并替换(在vi中查找和替换命令需要在末行模式下执行)
- :%s///g 记忆命令格式
- :%s/旧文本/新文本/g 全局替换(一次性替换文件中的所有出现的旧文本)
- :s/旧文本/新文本/g可视区域替换(先选中要替换文字的范围)
- 确认替换
- :%s/旧文本/新文本/gc 确认替换
- y-yes替换
- n-no不替换
- a-all替换所有
- q-quit退出替换
- l-last最后一个,并把光标移动到行首
- ^E向下滚屏
- ^Y向上滚屏
- :%s/旧文本/新文本/gc 确认替换
- 替换
- 插入
-
- i :insert在当前字符前插入文本常用
- I :insert在行首插入文本较常用
- a :append在当前字符后添加文本
- A :append在行末添加文本较常用
- o : 在当前行后面插入一空行常用
- O :在当前行前面插入一空行常用
-
- 演练举例说明
- 演练 连续10个星号
- 要实现这个效果可以在命令模式下
- 步骤:
- 输入10,表示要重复10次
- 输入i进入编辑模式
- 输入*也就是重复的文字
- 按下ESC返回到命令模式,返回之后vi就会把第2、3两步的操作重复10次
- 提示:正常开发时,在进入编辑模式之前,不要按数字
- 演练 利用可视块给多行代码增加注释
- 移动到要添加注释的第1行代码,按^来到行首
- 按CTRL+v进入可视块模式
- 使用j向下连续选中要添加的代码行
- 输入I进入编辑模式,并在行首插入,注意:一定要使用I
- 输入#也就是注释符号
- 按下ESC返回到命令模式,返回之后vi会在之前选中的每一行代码前插入#
- 演练 连续10个星号
- 删除文本
五、分屏命令
- :sp[文件名] :split横向增加分屏
- :vsp[文件名] :verticalsplit纵向增加分屏
- 切换分屏窗口
- w :window切换到下一个窗口
- r :reverse互换窗口
- c :close关闭当前窗口,但是不能关闭最后一个窗口
- q :quit退出当前窗口,如果是最后一个窗口,则关闭vi
- o :other关闭其他窗口
- 调整窗口大小
- + :增加窗口高度
- - :减少窗口高度
- > :增加窗口宽度
- < :减少窗口宽度
- = :等分窗口大小
六、常用命令速查图
- vimrc
- vimrc是vim的配置文件,可以设置vim的配置,包括:热键、配色、语法高亮、插件等
- Linux中vimrc有两个位置,家目录下的配置文件优先级更高
- /etc/vim/vimrc
- ~/.vimrc
- 常用的插件有:代码补全、代码折叠、搜索、Git集成……
- 网上有很多高手已经配置好的针对python开发的vimrc文件,可以下载过来直接使用
七、其他补充
THE END
0
二维码
打赏
海报
Ubuntu学习之vi编辑器
一、vi简介
vi是 Visual interface 的简称,是Linux 中 最经典的文本编辑器。
vi特点
没有图形界面 的功能强大的编辑器
只能是编辑文本内容,不能对字体、……
共有 0 条评论