vi 是linux 系统的第一个全屏交互式编辑器,使用它可以实现文本的输入输出、删除、查找替换等等等功能。用户还可以根据自己的需要对其进行定制。

命令

vim +n filename   打开文件并将光标置于第n行行首

vim + filename   打开文件将光标置于最后一行行首

vim +/pattern filename  打开文件并将光标置于第一个匹配pattern行的行首

vim -r filename  首次打开vim编辑器时发生崩溃,则打开其交换文件

vim 普通模式下的操作

操作                                 功能

h 或左方向键                 光标向左移动一个字符

j 或向下方向键             光标向下移动一个字符

k或向上方向键             光标向上移动一个字符

l或向右方向键              光标向右移动一个字符

ctrl +f                             屏幕下翻一页

ctrl +b                           屏幕上翻一页

n<space>                      光标移至该行的第n个字符

0                                   移动到这一行的最前字符处

$                                  移动到这一行的最后面字符处

vim 在普通模式下

操作                                功能

i                                       进入插入模式i 表示从光标前插入

a                              进入插入模式,a表示从当前光标所在位置的下一个字符开始插入

其他的o 、r 再次不再介绍

由编辑模式退回到普通模式,按esc 键

操作                       功能

x ,X             在一行当中,x为向后删除一个字符,X 为向前删除一个符                           

nx                    n为数字,连续向后删除n个字符

dd                   删除光标所在的行

ndd                n为数字,删除光标所在行的向下n行

d1G              删除光标所在行到第一行的所有数据

dG               删除光标所在行到最后一行的所有数据

d$                删除最后一行所有的数据

d0                删除光标所在字符位置之前的改行所有字符

yy               复制光标所在那一行

nyy              n位数字,复制光标所在行的向下n行

y1G            复制光标所在行到第一行的所有数据

yG              复制光标所在行到最后一行的所有数据

y0               复制光标所在的那个字符到该行行首的所有数据

y$                复制光标所在的那个字符到该行行尾的所有数据

p,P               p表示将已复制的数据在光标下一行粘贴

u                  撤销上一步的操作

ctrl+r           重做上一次的操作

编辑完成后退回到普通模式 :wq   保存退出

存盘退出相关的读写命令

:w                  将编辑的内容写入磁盘

:w!                当文件为只读时强制写入

:q                   退出vim 编辑器

:q!                 不保存强制退出

:wq                保存退出

ZZ                表示存盘退出

 

查找和替换操作

操作                                        功能

/word                              向光标之下寻找一个名为 word的字符串

?word                               向光标之上查找一个为word的字符串

n                                     重复之前的一个搜寻动作,向下查找

N                                  反向进行前一个搜索

:n1,n2s/word1/word2/g          在n1 到n2 行之间的word1 字符串全部替换成word2

:1,$s/word1/word2/g          把从第一行到最后一行的word1 全部替换成word2

设置vi 或者vim的环境

:set nu       设置行号

:set nonu    取消行号

:syntax on    根据语法显示不同的颜色

编辑多个文档

vim /etc/xxx /etc/xxxxx /etc/sjjjj

:n  进入编辑下一个文档

其余的操作再次不多介绍