vi命令
2024-11-27 02:59:58 阅读次数:3
vi,命令,模式
一、概述
vi 编辑器分为三种工作模式:
一般指令模式、编辑模式(文本输入模式)、命令行模式(末行模式)。
一般指令模式:刚进入vi 时的默认模式。这个模式下能够进行:移动光标、整行的复制粘贴、整行删除 等基本操作。
编辑模式:在一般指令模式下,按 "a" "i" "o" 均可进入编辑模式。此模式下能够进行:文本的输入、删除。
命令行模式(末行模式):在一般指令模式下,按 ":" "/" "?" 均可进入命令行模式。由于此模式的输入会显示在窗口的最后一行,也叫末行模式。
此模式下能够进行:搜索、保存、离开 等操作。
二、模式具体命令
1、指令模式
1、替换命令
r :按一下,再按其他字母,就会把光标位置的字符替换成新敲的字母,但是只能替换一个
R :可以在光标位置往后重新填写内容,但是每个字符都会占一个现有位置
2、光标移动
gg :移动至文件开头
3gg 移动至文件开头第三行
G :移动至文件结尾
6G 移动至文件开头第六行
n+或者n-(按着shift再按加号或者减号) 光标向下移动 n 行
n-(不按shift那个减号) 光标向上移动 n 行
0 光标移动到当前行行首
$ 光标移动到当前行行尾
w 光标移动到下一个字的开头
b 光标移动到上一个字的开头
3、黏贴复制撤销
yy 复制一行,5yy复制5行
p 粘贴
u 撤回上次操作
y0 复制光标所在行行首到光标前面字符
y$ 复制光标所在行光标字符到行尾
y1G 复制光标所在行到第一行的所有数据
yG 复制光标所在行到最后一行的所有数据
4、删除
x 删除光标后一个字符
X 删除光标前一个字符
nx 删除光标后 n 个字符
nX 删除光标前 n 个字符
d0 从光标处删到行首
d$ 从光标处删到行尾
删除光标所在行
nd 删除光标所在行及其后 n-1 行
dw 删除光标所在位置的单词
db 删除光标所在位置前一个单词
2、编辑模式
指令模式进入编辑模式常用命令:
a :在当前光标后面一个位置插入键盘字符
i :在当前光标位置插入键盘字符
o :在当前光标下一行插入键盘字符
A :在当前行尾插入键盘字符
I :在当前行首插入键盘字符
O :在当前光标上一行插入键盘字符
S :将光标所在行剪切并保留所在行为空行,并进入编辑模式
3、命令行模式
1、退出命令:
q :退出没有修改的文件。若文件已经被修改,则此命令无效。
q! :强制退出,且不保存修改的部分。
:w :保存文件,但不退出。
:x :保存文件并退出。
:wq :保存文件并退出。
:w File 另存为File给出的文件名,不退出。
:r File 读入File指定的文件。
2、显示取消行号
:set nu 显示行号
:set nonu 取消行号显示
:5 移动至第五行号所在行
:1 移动至第一行
:$ 移动至行尾
3、查找内容
/string 向下查找string字符,按n继续相同方向查找,按N反方向查找
?string 向上查找string字符,按n继续相同方向查找,按N反方向查找
支持正则查找
/^the 查找以the开头
4、替换
:s/str1/str2/ 当前行替换,默认替换第一个str1
:s/str1/str2/g 当前行全部替换
:s/str1/str2/gc 当前行全部替换,c表示替换时需要确认
:.,$ s/str1/str2/g 当前行到最后一行替换
:1,$ s/str1/str2/g 第一行到最后一行替换
:%s/str1/str2/g 全文替换
三、vim多行注释
方法一:块选择模式
1. 插入注释:
按 “Esc” 进入命令行模式
按 “Ctrl + v” 进入可视化块模式
利用上下左右键调整需要注释的行数及行的宽度
再按 “Shift + i” 进入插入模式
输入注释符号,如:“#”、“//” #显示的是对一行进行操作,按Esc之后就会对所有的行相同操作
再次按 “Esc” ,即可完成多行注释 【会稍微卡一会,一定要记得这一步哦~】
2. 取消注释:
按 “Esc” 进入命令行模式
按 “Ctrl + v” 进入可视化块模式
利用上下左右键调整需要注释的行数及行的宽度
再按d即可完成去注释
方法二:sed替换
1. 插入注释:
按 “Esc” 进入命令行模式
输入以下命令:
:起始行,结束行s/^/注释符号/g
2. 去注释:
按 “Esc” 进入命令行模式
输入以下命令:
:起始行号,结束行号s/^注释符号//g
版权声明:本文内容来自第三方投稿或授权转载,原文地址:https://blog.51cto.com/u_13236892/5568867,作者:哭泣的馒头,版权归原作者所有。本网站转在其作品的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如因作品内容、版权等问题需要同本网站联系,请发邮件至ctyunbbs@chinatelecom.cn沟通。
上一篇:LINUX随笔二十一 添加动态库路径的方法
下一篇:Nginx Location