vi编辑器的启动与退出
vi 直接进入编辑环境
:q! 强行退出vi编辑环境
文件操作
:e filename 打开filename文件。若filename为空,则重新读取当前文件
:r filename 读取filename文件内容到当前文件
:w 保存文件
:q 退出vi编辑器
:wq 保存并退出
光标移动操作
光标方向移动
h 向左移动
l 向左移动
k 向上移动
j 向下移动
翻页移动
Ctrl + F 向前翻整页
Ctrl + B 向后翻整页
Ctrl + U 向前翻半页
Ctrl + D 向后翻半页
行内快速跳转
^ 快速跳转到本行的行首字符
$ 快速跳转到本行的行尾字符
w 快速跳转到当前光标所在位置的后一个单词的首字母
b 快速跳转到当前光标所在位置的前一个单词的首字母
e 快速跳转到当前光标所在位置的后一个单词的尾字母
文件内行间快速跳转
:set nu 编辑器中显示行号
:set nonu 取消行号的显示
1G 跳转到文件的首行
G 跳转到文件的末尾行
:$ 跳转到文件的末尾行
nG 跳转到文件中的第n行
:n 跳转到文件中的第n行
编辑操作
进入输入模式
i 在当前光标处进入插入状态
a 在当前光标后进入插入状态
A 将光标移动到当前行的行末,并进入插入状态
o 在当前行的下面插入新行,光标移动到新行的行首,进入插入状态
O 在当前行的上面插入新行,光标移动到新行的行首,进入插入状态
cw 删除当前光标到年在单词尾部的字符,并进入插入状态
c$ 删除当前光标到行尾的字符,并进入插入状态
c^ 删除当前光标之前(不包括光标上的字符)到行首的字符,并进入插入状态
输入模式的操作
删除操作
x 删除光标处的单个字符
dd 删除光标所在行
dw 删除当前字符到单词尾(包括空格)的所有字符
de 删除当前字符到单词尾(不包括单词尾部的空格)的所有字符
d$ 删除当前字符到行首的所有字符
J 删除光标所在行行尾的换行符,相当于合并当前行和下一行的内容。
:%d 清空全部文本内容
撤销操作
u 取消最近一次的操作,并恢复操作结果
U 取消对当前行进行的所有操作
Ctrl + r 对使用u命令撤销的操作进行恢复
复制操作
yy 复制当前行整行的内容到vi缓冲区
yw 复制当前光标到单词尾字符的内容到vi缓冲区
y$ 复制当前光标到行尾的内容到vi缓冲区
y^ 复制当前光标到行首的内容到vi 缓冲区
:m,ny 复制文件中第m行到第n行之间的文本
粘贴操作
p 将缓冲区中的内容粘贴到当前的位置(不覆盖文件已有的内容)
查找操作
/word 自上而下的查找操作
?word 自下而上的查找操作
继续往下搜索按/,继续往上搜索按?
:nohl 取消高亮。查找后,单词仍为高亮
替换操作(注意会匹配空格,若写为/ old/则空格会被匹配)
:s/old/new/ 普通替换操作。用字符串str2替换行中首次出现的字符串str1。此时,正文中所有目标串都被加亮,输入:s,继续替换下一个目标串。
:s/old/new/g 行内全部替换操作
:m,ns/old/new/g 在m至n行区域内进行替换操作
:.,$s/str1/str2/g 用字符串str2替换正文当前行到末尾所有出现的字符串str1
:%s/old/new/g 整个文件内的替换操作
:s/old/new/c 使用替换的确认功能
编辑器的多文件操作
:args 显示多文件信息
:next 和 :prev 前后切换多文件
:n 和 :N 前后切换多文件
:first 和 :last 定位首文件和尾文件
Ctrl + ^ 循环文件切换
标签使用
# ctags - R 递归生成tags
# vim * 递归打开所有文件
:set tags=~/nginx/tags 设置tags文件路径
Ctrl + ] 跳转到匹配tags。如选中一个函数,则跳转到选中函数的定义
Ctrl + o 切换到上个跳转点
Ctrl + i 切换到下个跳转点
# grep -nr “string” dir 命令行辅助搜索字符串
分屏
:split 或 :sp 水平分屏
:vertical split 或 :vsp 垂直分屏
Ctrl + w + w 屏幕之间切换
Ctrl + w + x 将当前窗口与下一个窗口对调
:e filename 当前屏打开文件
使用tab切换多个文件
:tabnew /path/to/foo.txt
按g,按t,在tab间切换
跳到第20行
:20
选择文件块
按v,然后使用方向键选择文本块
拷贝
选择文本块后,按y
剪切
选择文本块后,按x
粘帖
执行拷贝或剪切操作后,再目标位置,按p
删除
选择文本块后,按d
按行选择文本块
Shift+v
按列选择文本块
Ctrl+v
拷贝当前行
yy
往下拷贝三行
3yy
删除当前行
dd
往下删除三行
3dd
撤销 u
反撤销 Ctrl+r
清空全部文本内容
:%d
批量注释
1)Ctrl + v
2)光标上或下移选择需要注释行的开头
3)按大写I键,下方会提示 insert 模式,输入注释符号(#或//)
4)按ESC键,多行即被注释
批量删除注释
同上一、二步骤后,按d键,注释即被删除
vim 文本编辑命令
最新推荐文章于 2022-08-01 11:51:17 发布