本文介绍Vim编辑器的使用
vi和vim的区别它们都是多模式编辑器 不同的是vim是vi的升级版本
它不仅兼容vi的所有指令而且还有一些新的特性在里面
vim的这些优势主要体现在以下几个方面
多级撤消 在vi里 按u只能撤消上次命令 而在vim里可以无限制的撤消 易用性 vi只能运行于unix中 而vim不仅可以运行于unix windows mac等多操作平台 语法加亮 vim可以用不同的颜色来加亮你的代码 可视化操作 vim不仅可以在终端运行 也可以运行于x window mac windows 完全兼容vi 某些情况下 你可以把vim当成vi来使用linux编辑器Vim键盘详解 见 http://www.linuxidc.com/Linux/2016-05/131866.htm
vim主要模式介绍 确认是否安装了vim工具 [root@www.linuxidc.com /]# rpm -qf `which vim`vim-enhanced-7.4.160-1.el7.x86_64 如果没有安装使用yum在线安装即可 [root@www.linuxidc.com /]# yum -y install vim 三种模式 vim编辑器三种模式:命令模式、插入模式、末行模式

从上图可以看出:末行模式切换到插入模式需要先切换到命令模式
按键说明 光标移动 按键 说明 h或← 光标向左移动一个字符 j或↓ 光标向下移动一个字符 k或↑ 光标向上移动一个字符 l或→ 光标向右移动一个字符 Ctrl+f或PageDown 向下翻一页 Ctrl+b或PageUp 向上翻一页 + 光标移动到非空白字符的下一列 - 光标移动到非空白字符的上一列 n+space 光标移动到本行第n个字符处 0或home 光标所在行行首 $或end 光标所在行行尾 H 移动光标到屏幕第一行行首 M 移动光标到屏幕中央那一行的行首 L 移动光标到屏幕最后一行行首 G 移动光标到当前文件的末尾 n+G 移动光标到这个文件的第n行 gg 移动光标到这个文件的第一列 相当于1+G :n 移动光标到这到这个文件的第n行 相当于nG n+Enter 向下移动n行 查找 按键 说明 /word 向光标之下寻找一个名称为word的字符串 ?word 想光标之上寻找一个名称为word的字符串 n 重复前一个寻找动作如果执行/vim去向下寻找vim字符串
按n会向下继续寻找下一个vim字符串
如果执行?vim按n则会向上寻找vim字符串 N 与n相反,进行反向搜索 :n1,n2s/word1/word2/g 在n1与n2行之间寻找word1字符串并替换为word2字符串 :1,$s/word1/word2/gc 从首行到末行寻找word1字符串并替换为word2字符串
并且在取代前提示是否确认替换 :% s/a/b 将每行的第一个a替换为b :% s/a/b/g 将所有的a替换为b
% 表示所有内容
g 全部
c confirm提示确认
复制粘贴删除 按键 说明 x 向后删除一个字符 X 向前删除一个字符 BackSpace 向前删除一个字符 nx 连续向后删除n个字符 dd 删除光标所在行 ndd 删除包含光标所在行在内的向下n行 d1G 删除首行到光标所在行的所有数据 dG 删除光标所在行到最后一行的所有数据 d$ 删除光标所在行光标位置到该行行尾的所有数据 d0 删除光标所在行光标位置到该行行首的所有数据 yy 复制光标所在的整行 nyy 复制光标所在的向下n行 y1G 复制首行到光标所在行的所有数据 yG 复制光标所在行到末行的所有数据 y0 复制光标所在位置到光标所在行行首的所有数据 y$ 复制光标所在位置到光标所在行行尾的所有数据 p 将已复制的数据粘贴到光标下一行 P 将已复制的数据粘贴到光标上一行 J 将光标所在行与下一行的数据合并为一行 c 重复删除多个数据 u 撤销 Ctrl+r 反撤销 . 重复前一个动作 插入和修改 按键 说明 i 从光标所在位置插入 I 从光标所在行第一个非空字符位置插入 a 从光标所在的下一个字符位置插入 A 从光标所在行的最后一个字符处开始插入 o 从光标所在位置向下插入新的一行 O 从光标所在位置向上插入新的一行 r 替换光标所在位置的一个字符 R 替换光标所在位置的所有字符直到按ESC结束 ESC 退出插入模式回到命令模式 末行模式在命令模式下按:键会进入到末行模式
按键 说明 :w 保存数据写入到硬盘 :W 强制写入数据到只读文件(需要有对该文件的写入权限) :q 退出vim :q! 强制退出不保存 :wq 保存后退出 :wq! 强制保存退出 ZZ 如果文件没有更改则不保存并退出如何有更改则保存退出 :w test.txt 将更改后的数据另存为test.txt文件 :r test.txt 将test.txt这个文件的内容追加到光标所在行之后 :n1,n2 w test.txt 将n1到n2行之间的内容存储到test.txt文件中 :! command 暂时离开vim到系统文本模式下查看执行command执行的结果 :set nu 显示行号 :set no