目录
一、vim命令介绍
二、vim命令模式
2.1 命令模式
2.2 输入模式
三、vim操作
3.1 打开文本
3.2 打开文件
3.3 查找文本
编辑 3.4 设置行号
编辑 3.5 替换文本
3.6 删除文本
3.7 复制和粘贴文本
3.8 保存和退出文本
四、vim命令可视化模式及用法
4.1 vim可视化模式
4.2 vim 可视化用法
一、vim命令介绍
linux 系统中“一切皆文件”,因此当我们在命令行下更改文件内容时,不可避免地要用到文本编辑器
可供选择的编辑器不止一种,例如 vim、emacs、pico、nano 等,很多人都找到了自己所喜爱的编辑器
vim文本编辑器,是由 vi 发展演变过来的文本编辑器,因其具有使用简单、功能强大、是 linux 众多发行版的默认文本编辑器
二、vim命令模式
vim 编辑文件时,存在 3 种工作模式,分别是命令模式、输入模式和编辑模式,这 3 种工作模式可随意切换
2.1 命令模式
使用 vim 编辑文件时,默认处于命令模式。此模式下,可使用方向键(上、下、左、右键)或 k、j、h、i 移动光标的位置,还可以对文件内容进行复制、粘贴、替换、删除等操作
2.2 输入模式
在输入模式下,vim 可以对文件执行写操作,类似于在 Windows 系统的文档中输入内容 使 vim 进行输入模式的方式是在下输入 i、I、a、A、o、O 等插入命令,当编辑文件完成后按 Esc 键即可返回命命令模式状态令模式
| 快捷键 | 功能描述 | | i | 在当前光标所在位置插入随后输入的文本,光标后的文本相应向右移动 | | I | 在光标所在行的行首插入随后输入的文本,行首是该行的第一个非空白字符, 相当于光标移动到行首执行 i 命令 | | o | 在光标所在行的下面插入新的一行。光标停在空行首,等待输入文本 | | O | 在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文本 | | a | 在当前光标所在位置之后插入随后输入的文本 | | A | 在光标所在行的行尾插入随后输入的文本 |
键盘输入字母i
- 编辑模式用于对文件中的指定内容执行保存、查找或替换等操作
- 使 vim 切换到编辑模式的方法是在命令模式状态下按“:”键,此时 vim 窗口的左下方出现一个“:”符号,这是就可以输入相关指令进行操作了
- 指令执行后 vim 会自动返回命令模式。如想直接返回命令模式,按 Esc 即可
三、vim操作
3.1 打开文本
vim <路径+filename>
例如:打开vim.test文件
若出现下图的情况,可能是由于以下两种原因导致 其他程序同时打开同一个文件 正在编辑文件的异常退出
处理后需要删除 .filename.swp 文件才会消除这个提示
3.2 打开文件
除此之外,我们还可以利用下表中打开文件的命令格式,针对特定情形使用适当的打开方式,可以大大提高我们的效率
| vim 使用的选项 | 说 明 | | vim filename | 打开或新建一个文件,并将光标置于第一行的首部 | | vim -r filename | 恢复上次 vim 打开时崩溃的文件 | | vim -R filename | 把指定的文件以只读方式放入 vim 编辑器中 | | vim + filename | 打开文件,并将光标置于最后一行的首部 | | vim +n filename | 打开文件,并将光标置于第 n 行的首部 | | vim +/pattern filename | 打幵文件,并将光标置于第一个与 pattern 匹配的位置 | | vim -c command filename | 在对文件进行编辑前,先执行指定的命令 |
3.3 查找文本
| 快捷键 | 功能描述 | | /abc | 从光标所在位置向前查找字符串 abc | | /^abc | 查找以 abc 为行首的行 | | /abc$ | 查找以 abc 为行尾的行 | | ?abc | 从光标所在为主向后查找字符串 abc | | n | 向同一方向重复上次的查找指令 | | N | 向相反方向重复上次的查找指定 |
从行开头查询字符串
从行开头查询字符串
/abc$
查找的字符串是严格区分大小写的 如果想忽略大小写,则输入命令 ":set ic";调整回来输入":set noic"
忽略大小写
:set ic
大小写区分
:set noic
特殊字符,则需要加上转义字符 “\”。常见的特殊字符有 \、*、?、$ 等 比如查找字符 "$" /\$
3.4 设置行号
临时显示行号
退出vim后再次打开vim就不显示行号了
:set nu
永久显示行号 修改vim配置文件vimrc,如果没有此文件可以创建一个 vim ~/.vimrc
3.5 替换文本
| 快捷键 | 功能描述 | | r | 替换光标所在位置的字符 | | R | 从光标所在位置开始替换字符,其输入内容会覆盖掉后面等长的文本内容, 按“Esc”可以结束 | | :s/a1/a2/g | 将当前光标所在行中的所有 a1 用 a2 替换 | | :n1,n2s/a1/a2/g | 将文件中 n1 到 n2 行中所有 a1 都用 a2 替换 | | :g/a1/a2/g | 将文件中所有的 a1 都用 a2 替换 |
要将某文件中所有的 “admin" 替换为 “root",则有两种输入命令
:1,$s/admin/root/g
:%s/admin/root/g
3.6 删除文本
被删除的内容并没有真正删除,都放在了剪贴板中。
将光标移动到指定位置处,按下
"p"
键,就可以将刚才删除的内容又粘贴到此处
| 快捷键 | 功能描述 | | x | 删除光标所在位置的字符 | | dd | 删除光标所在行 | | ndd | 删除当前行(包括此行)后 n 行文本 | | dG | 删除光标所在行一直到文件末尾的所有内容 | | D | 删除光标位置到行尾的内容 | | :a1,a2d | 函数从 a1 行到 a2 行的文本内容 |
删除光标所在的字符
按键x
3.7 复制和粘贴文本
| 快捷键 | 功能描述 | | p | 将剪贴板中的内容粘贴到光标后 | | P(大写) | 将剪贴板中的内容粘贴到光标前 | | y | 复制已选中的文本到剪贴板 | | yy | 将光标所在行复制到剪贴板,此命令前可以加数字 n,可复制多行 | | yw | 将光标位置的单词复制到剪贴板 |
3.8 保存和退出文本
w!” 和 “wq!” 等类似的指令,通常用于对文件没有写权限的时候(显示 readonly, 修改失败),但如果你是文件的所有者或者 root 用户,就可以强制执行
| 命令 | 功能描述 | | :wq | 保存并退出 vim 编辑器 | | :wq! | 保存并强制退出 vim 编辑器 | | :q | 不保存就退出 vim 编辑器 | | :q! | 不保存,且强制退出 vim 编辑器 | | :w | 保存但是不退出 vim 编辑器 | | :w! | 强制保存文本 | | :w filename | 另存到 filename 文件 | | x! | 保存文本,并退出 vim 编辑器,更通用的一个 vim 命令 | | ZZ | 直接退出 vim 编辑器 |
四、vim命令可视化模式及用法
在 vim 中,如果想选中目标文本,就需要调整 vim 进入可视化模式,通过在 vim 命令模式下键入不同的键,可以进入不同的可视化模式
| 命令 | 功能 | | v(小写) | 又称字符可视化模式,此模式下目标文本的选择是以字符为单位的,也就是说, 该模式下要一个字符一个字符的选中要操作的文本。 | | V(大写) | 又称行可视化模式,此模式化目标文本的选择是以行为单位的,也就是说, 该模式化可以一行一行的选中要操作的文本。 | | Ctrl+v(组合键) | 又称块可视化模式,该模式下可以选中文本中的一个矩形区域作为目标文本, 以按下 Ctrl+v 位置作为矩形的一角,光标移动的终点位置作为它的对角。 |
4.1 vim可视化模式
以字符可视化模式为例,vim 成功进入该模式的标志是窗口底部出现 --VISUAL-- 进入行可视化模式的标志是图 2 标记处显示 --VISUAL LINE-- 进入块可视化模式的标志是图 2 标记处显示 --VISUAL BLOCK--
4.2 vim 可视化用法
- 当选中文本并做完相应操作(例如选中文件并按 p 键将其复制到剪贴板中)后,vim 会自动从可视化模式转换为命令模式。当然,也可以再次按 v(或者 V、Ctrl+v)手动退出可视化模式。
- 之前所学的在 vim 命令模式下编辑文本的很多命令,在可视化模式下仍然可以使用。
- 下图列出了常用的几个可以在可视化模式下使用的命令。
| 命令 | 功能 | | d | 删除选中的部分文本。 | | D | 删除选中部分所在的行,和 d 不同之处在于,即使选中文本中有些字符所在的行没有都选中, 删除时也会一并删除。 | | y | 将选中部分复制到剪贴板中。 | | p(小写) | 将剪贴板中的内容粘贴到光标之后。 | | P(大写) | 将剪贴板中的内容粘贴到光标之前。 | | u(小写) | 将选中部分中的大写字符全部改为小写字符。 | | U(大写) | 将选中部分中的小写字符全部改为大写字符。 | | > | 将选中部分右移(缩进)一个 tab 键规定的长度(CentOS 6.x 中, 一个tab键默认相当于 8 个空白字符的长度)。 | | < | 将选中部分左移一个 tab 键规定的长度 |
|