在UNIX下,vi是标准的文本编辑器之一。vi编辑器是Linux下应用最广泛的文本编辑器,在日常工作中几乎每时每刻都会用到vi编辑器,熟悉vi下的一些常用功能有助于提高工作效率。vi编辑器有三种操作模式:命令模式、插入模式、末行模式,插入模式即为编辑模式,下面着重介绍命令模式和末行模式。
以下内容中:小写字母(如 a)代表按下相应的键,大写字母(如 A)代表同时按下Shift+字母,特殊字符如$表示需要按下Shift+4,跟正常输入相同。
一、三种命令模式的切换
命令模式<==>插入模式
我们使用vi打开一个文件,默认模式就是命令模式,键入’a’或’i’就会进入插入模式,在插入模式下按下Esc键就重新回到了命令模式。
命令模式<==>末行模式
在命式模式时键入’:’即可进入末行模式,在末行模式下按下Esc键就重新回到了命令模式。
插入模式<==>末行模式
在插入模式想进入末行模式,先按下Esc键就进入命令模式,再键入’:’即可进入末行模式
在末行模式想进入插入模式,先按下Esc键就进入命令模式,再键入’a’或’i’就会进入插入模式
二、常用命令汇总
1.命令模式

操作 命令
光标右移 l(小写的L)
光标右移n个字符 nl
光标左移 h
光标左移n个字符 nh
光标下移 j
光标下移n个字符 nj
光标上移 k
光标上移n个字符 nk
移动光标到行首 0(数字0)
移动光标到行末 $
移动光标到文件末尾 G
移动光标到文件开头 gg
移动光标到下一个单词开头 w
移动光标到当前或下一个单词结尾 e
移动光标到当前或下一个单词开头 b
移动光标到该行第一个非空白字符 ^
移动光标到句尾 )
移动光标到句首 ( 注:vi中句子用半角句号后加一个空格(. )分割
移动光标到段尾 )
移动光标到段首 ( 注:vi中段落以空行分割
将光标定位到第n行的开头 nG
将光标下移n行 n+
将光标上移n行 n-
将光标下移n行并置于行尾 n$
移动光标到屏幕最顶行 H
移动光标到屏幕最底行 L
移动光标到当前屏幕中间行 M
当前行往右移动8个字符 >>(相当于tab键)
当前行往左移动8个字符 >>(相当于Shfit键+tab键)
改变当前光标所在字符大小写 ~(大写变小写,小写变大写)
删除当前字符到单词尾所有字符 dw
复制当前光标所在行 yy
复制n行 nyy(当前光标以下n行)
复制光标所在位置到单词尾字符(不包括空格)的内容到vi缓存区,相当于复制一个单词 yw
nyw 复制n个单词
复制光标所在位置到行尾内容到缓存区 y$
复制光标所在位置到行首内容到缓存区 y^
将缓存区的内容粘贴到当前行的下方 p
将缓存区的内容粘贴到当前行的上方 P
x 删除光标所在位的字符
ndd 删除n行
dd 删除光标所在的行
rx 使用x替代光标所在位置的字符
i 进入插入模式
a 将光标移至当前所在位置的右侧,并进入插入模式
o 在光标所在行下一行增添新行,并进入插入模式
O 在光标所在行上一行增添新行,并进入插入模式
I 将光标定位到行开头,并进入插入模式
A 将光标定位到行末尾,并进入插入模式
撤销最近一次的操作 u(可以多次使用恢复到原来的内容)
撤销所有操作 U

2.末行模式

操作 命令
保存文件 w
将当前文件的内容保存到file文件 w file
保存文件并退出vi编辑器 wq
将当前文件的内容写入file 文件,然后退出vi编辑器 wq file
将文件file的内容插入当前光标所在行的后面 r file
关闭当前文件,并打开新文件file e file
将当前文件重命名为file f file
打印当前文件名称和状态 f
退出vi编辑器 q
强制退出vi编辑器(不保存修改) q!
将光标移到第n行 n
删除第m至第n行的内容 m,nd
复制第m行到第n行的内容 m,ny
用new_str替换光标所在行中首次出现的old_str s/old_str/new_str
用new_str替换光标所在行中的所有old_str s/old_str/new_str/g
用new_str替换第m行至第n行的所有old_str m,ns/old_str/new_str/g
用new_str替换所有的old_str %s/old_str/new_str/g
从当前光标处往下查找与pattern匹配的行,然后在该行上用new_str替换掉所有的old_str /pattern/s/old_str/new_str/g

关于行号的一些特殊表示:
‘.’表示光标所在行的行号
‘′表示文件最后一行行号’表示文件最后一行行号 -1表示倒数第二行
一些例子(以下命令都是在末行模式下执行的):

操作 命令
光标从当前行向下移动6行 .+6
将光标移到文件的最后一行 $
将第5行到第10行内容写入file文件 5,15w file
将第1行到当前行内容写入file文件 1,.w file
将当前行到文件末尾内容写入file文件 .,$w file

3.vi临时文件
vi在编辑某一个文件时,会生成一个临时文件,这个文件以. 开头并以.swp结尾。正常退出该文件自动删除,如果意外退出例如忽然断电,该文件不会删除,在我们下次编辑该文件时会被要求选择以下命令处理:
O 只读打开,不改变文件内容
E 继续编辑文件,不恢复.swp文件保存的内容
R 将恢复上次编辑以后未保存文件内容
Q 退出vi
D 删除.swp文件

vi编辑器常用命令大全相关推荐

  1. 【Linux】vi和vim编辑器——常用命令大全

    文章目录 8.1.vi 和 vim 8.1.1 VI 8.1.2 VIM 8.2 打开和新建文件 8.2.1 打开文件并且定位行 8.3 VI三种工作模式 8.4 常用命令 8.4.1 移动 8.4. ...

  2. linux下vi编辑器的命令大全,linux下VI编辑器命令大全(超级完整版)

    linux下VI编辑器命令大全(超级完整版) NOTICE:把这里提到的命令牢记心间,行走LINUX才能轻松自如! 这是基本功,练就此身本领后,方可学习上乘功夫 如若不按此步骤修练,结果会经脉尽断,真 ...

  3. linux下vi编辑器常用命令

    文本编辑器是所有计算机系统中最常用的一种工具.UNIX下的编辑器有ex,sed和vi等,其中,使用最为广泛的是vi,而vi命令繁多,论坛里好像这方面的总结不多,以下稍做总结,以资共享!渴望更正和补充! ...

  4. Linux学习之Vi编辑器常用命令

    VI编辑器常常简称为Vi(visual editor),它可以自行输入.删除.查找.替换.复制.粘贴.块操作等多功能编辑器.用户需要根据自己的需求进行定制,这个是其他编辑程序所没有的一个功能.vi 编 ...

  5. Vi编辑器常用命令以及Shell编程

    配置(或修改)网络: vi /etc/sysconfig/network-scripts/ifcfg-eth0 重启网络(网卡): /etc/init.d/network restart servic ...

  6. linux vim命令pdf,Linux中vi、vim命令大全

    Linux中vi.vim命令大全 2019-11-21 16:55Linux命令大全 Linux vi 是 unix/linux 下极为普遍的一种文本编辑器. vi 有各种变种, 在不同的机器上有不同 ...

  7. Ubuntu常用命令大全[显示桌面]

    Ubuntu常用命令大全 查看软件xxx安装内容 #dpkg -L xxx 查找软件 #apt-cache search 正则表达式 查找文件属于哪个包 #dpkg -S filename apt-f ...

  8. Linux vi 编辑器常见命令的使用

    Linux vi 编辑器常见命令的使用 Linux下的文本编辑器有很多种,vi 是最常用的,也是各版本Linux的标配.注意,vi 仅仅是一个文本编辑器,可以给字符着色,可以自动补全,但是不像 Win ...

  9. mac os touch命令_MacOS系统终端常用命令大全

    MacOS系统终端是使用mac电脑的小伙伴需要或多或少了解的一个应用.熟悉并掌握一些基本的常用命令可以帮助我们快速的解决一些日常问题,提高工作效率,下面让小编带大家了解一下吧!MacOS系统终端常用命 ...

  10. Linux: 近100个常用命令大全

    1.ls [选项] [目录名 | 列出相关目录下的所有目录和文件 -a 列出包括.a开头的隐藏文件的所有文件 -A 通-a,但不列出"."和".." -l 列出 ...

最新文章

  1. iOS 蓝牙开发和注意点
  2. 为什么说要重视神经网络加速器
  3. js随机生成4位验证码
  4. python网课阿里云_阿里云大牛用过的680集Python视频教程无偿分享,学完万物皆可爬...
  5. 【2020-06-16】CentOS8下yum安装nginx,systemctl start nginx报错undefined symbol: FT_Done_MM_Var
  6. MFC开发IM--MFC非模态对话框的创建及显示
  7. 【bootloader】bootloader启动过程分析
  8. html5中加入视频格式,HTML5音视频格式video和audio
  9. ihttphandler ihttpmodule
  10. 数据可视化——ECharts基础
  11. CactiEZ安装与配置-监控网卡流量
  12. 渗透测试工程师的Linux学习之路
  13. 简简单单汇率换算HTML代码
  14. 大数据分析项目生命周期
  15. 【JavaScript】简易打地鼠游戏
  16. 小程序超过部分隐藏,不起作用
  17. Python pandas,index索引,修改索引,复合索引,将某列设为索引
  18. NSSCTF ez_unserialize
  19. 从华科到清华这些年,我和焦虑成为朋友
  20. 高薪程序员面试题精讲系列91之Limit 20000加载很慢怎么解决?如何定位慢SQL?

热门文章

  1. 车流量计数、不同车型统计算法
  2. 【 C# 】ListView控件的基本属性和常用方法详解
  3. 传奇开服很难吗?教你怎么给Hero传奇引擎添加NPC
  4. android酷狗音乐播放器,酷狗音乐app官方下载
  5. loadrunner11 下载路径+安装+破解+汉化
  6. python 欧姆龙plc通信_二进制PLC通信校验和
  7. 基于Visual studio+Opencv+Python的透视变换、图像处理(灰度化、二值化、Canny边缘检测)模型——以2015数学建模A题太阳影子定位为例
  8. C语言判断素数(两种方法)
  9. 阿里云云原生一体化数仓入选 2022数博会“十佳大数据案例”
  10. Windows上安装PDF虚拟打印机 (将word、excel等文件通过打印的方式转换为PDF文件)