Linux centos7 vim模式多学一点

vim是从vi发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

简单的来说,vi是老式的字处理器,vim是vi的高级版本,是程序开发者的一项很好用的工具。

基本上vim共分为三种基本模式,普通模式(Normal Mode)、输入模式(Insert Mode)和命令行模式(Command-Line Mode)

三种基本模式名称可能有所不同,其功能、使用方法多有介绍,本文不再赘述,仅关注其他几种模式,如可视模式、选择模式和Ex模式。

一、模式查看

模式是应用vim的一种方式,不同场合应用不同模式。在了解有多种模式的同时,要掌握模式之间的切换(进入模式与退出模式)。vim共有多少模式呢?

先执行vim

在命令行模式中录入如下命令,执行

:help vim-modes

在vim介绍的第5小节——Modes中,主要介绍了6种基本模式和6种其他模式。

6种基本模式:

Normal mode  Visual mode  Select mode  Insert mode  Command-line mode(Cmdline mode)  Ex mode

6种其他模式:

Operator-pending mode  Replace mode  Virtual Replace mode  Insert Normal mode  Insert Visual mode  Insert Select mode

二、可视模式

1.帮助信息

:help visual-mode

2.分类

vim的可视模式又分为三类:在普通模式(Normal-mode或Command Mode)按不同键,进入不同模式:

v启动visual区域选择,按单个字符为选择单元,一次选择一个字符(一般称为按字符选择)

shift+v (即V)启用visual line区域选择,按整行为选择单元,一次选择一行(一般称为按行选择)

Ctrl+v 启用visual block区域选择,按一个矩形区域为选择单元,一次选择一个矩形区域(一般称为按块选择)

退出相应模式时,与进入时按同样的键。如按V进入行可视模式,再按V,将退出行可视模式。

PS:可视模式只能从普通模式进入,退出后也是退到普通模式。

3.常见操作

a.大小写转换

U:将选中区域全部转换成大写

u:将选中区域全部转换成小写

~:将选中区域中的小写字符转换成大写,将大写转换成小写中大小写转换

b.移动光标

o:光标从选中区域的第一行第一列字符上(末尾)移动到最后一行最后一列(开始)字符上;O:行首字符上移动到行尾字符

'>'将选中的区域所在行整体向右移动一次;'<'将选中的区域所在行整体向左移动一次

c.删除操作

d(或者x):只删除选中的区域

D:在Ctrl+v模式下,是删除选中区域到行尾的所有字符

d.修改操作

c(或者s):删除选中区域并进入插入模式,光标停留在选中区域第一行第一列,输入字符后,尽管输入的字符只是在第一行第一列显示,但是,按下Esc键,所有区域变成刚才输入的字符

e.插入操作

在普通模式下I代表在光标所在行首插入字符,A代表在光标所在的行尾插入字符;在vim可视模式下,I代表选择区域的前面插入字符,A代表选择区域的后面插入字符

f.复制粘贴操作

y:复制选中区域

p:在光标后面粘贴

P:在光标前面粘贴

r:修改选中区域的文本

J:合并选中区域所在行为一行

4.案例

a.批量添加注释

  1. 用vim打开文件
  2. 光标移动到准备添加注释的第一行
  3. 按Ctrl +v   下方显示VIS..BLOCK
  4. 移动向下方向键,选择要添加注释的多行
  5. 按shift+i
  6. 录入//(c语言所用注释,shell所用注释是#)
  7. 按Esc 退出,停顿后,完成,可进行下一步操作

b.批量增加/减少缩进

  1. 用vim打开文件
  2. 光标移动到准备增加/减少缩进的第一行
  3. 按Ctrl +v    下方显示VIS...  BLOCK
  4. 按shift+>   增加缩进
  5. 按shift+<   减少缩进

PS:多行缩进缩出

正常模式下,按两下>;光标所在行会缩进。

如果先按了n,再按两下>;,光标以下的n行会缩进。

对应的,按两下<;,光标所在行会缩出。

、选择模式

1.帮助信息

:help select-mode

2.主要功能

