前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux笔记:vi常用命令

Linux笔记:vi常用命令

作者头像
朝雨忆轻尘
发布2019-06-19 15:53:13
8K0
发布2019-06-19 15:53:13
举报
文章被收录于专栏:朝雨忆轻尘

vi编辑器是所有Unix及Linux系统下标准的编辑器,在很多时候我们都需要使用vi修改服务端配置,vi其实非常强大,只要命令使用熟练的情况下,编辑速度并不亚于现在的图形化编辑器,这里简单地介绍一下它的使用方法和部分常用指令。

VI状态模式

Vi有三种基本的工作模式:指令行模式、文本输入模式、行末模式。 指令模式 ( Command Mode) 下输入 a、i、o 进入文本输入模式 ( Input Mode ) 文本输入模式 ( Input Mode ) 下按 ESC 进入指令模式(Command Mode) 指令模式 ( Command Mode)下输入 : 进入末行模式(Last line Mode) 末行模式(Last line Mode)下指令错误则返回指令模式 (Command Mode)

状态模式关系图示:

注:图片来源 https://www.cnblogs.com/dengmj/p/5031498.html

VI常用命令

进入VI

代码语言:javascript
复制
vi filename # 打开或新建文件,并将光标置于第一行首
代码语言:javascript
复制
vi +n filename # 打开文件,并将光标置于第n行首
代码语言:javascript
复制
vi + filename # 打开文件,并将光标置于最后一行首
代码语言:javascript
复制
vi +/pattern filename # 打开文件,并将光标置于第一个与pattern匹配的串处
代码语言:javascript
复制
vi -r filename # 在上次正用vi编辑时发生系统崩溃,恢复filename

保存退出

代码语言:javascript
复制
w  # 保存当前文件 
代码语言:javascript
复制
x 或 wq  # 保存并退出 
代码语言:javascript
复制
q  # 退出 
代码语言:javascript
复制
q!  # 退出不保存 
代码语言:javascript
复制
w /tmp  # 另存为 /tmp 
代码语言:javascript
复制
10,50w /tmp # 仅将10-50行之间的内存另存为 /tmp

插入

代码语言:javascript
复制
i  # 在光标前 
代码语言:javascript
复制
I  # 在当前行首 
代码语言:javascript
复制
a  # 光标后 
代码语言:javascript
复制
A  # 在当前行尾 
代码语言:javascript
复制
o  # 在当前行之下新开一行 
代码语言:javascript
复制
O  # 在当前行之上新开一行 
代码语言:javascript
复制
r  # 替换当前字符 
代码语言:javascript
复制
R  # 替换当前字符及其后的字符,直至按ESC键 
代码语言:javascript
复制
s  # 从当前光标位置处开始,以输入的文本替代指定数目的字符 
代码语言:javascript
复制
S  # 删除指定数目的行,并以所输入文本代替之 

删除

代码语言:javascript
复制
%d  # 删除全部内容 
代码语言:javascript
复制
1,$ d  # 删除全部内容
代码语言:javascript
复制
n1,n2 d  # 将n1行到n2行之间的内容删除 
代码语言:javascript
复制
x  # 删除光标后的一个字符
代码语言:javascript
复制
X  # 删除光标前的一个字符
代码语言:javascript
复制
do  # 删至行首 
代码语言:javascript
复制
d$  # 删至行尾 
代码语言:javascript
复制
Ctrl+u  # 删除输入方式下所输入的文本 

复制粘贴

代码语言:javascript
复制
yy  # 复制当前行 
代码语言:javascript
复制
nyy  # 复制当前行开始的n行 
代码语言:javascript
复制
先按 v 然后方向键选择区域,按 y 复制选中行 
代码语言:javascript
复制
dd  # 剪切当前行 
代码语言:javascript
复制
p  # 在当前光标处下面粘贴内容 
代码语言:javascript
复制
P  # 在当前光标处上面粘贴内容 

查找

代码语言:javascript
复制
/abc # 从光标开始处向文件尾搜索abc 
代码语言:javascript
复制
?abc # 从光标开始处向文件首搜索abc
代码语言:javascript
复制
n  # 下一个,在同一方向重复上一次搜索命令 
代码语言:javascript
复制
N  # 上一个,在反方向上重复上一次搜索命令 

替换

代码语言:javascript
复制
s/abc/bgm/  # 替换当前行第一个 abc 为 bgm
代码语言:javascript
复制
s/abc/bgm/g  # 替换当前行所有 abc 为 bgm
代码语言:javascript
复制
n,$s/abc/bgm/g   # 替换第 n 行开始到最后一行中每一行所有 abc 为 bgm
代码语言:javascript
复制
%s/abc/bgm/g   # 替换每一行的每一个 abc 为 bgm
代码语言:javascript
复制
g/abc/s//bgm/g  # 将文件中所有 abc 均用 bgm 替换 

光标

代码语言:javascript
复制
h  # 光标左移一个字符 
代码语言:javascript
复制
l  # 光标右移一个字符 
代码语言:javascript
复制
k  # 光标上移一行 
代码语言:javascript
复制
j   # 光标下移一行 
代码语言:javascript
复制
w  # 向前移动一个单词
代码语言:javascript
复制
b  # 向前移动一个单词
代码语言:javascript
复制
e  # 向前移动一个单词,且游标指向单词的末尾
代码语言:javascript
复制
)  # 光标移至句尾 
代码语言:javascript
复制
(  # 光标移至句首 
代码语言:javascript
复制
}  # 光标移至段落开头 
代码语言:javascript
复制
{  # 光标移至段落结尾 
代码语言:javascript
复制
nG  # 光标移至第n行首 
代码语言:javascript
复制
n+  # 光标下移n行 
代码语言:javascript
复制
n-  # 光标上移n行 
代码语言:javascript
复制
n$  # 光标移至第n行尾
代码语言:javascript
复制
H  # 光标移至屏幕顶行 
代码语言:javascript
复制
M  # 光标移至屏幕中间行 
代码语言:javascript
复制
L  # 光标移至屏幕最后行 
代码语言:javascript
复制
0  # 光标移至当前行首 
代码语言:javascript
复制
$  # 光标移至当前行尾 

翻屏

代码语言:javascript
复制
Ctrl+u  # 向文件首翻半屏 
代码语言:javascript
复制
Ctrl+d  # 向文件尾翻半屏 
代码语言:javascript
复制
Ctrl+f  # 向文件尾翻一屏 
代码语言:javascript
复制
Ctrl+b  # 向文件首翻一屏 
代码语言:javascript
复制
nz  # 将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部 

作者:朝雨忆轻尘 出处:https://www.cnblogs.com/xifengxiaoma/  版权所有,欢迎转载,转载请注明原文作者及出处。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-08-07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • VI状态模式
  • VI常用命令
    • 进入VI
      • 保存退出
        • 插入
          • 删除
            • 复制粘贴
              • 查找
                • 替换
                • 光标
                  • 翻屏
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档