vi编辑器在linux系统中应该算是人气很高的一个工具了,在这里简单介绍一下伟大的vi vim一些功能与使用。

基本使用

用vi创建一个文件

[root@localhost ~]# vi mytxt
~
~
~
~
~
~
~
~
~
~
~
~
"mytxt" [New File]

如果是新创建的文件会在最后的命令行左下角标识 "文件名" [New File] 的字样。

vi的工作模式分为 命令模式 输入模式 转义模式

1、转义模式 该模式一般通过:号触发输入一些命令后按下Enter键执行。

通过Esc键退出焦点(进入命令模式),输入:号 进入vi编辑器工具命令行 输入wq命令 保存并退出编辑,q!命令退出不保存,下面列举几个常用的转义模式命令。

名称说明示例
:q!退出VI 放弃保存q!
:w在编辑模式下执行保存操作
:w!在编辑模式下执行强制保存操作
:wq保存并退出VIwq
:f显示当前的文件名、光标所在行的行号以及显示比例
:set nu显示行号:set nu
:set nonu取消行号显示
:1[数字]让光标定位到第[?]行:5 光标定位到第5行
:$光标定位到最后一行

2、命令方式 进入vi后默认是命令模式 当输入正确vi内置的命令后会响应操作,否则发出警告 提示这不是一个vi命令。

名称说明示例
^把光标定位到本行的首字符
$把光标定位到本行的尾字符
i命令模式切换为编辑模式
a切换到编辑模式 当前光标的字符后面
A切换到编辑模式下 定位光标到当前行的最后一个字符
o将光标定位到新插入的下一行
cw删除光标之后一个单词
c$删除光标之后的字符
c^删除光标之前的字符
w将光标往下移动一行
b将光标往上移动一行
e将光标定位到下一行的最后一个字符
G将光标定位到最后一行
#G将光标定位到指定行2G将光标定位到第2行

复制 粘贴 撤销

名称说明示例
yy复制整行
yw复制当前光标之后所在单词字符
y$复制当前光标到行尾字符
y^复制当前光标到行首支持
p/P粘贴
u取消最近一次操作的
U取消当前行进行的所有操作
Ctrl+r对使用u命令撤销的操作进行恢复

字符串查找

vi中查找字符串使用/, ?字符触发 需要注意的是/向光标以下查找,?向光标位置以上查找 如查找光标以后文档中的 name

~
~
~
~
/name

被查到的字符会被高亮显示,如果文档中存在多个相同的字符串需要使用n下一个 | N上一个 查找。

字符串替换

当然一个方便好用的字符串编辑工具必须具备替换文字操作,这样才能增加写作的效率。

使用命令:s/替换字符串。 基本语法

  • :s/A/B 替换一行的一处 A 为B
  • :s/A/B/g 替换一行的多处 A 为B
  • :s/A/B/c 替换的时候有确认提示
  • 1,20s/A/B/g 1-20行 将A替换为B

如替换一处name为 xingming

~
~
~
~
:s/name/xingming

同时编辑多个文件

使用VI 后面加多个文件名称即可 用的不是很多 如需要同时打开a.txt b.txt c.txt 只需 vi a.txt b.txt c.txt 默认打开第一个。

:arts 显示多文件信息

:next 向后切换文件

:prev向前切换文件

:first 定位首个文件

:last 定位最后一个文件

Ctrl+^快速定位到编辑器中切换前的文件

常用的命令没有这么多 大部分命令都是经过自己在centos6.5上测试过。难免有错误 欢迎拍砖。