介绍
vim是一个类似于vi的文本编辑器
vim - Vi IMproved, a programmers text editor
vim编辑器设置三种不同的模式,每种模式支持多种快捷键和命令
三种模式:
命令模式:控制光标的移动,可以对文本进行复制/粘贴等操作
输入模式:正常文本输入
末行模式:保存/退出文档,以及设置编辑环境
安装:[root@test ~]# yum install vim -y
模式切换:
命令模式 -> 输入模式: a i o 等键
输入模式 -> 命令模式: esc键
命令模式 -> 末行模式: :键
末行模式 -> 命令模式: esc键
a: 在光标后输入
i:在光标前输入
o:在光标的下一行输入
A:在行尾输入
I:在行首输入
O:在光标的上一行输入
命令模式:
- 光标跳转
上下左右: kjhl
# command : 跳转#个字符
- 单词跳转
w:下一个单词的词首
e:当前单词的词尾
b:当前单词的词首
# command: 跳转#个单词
- 行首行尾跳转
^:行首(非空白字符)
0:行首
$: 行尾
- 行间移动
G: 跳转到最后一行
#G:跳转第#行
1G:跳转第1行
gg:跳转第1行
- 句间/段落间移动
(): 句间
{}: 段落间
- 字符编辑
x: 删除光标处的字符
#x: 删除光标处起始的第#个字符
- 替换:
r: 替换命令
#r: 替换光标处起始的第#个字符
- 删除:
d: 删除,配合光标的跳转使用
d^: 删除光标处到行首的字符
d0:
d$: 删除光标处到行尾的字符
dw: 删除光标处到下一个单词词首的字符
de: 删除光标处到当前单词词尾的字符
db: 删除光标处到当前单词词首的字符
dd: 删除光标所在的行
#dd: 删除多行
- 粘贴
p: 粘贴
- 复制
y: 复制;工作行为类似于d
y
y^
y$
yy
#yy
……
- 撤销
u: 撤销前一次
#u: 撤销前N次
- 搜索
: / | ? 等
n: 查找下一个匹配
N: 跳转上一个匹配
- 保存退出
ZZ: 保存退出
末行模式
- 保存退出
q: 退出
w: 保存
x: 保存退出
q/w/x!: 强制
w /path/to/somefile : 另存为某个文件
- 地址定界
N: 第N行
N,M : 第N到M行
N,+M: 第N行到第N+M行
.: 当前行
$: 最后一行
%: 全文
/part1/,/part2/: 被part1匹配到被part2匹配
使用方式: 后面去跟一个编辑命令
举例:
1. :1,2d 删除1到2行
2. :4y 复制第4行
3. :%d 删除全文
w: 将范围内的内容另存到另一个文件
:5,6w /root/test_part1
r: 在指定位置插入指定文件的所有内容
:$r /etc/fstab
- 查看并替换
地址定界s/查找内容/替换内容/修饰符
修饰符:
i: 可以忽略大小写
g: 全局替换,默认情况下,只替换每一行第一次出现
举例:
:s/hello/Hi/ # 替换当前光标所在行中的hello
:%s/hello/Hi/ # 全文替换(替换每一行第一次匹配到的内容)
:%s/hello/Hi/g # 全文替换
多文件模式
vim file1 file2 file3 ….
:next 下一个文件
:prev 上一个文件
:first 第一个文件
:latest 最后一个文件
:wqall 所有文件保存退出
窗口分割
vim -o | -O file1 file2 file3….
-o: 水平分割
-O:垂直分割
窗口跳转
ctrl-w h: 跳转到左边的窗口
ctrl-w l: 跳转到右边的窗口
ctrl-w k: 调转到上面的窗口
ctrl-w j: 跳转到下面的窗口
ctrl-w t: 跳转到最顶上的窗口
ctrl-w b:跳转到最底下的窗口
定制Vim
配置文件:永久有效
全局配置文件:/etc/vimrc
个人配置文件: .vimrc
末行模式中: 当前进程有效
行号:
显示行号: set nu (set number)
取消显示: set nonu
括号匹配:
匹配: set sm (set showmatch)
取消: set nosm
自动缩进:
启用: set ai
取消: set noai
高亮搜索:
启用: set hlsearch
取消: set nohlsearch
语法高亮:
启用: syntax on
取消: syntax off
忽略字符大小写:
启用: set ic
取消: set noic
……
获取帮助:
help
vim编辑器图解: