1.可以理解为windows下面的文本编辑器,比如记事本,比如word文档。
2.vi编辑器通常被简称为vi,而vi又是visual editor的简称。它在Linux上的地位就像Edit程序在DOS上 一样。它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行 定制,这是其他编辑程序所没有的。
3.vi 编辑器并不是一个排版程序,它不像Word或WPS那样可以对字体、格式、段落等其他属性进行编排,它只 是一个文本编辑程序。没有菜单,只有命令,且命令繁多。
1.编辑文件
2.修改配置
3.写脚本
1、Vi:Vi不支持正则表达式的搜索。
2、Vim:Vim支持正则表达式的搜索
1、Vi:Vi没有自己的脚本语言,只是在Unix及Linux系统下进行编辑的工具。
2、Vim:Vim有自己的脚本语言,称为Vim脚本(也称为vimscript或VimL),用户可以通过多种方式使用它来增强Vim。
1、Vi:Vi不具有高度可配置性,无法和各个Vi安装之间共享文件。
2、Vim:Vim具有高度可配置性,包含Vim核心全局设置(称为vimrc)的文件可以在各个Vim安装之间共享。
vim [option] [file]
vim [选项] [文件]
-o #编辑多个文件,上下排列
-O #编辑多个文件,上下排列 文本切换ctrl+ww
-r #恢复上次异常退出的文件(.swp)
-R #以只读的方式打开文件,但可以强制保存
-M #以只读方式打开文件,但不可以强制保存
vim进入的默认状态,不能进行编辑输入操作,但可以用“上下左右”对光标进行移动,也可以执行一些操作命令(光标移动、搜索、复制、粘贴、删除)
可进行编辑输入操作
可执行保存、退出、搜索、替换、显示行号等操作
i,I,o,O,a,A,r,R,s,S
a:进入插入模式并在光标之后进行添加。 i:进入插入模式并在光标之前进行插入。 o:进入插入模式并在当前(光标所在)行之下开启新的一行。
Esc
:,/,?
Esc
G或(shift+g) #将光标移动到文件的最后一行行首gg或1gg或1G #将光标移动到文件第一行行首0 #数字0,将光标移动到当前所在行的行首$ #将光标移动到当前所在行的行尾shift+( #将光标移动到第一行行首shift+) #将光标移动到最后一行行尾n+回车 #从当前行向下移动n行ngg #移动到第n行H #光标移动到当前窗口最上方那一行M #光标移动到当前窗口中间那一行L #光标移动到当前窗口最下方那一行
yy #复制光标所在行nyy #复制光标向下n行p(np) #在光标下一行粘贴,n表示复制次数P(nP) #在光标上一行粘贴,n表示复制次数dd #删除光标所在行ndd #光标开始向下删除n行u #恢复前一个执行操作. #重复前一个执行过程 x #向后删除字符X #向前删除字符d1G #删除当前行到第一行dG #删除当前行到最后一行d0 #删除当前光标到行首d$ #删除当前光标到行尾
i #在光标所在位置插入文字a #在光标后插入文字I #在当前行首插入文字A #在当前行尾插入文字O #在当前所在行的上一行插入新一行o #在当前所在行的下一行插入新一行Esc #退出编辑模式,回到命令模式中
:wq #退出并保存:wq! #退出并强制保存:q! #强制退出,不保存
:set nu #显示行号:set nonu #取消行号:set ic #不区分大小写:set ai #自动缩进/xxx #从光标开始向下寻找xxx字符串?xxx #从光标开始向上寻找xxx字符串n #光标往下一个xxx字符串跳N #光标往上一个xxx字符串跳:noh #取消高亮显示:a,b w /root/aaa.txt #将当前文档a到b行写入文件aaa.txt:r 文件地址 #读某个文件到当前光标后
:%s/被替换内容/替换内容/g % 包含所有行 s 替换 g 包含一行所有内容
:a,b s/被替换内容/替换内容/g
:,n s/被替换内容/替换内容/g
:n,$ s/被替换内容/替换内容/g
:n s/被替换内容/替换内容/g
i+#+Esc+Esc #一次性注释多行,#可以替换成别的比如Tab批量缩进Del #删除所选内容r #替换所选内容
编辑文件的时候断开连接即可(断网或断电)重新连接服务器再次进行编辑文件
Found a swap file by the name ".vim.log.swp" Swap file ".vim.log.swp" already exists
vim -r 文件名直接编辑e退出q恢复r删除交换文件d
对照文件查找不同
diff [ption] [file1] [file2]
-y #以并列的方式显示文件的同异处-c #使用上下文的输出格式-W #在使用-y参数时,设置比较宽度-u #使用统一的格式输出 ##演示 diff -u 文本1 文本2 > 文本3 #以文本2为准做文本1的补丁文件
对照编辑多个文本,提示不同的地方
ctrl+ww切换
vimdiff [option] [file1] [file2]
Vim练习题一 1) 使用vi编辑器编辑文件/1.txt进入编辑模式写入内容“hello world” 2) 进入命令行模式复制改行内容,在下方粘贴80行 3) 快速移动光标到文件的最后一行 4) 快速移动光标到当前屏幕的中间一行 5) 快速移动光标到文件的第五行 6) 在下方插入新的一行内容“welcome to beijing” 7) 删除刚插入的一行 8) 撤销上一步的操作 9) 进入扩展模式,执行文件的保存退出操作 10) 修改相应文件,内容如下
#Vim练习题二 1.将/etc/passwd 复制到/root/目录下,并重命名为test.txt 2.用vim打开test.txt并显示行号 3.分别向下、向右、向左、向右移动5个字符,分别向下、向上翻两页 4.把光标移动到第10行,让光标移动到行末,再移动到行首,移动到test.txt文件的最后一行,移动到文件 的首行 5.搜索文件中出现的 root 并数一下一共出现多少个 6.把从第一行到第三行出现的root 替换成admin,然后还原上一步操作 8.把整个文件中所有的root替换成admin 9.把光标移动到20行,删除本行,还原上一步操作 11.删除从5行到10行的所有内容,还原上一步操作 12.复制2行并粘贴到11行下面,还原上一步操作(按两次u) 13.复制从11行到15行的内容并粘贴到8行上面,还原上一步操作(按两次u) 14.把13行到18行的内容移动文件的尾部,还原上一步操作(按两次u) 15.将文件中所有的/sbin/nologin为/bin/bash 16.在第一行下面插入新的一行,并输入"# Hello!" 17.保存文档并退出
#Vim练习题三 根据文件回答下列习题 [root@xxx ~]# cat proxy.conf server { Listen 8080; Server_Name vim.OldboyEDU.com; location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $http_host; proxy_set_header X-Forward-for; proxy_intercept_errors on; proxy_next_upstream error timeout; proxy_next_upstream_timeout 3s; proxy_next_upstream_tries 2; error_page 500 502 403 404 = /proxy_error.html; }location = /proxy_error.html { root /code/proxy; }}1.使用vim打开proxy.conf文件 2.修改Listen为listen小写,并将8080修改为80 3.修改Server_Name为server_name小写。 4.修改vim.OldboyEDU.com为vim.oldboy.com 5.在server_name行下插入一行 root /code; 6.复制5-14行的内容,然后将其粘贴到14行下面 7.删除与proxy_set_header相关的两行全部删除 8.如上操作完成后,在13-20行前面加上#号 9.删除21-23的行,然后保存当前文件