选择模式,可以理解为另一种可视模式。在选择模式下,可以对选中的文本进行快速操作。比如先高亮选中文本,然后用Backspace来删除这段文本;或者先高亮选中文本,然后用输入的内容来替换这些文本。执行操作之后,Vim将自动进入插入模式。

选择模式与可视模式的区别在于:在可视模式下,可以选中文本,然后执行命令操作,即要用命令结束可视模式。而在选择模式下,命令仅限于Backspace(用于删除操作)和可打印的字符(用于替换操作)。因为不需要输入命令,所以操作变得更为简单。

3.进入

在常规模式下,可以使用命令gh、gH或gCtrl+H进入选择模式,在屏幕底部显示相应的选择模式名称。

在可视模式下,可以使用Ctrl+g进入选择模式。vim将根据当前所处的可视模式的类型,自动进入与之一致的选择模式。

4.操作

在选择模式下移动光标比在正常模式下要困难一些。因为输入任何可打印字符和回车符,vim就会删掉已选中的文本并进插入状态。所以要选择文本就只能使用方向键、Ctrl以及功能键。

5.退出

点击Ctrl+G键,将返回到可视模式

可以使用Ctrl+O(大写字母)命令从选择模式切换到可视模式

使用Esc或Ctrl+[键,可以退出选择模式

四、Ex模式

1.帮助信息

:help Ex-mode

2.功能

主要作用是用于与屏幕显示交互地编辑行。

ex是vim对行编辑器ed的支持。ed是一个面向行的编辑器.在远古时代,还是黑白终端的时代,有一个流行的面向行的编辑器ed,也即把文件一行一行的读入,一次只显示一行,然后编辑。所以vim中的ex命令都是ed编辑器所支持的命令,现代所用的流编辑器sed中的命令是ed命令的扩展。所以掌握了vim中的ex编辑命令,稍加变通就会掌握sed。

vim是全屏编辑器,因此不会像ed那样只显示一行,对于vim,ed命令编辑的一般都是当前行,这就相当于ed中所显示的那行,实际上也是文件的当前行。

3.进入

vim的普通模式下,按Q

在命令行中,可以直接ex 文件名  执行后如下图

4.操作

由于是面向行的编辑命令,所以基本单位是行,比如拷贝和剪切都是以行为单位(也即最少为一行)。

命令格式

:[range] cmd args

案例

在用ex编辑文件时,显示:提示符。在此处录入需要的命令,直接执行

在:后直接录入文件倒序命令,将立即执行,仅显示执行结果的第1行,再查看,可全部显示

由于ex命令与vim和sed命令相似,此处不再赘述。

5.退出

:后录入vi(或visual)  进入vim的普通模式

:后录入q!  退出ex编辑器

五、替换模式

vim在普通模式下,按i,默认进入插入模式。

退出插入模式,按Esc

从普通模式,按R,即shift+r,进入替换模式

学习过word文字录入的都知道,按insert键,word下方的状态显示为替换(打开word文档默认是“插入”,再按一次insert键,就变为“改写”了)。此处的vim替换功能与word替换功能相同。

退出替换模式,也是按Esc

在替换模式(Replace mode),r只会取代光标所在的那一个字符一次;R会一直取代光标所在的文字,直到按下Esc为止(常用)。

帮助信息

:help replace-mode

六、粘贴模式

1.帮助信息

:h paste

2.功能

在此模式下,粘贴内容不会自动缩进,仍保持原格式,而只是纯拷贝粘贴。

3.进入

在vim命令行模式下,输入如下命令,可以使vim进入paste模式

:set paste

4.操作

进入paste模式执行set paste,它做了以下这些事情:

textwidth设置为0

set noai  set nosi softtabstop设置为0

revins重置

showmatch重置,等等

5.退出

在vim命令行模式下,可以输入如下命令,退出paste模式:

:set nopaste

(复制粘贴有缩进的代码)具体操作步骤

a.先让vim处于命令行模式下

b.执行如下命令,先进入粘贴模式 :set paste

c.然后进入插入模式

d.按下Ctrl+V粘贴代码进来,这个时候的格式能保留原样

e.按Esc回到命令行模式

f.退出粘贴模式 :set nopaste

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_36142959

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值