vim编辑器的工作模式
vim编辑器的三种工作模式:命令模式、输入模式、末行模式
打开文件:将准备打开的文件指定为命令行上的一个参数。# vim /etc/hosts
编辑文本
在命令模式中,键的映射不是为了插入所按下的字符,而是为了执行某类操作的命令。
要切换到插入模式,有以下命令
键 |
结果 |
i |
切换到插入模式,并在当前光标位置之前开始插入(插入)。 |
a |
切换到插入模式,并在当前光标位置之前开始插入(附加)。 |
I |
将光标移至当前的开头位置,并切换到插入模式。 |
A |
将光标移至当前的结尾位置,并切换到插入模式。 |
R |
从光标下的字符开始,切换至替换模式。处于替换模式时,不会插入文本,所输入的每个字符均将替换掉当前文档中的字符。 |
o |
在当前行的下方新打开一个行,并切换至插入模式。 |
O |
在当前行的上方新打开一个行,并切换至插入模式。 |
注意:按Esc将会始终取消当前命令,或者返回至命令模式。常见做法是按两下Esc(或按更多下),以确保返回至命令模式。
命令行模式操作
操作 |
操作类型 |
按键指令 |
用途 |
光标 跳转 |
移动光标 |
上下左右键头 |
上下左右 |
光标行内跳转 |
Home键或^、数字0 |
跳转到光标所在行行首 |
|
End键或者$ |
跳转到光标所在行行尾 |
||
h |
光标向左移动一个位置 |
||
l |
光标向右移动一个位置 |
||
全文翻页 |
PgUp、PgDn |
向上翻页、向下翻页 |
|
光标行间跳转 |
1G或gg |
跳转至文件的首行 |
|
G |
跳转至文件的末行 |
||
#G或#gg |
跳转到文件的#行 |
||
j,#j |
光标向下移动一行,#行 |
||
k |
光标向上移动一行 |
||
移动 |
w |
将光标移动到下一单词的开头(W包含标点符号) |
|
b |
将光标移动到上一单词的开头(B包含标点符号) |
||
( |
将光标移到当前或上一句子的开头 |
||
) |
将光标移到下一句子的开头 |
||
{ |
将光标移到当前/上一段落的开头 |
||
} |
将光标移到当下一段落的开头 |
||
复制、粘贴、删除 |
复制 |
yy、#yy |
复制光标处的一行、复制当前光标向下#行 |
粘贴 |
p、P |
粘贴至光标之后,之前 |
|
删除 |
x/delete |
删除光标处的单个字符 |
|
dd、#dd |
删除光标处的一行、#行(其实是剪切) |
||
d^ |
从光标处删至行首 |
||
d& |
从光标处删除至行尾 |
||
C(大写) |
从光标处删除至行尾,并且进入插入模式 |
||
dj |
删除当前行和下一行 |
||
合并 |
合并行 |
J |
合并当前行和下一行 |
查找/撤销/保存 |
文本查找 |
/word |
向后查找字符串”word” |
n/N |
跳至后/前一个结果 |
||
* |
将立即向前搜索光标处的单词 |
||
撤销编辑 |
u |
撤销最近的一次操作,能多次使用 undo |
|
U |
撤销对当前行的所有操作 |
||
ctrl+r |
取消前一次的撤销操作,即重做 redo 对使用u命令撤销操作进行恢复 |
||
.(句点) |
将对当前行恢复最近一个编辑操作。这可用于对多行轻松执行同一编辑操作。 |
||
保存退出 |
ZZ |
保存修改并退出 |
|
可视化选择 |
选取操作 |
v |
取连续的多个字符 |
V |
取连续的多行 |
||
Ctrl+v |
取连续的多列,例:取多列,指进行注释 |
||
gv |
重复上次选取 |
||
针对选取文本的操作 |
d |
删除 |
|
y |
复制 |
每一个命令都可通过在实际命令前键入重复次数来重复执行一定的次数,称为计数。
替换文本——按c键(change),后面加上光标移动。
cw:将当前光标位置更改到当前单词的末尾,要替换的文本被删除(放置到未命名寄存器中),同时切换至插入模式,键入要替换的内容。
按两下c(cc),将开始以行范围的方式替换,也适用于其他命令
大多数移动命令可以带上i和a前缀,以选择inner或a版本的移动。Ciw将替换整个当前单词,而不仅仅是从当前光标位置起,caw则执行相同的功能,但包含周围的任何空白区。
要替换到行末止,使用c$,但C可执行相同功能,也适用于其他命令
要仅替换光标处的字符,可按r,再键入新的字符。
要改变光标处字符的大小写,可按~
复制操作称为拖拉(y),粘贴称为旋转(p)
5yaw:将复制当前单词,及后面4个单词(共5个)
Vim提供26个命名寄存器,以及多个特殊用途的寄存器。拥有多个寄存器可让用户更加高效地执行剪切和粘贴,而不必担心丢失数据,如果未指定要使用的寄存器,则将使用“未命令”的寄存器。常规寄存器称为a到z,通过在命令的计数和实际命令之间放“registername来选择;如;3“tyy要复制当前行和后面两行到t寄存器中
要放置命名寄存器中的内容,只需在旋转命令之前加上”registername,如:“sp 将在光标位置后面放置s寄存器中的内容。
重要注意:每次使用命名寄存器时,未命名寄存器也会更新。
删除和更改操作也可加上寄存器选择作为前缀。未指定寄存器时,将仅使用未命名寄存器。当使用寄存器的大写版本时,被剪切或拖拉的文本将附加到该寄存器,而不是覆盖它。
特殊寄存器
有10个数字编号的寄存器(0~9)。寄存器“0将始终拥有最近拖拉的文本的副本,而寄存器”1则具有最近删除的文本的副本。当新的文本被更改或删除时,“1的内容将移到”2中,“2的内容将移到”3中,以此类推。
重要注意:与命名寄存器不同,数字编号寄存器的内容不会在会话之间保存。
末行模式操作:
操作类型 |
按键指令 |
用途 |
|
复制 |
|
:1,3y |
复制1-3行 |
删除 |
|
:1,3d |
删除1-3行 |
保存/退出/文件操作 |
存盘及退出 |
:w |
保存当前文件 write |
:w /路径/文件 |
另存为 |
||
:q! |
放弃已有更改后强制退出 quit |
||
:wq或:x |
保存已有修改后并退出 |
||
:wq! |
强制保存退出 |
||
文件操作 |
:w /root/newfile |
另存为其他文件 |
|
:r /路径/文件 |
读入其他文件内容 |
||
:e /路径/文件 |
打开其他文件编辑 |
||
字符串替换substitute |
行内替换 |
:s/old/new |
替换当前行第一个old为new |
:s/old/new/g |
替换当前行所有old为new |
||
区域内替换 |
:n,m s/old/new/g |
替换第n-m行所有的old为new |
|
:% s/old/new/g |
替换全文所有的old为new,对替换动作不提醒 |
||
:% s/old/new/gc |
替换全文所有的old为new,对每个替换动作进行提醒 |
||
开关参数 的控制 |
编辑器设置 |
:set all |
可查看所有可配置的参数 |
:set nu|nonu |
显示/不显示行号 |
||
set ai|noai |
启用/关闭自动缩进 autoindent 可缩写为 ai |
||
:syntax on| off |
启用/关闭语法高亮 |
||
:set hls| nohls |
开启/关闭查询结果高亮显示 hlsearch 可缩写为 hls |
||
执行外部命令 |
:! 命令 |
在vim中可以执行外面命令行命令 |
|
:r ! 命令 |
在vim中可以读入外部命令行的执行结果到当前的文本 |
||
其他 |
:X |
加密 |
Vim中的搜索和替换通过ex模式实施,其使用的语法与用户通过sed搜索和替换时所用的相同,包括使用正则表达式进行搜索的功能:ranges/pattern/string/flags
Range可以是行号、行号范围、搜索条件、%(当前文档中的所有行;搜索和替换通常仅针对当前行操作),或’<,’>(当前的可视选择)。
两个最为常见的flags:g(替换一行中多个位置上的pattern)、i(使当前的搜索区分大小写)
例:在所有行中搜索每个位置上的“cat”,将它替换成“dog”,不区分大小写,但仅针对完整词语而不是单词中的一部分,可使用命令::%/\<cat\>/dog/gi
yy2p 复制当前行,并粘贴2次
:1,5 s/^#//g ==> 删除第1~5行行首的#
:1,5 s/^/#/g ==> 在第1~5行行首插入#
:%s/MAN/man/g %要处理每一行 s/MAN/man/搜索和替换的内容 g此替换操作可在一行中操作多次
vim编辑器的工作模式相关推荐
- Linux Vim三种工作模式(命令模式、输入模式和编辑模式)详解
通过前面的学习我们知道,Linux 系统中所有的内容都以文件的形式进行存储,当在命令行下更改文件内容时,常会用到文本编辑器. 我们首选的文本编辑器是 Vim(至于为什么,可查看<Vi和Vim的区 ...
- Linux——Vim编辑器三种模式(命令模式、输入模式、末行模式)的基本使用总结
目录 1.三种命令模式 2.Vim编辑器的简单使用 3.Vim编辑器的常用命令 1.三种命令模式 Vim是一款出色的文本编辑器,多数Linux操作系统都会默认安装,其包括三种模式,各模式的切换方法如下 ...
- vim三种工作模式 命令模式、编辑模式、末行(底行)模式
命令模式: 进入vim的默认模式,可以浏览文件,通过移动光标进行一些操作 1.光标移动到行首 按键:shift+6 ("^"符号) 光标移动到行尾 按键:shift+4(&quo ...
- Linux系统Vi/Vim编辑器的简单介绍、安装/卸载、常用命令
Linux系统Vi/Vim编辑器的简单介绍.安装/卸载.常用命令 1.介绍 vi(Visual Interface)编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下.由于不需要图形界 ...
- 你见过的最全vim编辑器常用操作总结(我是困不住的野马,却想做你怀里的猫)
目录 一.文本编辑器vi/vim 1.文本编辑器的作用 2.Linux中最常用的文本编辑器 3.vi/vim区别 二.vim编辑器的工作模式 1.三种工作模式 2.不同模式之间的切换 (1)命令模式- ...
- Linux基础——vim编辑器的使用
文章目录 1. 简介 2. 工作模式 3. vim编辑器的使用 3.1 命令模式下的操作 3.1.1 光标的移动 3.1.2 删除操作(并不是真的删除,实际上是剪切) 3.1.3 撤销操作 3.1.4 ...
- linux文件编辑器的三种模式,Linux中文本编辑器三种工作模式切换及vi编辑器三种工作模式下命令详解...
文本编辑器的作用 创建或修改文本文件 维护Linux系统中的各种配置文件 Linux中最常用的文本编辑器 Linux中最常用的文本编辑器 vi:类UNIX操作系统的默认文本编辑器 vim:vim时vi ...
- linux中vim文本编辑器的默认模式是,Linux 下 vi/vim 文本编辑器超详细使用指南
Linux下的编辑器最经常使用的就是vim或者vi文本编辑.vi 和vim 编辑器的区别是vim是vi的改进版本,在vi 编辑器的基础上上扩展了不少实用的功能. 大多数的linux/unix 发行版本 ...
- Linux嵌入式开发——vim编辑器
文章目录 Linux嵌入式开发--vim编辑器 准备操作 使用 打开 工作模式 一般模式 编辑模式 命令行模式 保存退出 其他操作方式 Linux嵌入式开发--vim编辑器 准备操作 首先我们需要安装 ...
最新文章
- JVM汇总--类加载/收集器
- python代码格式-pyhon代码设计格式指南
- matlab 入门 mobi,振动力学基础与MATLAB应用
- win32中GBK、UTF8的互转
- Python列表对象的sort()方法排序
- 初识 RESTful API规范
- 深入理解计算机操作系统:第2章 信息的表示和处理(学习笔记)
- java中演示类_java中抽象类与接口的图文演示
- WCF开发框架形成之旅--个人图片信息的上传保存
- mysqldump: Got errno 28 on write
- phpcount数组报错_PHPExcel把导入的excel表格转换为数组,然后运行,浏览器什么也不显示,也不报错...
- 盛世zeepower远程距离隔空无线充投放商用 低频磁共振无线充电技术——充电有效距离 20-45mm
- Mac电脑中delete键的几种用法
- 举个栗子~Minitab 技巧(6):使用 T 检验 分析产品质量
- 好好说话之Tcache Attack(1):tcache基础与tcache poisoning
- matlab 开4次方根,matlab中计算四次方方程a*x^4+b*x+c=0的实数根.
- 港科夜闻|香港科大(广州)(筹)与民心港人子弟学校签署合作框架协议
- SATA、mSATA接口定义及linux下的挂载硬盘、速度测试
- 编写程序,输入一个较小的实数deta,利用e=1+1/1(嘿哈)+1/2(嘿哈)+1/3(嘿哈)+⋯+1/n(嘿哈)计算e的近似值,直到最后一项的绝对值小于deta时为止,输出此时e的近似值。
- R语言定量方法:回归,虚拟变量和交互项,假设检验:F 检验、AIC 和 BIC分析学生成绩数据带自测题
热门文章
- linux-2.6.30平台下移植DM9000网卡驱动到TQ2440
- 林志玲“女神导航”,高德如何用够明星价值?
- MDK 这边背景色和字体颜色和皮肤
- 【游戏人生】---王者荣耀游戏心得
- mysql知识点演讲_即兴演讲技巧
- 惠普HP Deskjet Ink Advantage 2020hc 打印机驱动
- iOS版微信6.5.21发布 适配iPhone X
- 【语音之家】AI产业沙龙—自动语音识别利器 - NVIDIA NeMo
- 时空召唤今天服务器维护吗,《时空召唤》3月3日更新公告
- OpenGL ES 3.0(五)纹理