一、Vim简介
1. Vim概述
VI:Visual Interface,可视化接口。是一个文本编辑器,主要在Unix及类Unix环境中使用。
Vim:Vim=Vi+IMproved。Vim在Vi的基础之上进行了功能提升,相当于Vi的增强版,主要特点为:
①支持多级撤销。Vi中通过字母u撤销上一级操作,Vim则可撤销多级操作
②支持语法高亮
③可跨平台使用。Vim可运行在Windows环境,安装支持Vim的组件,如:git-bash
④可编辑压缩格式文件(gzip、zip等)
2. Vimrc
Vimrc:Vimrc是一个包含初始化命令的文件,其每一行作为一个命令来执行。rc(run command)。
二、Vi三种模式&常用命令
1. Vi三种模式
1)一般模式
2)编辑模式
3)命令行模式
一般模式-->编辑模式:输入i、o、a...
编辑模式-->一般模式:ESC
2. Vi 编辑器常用命令
1)一般模式:移动光标
| 命令 | 作用 |
|---|---|
| h 或 ← | 向左移动一个字符 |
| j 或 ↓ | 向下移动一个字符 |
| K 或 ↑ | 向上移动一个字符 |
| l 或 → | 向右移动一个字符 |
| Ctrl+F 或 PgDn | 屏幕向后移动一页 |
| Ctrl+B 或 PgUp | 屏幕向前移动一页 |
| Ctrl+D | 屏幕向后移动半页 |
| Ctrl+U | 屏幕向前移动半页 |
| + | 移动到非空格符的下一列 |
| - | 移动到非空格符的上一列 |
| 0 | 移动到本行行首 |
| $ | 移动到本行行尾 |
| H | 移动到当前屏幕的最顶行 |
| M | 移动到当前屏幕的中央那一行 |
| L | 移动到当前屏幕的最底行 |
| G | 移动到文本的最末行 |
| gg | 移动到该文本的首行 |
| nG | 移动到该文本的第 n 行(n为数字) |
| n 空格 | 光标向右移动 n 个字符(n为数字) |
| n 回车 | 向下移动 n 行(n为数字) |
2)一般模式:查找&替换
| 命令 | 作用 |
|---|---|
| /word | 向光标之后搜寻名为 word的字符串,当找到第一个 word后,按 "n"继续搜后一个 |
| ?word | 向光标之前搜寻名为 word的字符串,当找到第一个word 后,按 "n"继续搜前一个 |
| :n1,n2s/word1/word2/g | 在 n1 和 n2 行间,查找 word1 这个字符串并替换为 word2;也可把/换成#
|
| :1,$s/word1/word2/g | 从第一行到最末行,查找 word1 并替换成 word2 |
| :1,$s/word1/word2/gc | 加上 c 的作用:在替换前需要用户确认 |
3)一般模式:删除、复制、粘贴
| 命令 | 作用 |
|---|---|
| x, X | x 为向后删除一个字符,X 为向前删除一个字符 |
| nx | 向后删除 n 个字符(n 为数字) |
| dd | 删除光标所在的整一行 |
| ndd | 删除光标所在的向下 n 行(n 为数字) |
| d1G | 删除光标所在行到第一行的所有数据 |
| dG | 删除光标所在行到末行的所有数据 |
| yy | 复制光标所在的整一行 |
| nyy | 复制从光标所在行起向下 n 行 |
| p, P | p 复制的数据从光标下一行粘贴,P 则从光标上一行粘贴 |
| y1G | 复制光标所在行到第一行的所有数据 |
| yG | 复制光标所在行到末行的所有数据 |
| J | 将光标所在行与下一行的数据结合成同一行 |
| u | 还原过去的操作(撤销上一级操作) |
4)编辑模式
| 命令 | 作用 |
|---|---|
| i | 在当前字符前插入字符 |
| I | 在当前行行首插入字符 |
| a | 在当前字符后插入字符 |
| A | 在当前行行末插入字符 |
| o | 在当前行下插入新的一行 |
| O | 在当前行上插入新的一行 |
| r | 替换光标所在的字符,只替换一次 |
| R | 一直替换光标所在的字符,一直到按下 ESC |
5)命令模式
| 命令 | 作用 |
|---|---|
| :w | 将编辑过的文本保存 |
| :w! | 若文本属性为只读时,强制保存 |
| :q | 退出 vim |
| :q! | 不管编辑or未编辑都不保存并退出(强制退出) |
| :wq | 保存并退出 |
| :e! | 将文档还原成最原始状态 |
| ZZ | 若文档没有改动,则不储存离开,若文档改动过,则储存后离开,相当于 :wq |
| :w [filename] | 编辑后的文档另存为 filename |
| :r [filename] | 在当前光标所在行的下面读入 filename 文档的内容 |
| :set nu | 在每行的行首显示行号 |
| :set nonu | 取消行号显示 |
| :n1,n2 w [filename] | 将 n1 到 n2 的内容另存为名为 filename的文档 |
| :! command | 暂时离开 vim 运行某个 linux 命令 如 :! ls /home 暂时列出 /home目录下的文件,然后会提示按回车回到 vim界面 |










网友评论