文本编辑器的作用:
创建或修改文本文件
维护Linux系统中的各种配置文件
Linux中最常用的文本编辑器:
vi:类Unix系统中默认的文本编辑器
vim:vi编辑器的增强版本,习惯上也称为vi(高亮显示,就是有颜色)
[root@localhost ~]# yum install -y vim
1.vim工作模式
vim常用的工作模式有:命令模式、末行模式和编辑模式
命令模式:也称普通模式,控制光标移动,可对文本进行复制、粘贴、删除和查找等工作。
输入模式:也称插入模式,正常的文本录入。
末行模式:也称命令末行模式,保存或退出文档,以及设置编辑环境。
直接输入vim命令,即可开启文本编辑器,默认创建一个新文件(如果存在,vim将打开文件;如果不存在,则创建该文件)
[root@localhost ~]# vim /etc/passwd #进入命令模式,光标可以任意移动
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/n
vim会默认进入普通模式,进入插入模式可以通过按键进入:
a 在光标后面插入新内容
A 在光标所在行的行尾插入新内容
i 在光标所在地之前添加
I 在行首插入新内容
o 在光标所在行之后添加新行
O 在光标所在行之前插入新行
2.光标操作
移动光标方法:适用方向键(上、下、左、右)
快捷键 功能
gg 直接跳转到行首(d gg 删除光标所在行到文档首部的全部内容)
G 跳转转到行尾的首部(d G 删除光标所在行到文档尾部的全部内容)
nG 表示直接跳转到n行首
$ 跳转到光标所在行的行尾(d $ 删除光标所在字符到行尾所有内容,包括光标所在处字符)
^ 跳转到光标所在行的行首(d ^ 删除光标所在字符到行首内容,不包括光标所在行处的字符
w 按单词进行跳转(d w 按单词进行删除)
r 替换光标所在处字符
h 光标往左移动
j 光标往下移动
k 光标往上移动
l 光标往右移动
3.编辑文档
编辑文档有两种模式:进入编辑模式操作和快捷键操作
快捷键 功能
d 删除光标所在位置方向键指向的字母(上下删除上下行)
dd 删除一行
d$ 删除光标之后
u 撤销上一步操作,保存之后,就不能撤销了
gg 直接跳转到行首(d gg 删除光标所在行到文档首部的全部内容)
nG 跳转转到行尾的首部(d G 删除光标所在行到文档尾部的全部内容)
yy 复制光标所在行
nyy 复制光标所在后n行
p 粘贴至当前之后
P 粘贴至当前之前
x 直接往右删除,不需要进入删除模式
s 删除光标所在处字符并进行插入模式
w 按单词进行跳转(d w 按单词进行删除)
J 删除换行符,可以将两行合并为一行(等于^跟删除键)
cc 剪切 并进入插入模式
rx 将光标字符替换为x(x可为任意单词)
line_num cc 剪切多少行
ctrl+w 删除一个单词
ctrl+r 当前重做操作
4.替换与查找
查找替换(没有空格):
:s/被替换内容/替换内容/ 表示将当前行中出现的第一个 被替换内容 替换为 替换内容,没有则不替换
:s/被替换内容/替换后的内容/g 表示将当前行中所有的 被替换内容 替换为 替换内容,没有则不替换(g 表示行)
:ns/被替换内容/替换后的内容/g 表示第n行中所有的 被替换内容 替换为 替换内容,没有则不替换
:% s/被替换内容/替换后的内容/g 表示替换所有被匹配到的关键字 (% 表示全局)
:% s/被替换内容/替换后的内容/ 表示查找当前文件中所有的 被替换内容 替换 成替换后的内容,但是每行匹配到的只替换第一个匹配到的
:%s/被替换的关键//g 表示删除匹配到的所有关键字
查找字符串:
? 关键字 表示在文档中查找关键字
n 在所有匹配到的关键字之间往前循环切换
N 在所有匹配到的关键字之间往后循环切换
/ 关键字 表示在文档中查找关键字
n 在所有匹配到的关键字之间往后循环切换
N 在所有匹配到的关键字之间往前循环切换
5. 保存并退出
一般情况下,会通过命令末行模式输入特点定的指令实现保存和退出,都以”:“开头:
:w 保存
:q 退出
:wq 保存退出
:w filename 另存为 filename
:q! 强制退出不保存
:x 保存退出
:r /dir1/dir2/filename 表示读取指定文件的内容到当前文件
:line_num 表示直接跳转到指定行行首
6.扩展
6.1 显示行号
:set nu 显示行号
:set nonu 取消显示行号
6.2 忽略大小写
:set ignorecase 忽略大小写
6.3 多窗口编辑
快捷键 功能
:sp [filname] 打开一个新的窗口,如果没有filename,会默认打开一个当前文本的窗口,同步显示。有则会同时显示fileame和origin两个文本。
[ctrl] + w +w 切换到另外一个窗口
[ctrl] + w +j或[ctrl] + w + 向下箭头 跳到下一个窗口。
[ctrl] + w + k或[ctrl] + w + 向上箭头 跳到上一个窗口
[ctrl] + w + q 与 :q 相同 就是离开当前编辑窗口,但是不会保存编辑信息。若要保存,可以使用 :wq 保存离开操作。
[ctrl] + w +h 跳到左边窗口。
[ctrl] + w + l 跳到右边窗口
:close 可以关闭窗口
:split 水平分割窗口
:vsplit 垂直分割窗口
6.4 执行shell命令
需要执行一条shell命令不想退出vim编辑器时:
:!{命令} 需要查看当前目录下文档的名称(可以不用{}),按回车键返回vim编辑器
#在命令末行中输入 :!ls
[root@localhost ~]# vim /etc/passwd
aaaa initial-setup-ks.cfg messages3
anaconda-ks.cfg messages messages.tar.gz
file2 messages1 wyy.tar.bz2
id_rsa.pub messages2
Press ENTER or type command to continue
6.5 自动补齐
要输入的内容之前已经出现过,可以实现自动补全。
在输入命令的前几个字母后使用快捷键ctrl+N,实现自动补全