vim模式与模式切换vim命令模式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vim模式与模式切换vim命令模式相关的知识,希望对你有一定的参考价值。

参考技术A vim有三种模式,本文介绍VIM模式与vim模式切换的方法。

vim命令 模式, 编辑模式 , 尾行模式 和文本编辑命令。

Vim编辑模式插入字符,行尾、行首插入,删除一个字符和删除整行命令,Vim复制和粘贴命令,vim替换输入以及撤销和反撤销命令,Vim保存和另存为文件,显示vim当前编辑文件名。

我们使用vim编辑器的常用文件操作主要是:插入、删除、复制、粘贴、替换、撤销、保存、另存为。

在介绍Vim中的上述基本文件操作命令前,需要先介绍下vim的操作模式。因为vim的各种对文件操作命令需要在不同操作模式下使用。

一、Vim三种操作模式

Vim编辑器一共有3种模式,分别为 命令模式 (默认)、编辑模式、尾行模式。这3种模式的转换关系如下图所示。

vim三种模式

1 命令模式(command mode)

命令模式是Vim的默认操作模式,当使用vim命令打开一个文件时,默认进入的就是命令模式。不管用户处于何种模式,只要按下Esc键就可使进入命令行模式

2 编辑模式(input mode)

只有在vim编辑模式下,才能将键盘键入的内容输入到当前打开的文件中

在命令模式下输入插入命令i(insert)、附加命令a (append)、打开命令o(open)、修改命令c(change)、取代命令r或替换命令s都可以进入文本编辑模式

3 尾行模式(last line mode)

尾行模式主要用于保存文件或退出Vim,同时也可以设置编辑环境和一些编译工作,如列出行号(set nu)、寻找字符串(/target)等

在命令模式下,用户按冒号键(:)即可进入末行模式下,此时Vi会在显示窗口的最后一行显示一个”:“作为末行模式的提示符,等待用户输入命令

二、Vim文本编辑命令

约定:在没有特殊说明的情况下,以下Vim编辑命令部分提到的命令均是在命令模式下使用。

1 vim插入命令

在命令模式下按以下按键可进入编辑模式,执行插入操作,具体包括:

从光标当前所在行的【行首】处开始插入:I

从光标当前所在行的【行尾】处开始插入:A

从光标当前所在行的【下一行】处开始插入:o

从光标当前所在行的【上一行】处开始插入:O

从光标当前所在位置的【前】一个字符处开始插入:i

从光标当前所在位置的【后】一个字符处开始插入:a

tips:i (insert)是在当前位置插入,a (append)表示是在后面追加

2 vim删除命令

在命令模式下按以下按键可执行删除操作,具体包括:

删除从光标所在位置到当前【单词结束】部分的内容并进入插入模式:cw、cW

删除从光标所在位置到当前【单词开始】部分的内容并进入插入模式:cb、cB

删除从光标所在位置到当前【单词结束】部分的内容但不进入插入模式:dw、dW

删除从光标所在位置到当前【单词开始】部分的内容但不进入插入模式:db、dB

删除光标位置的【一个】字符:x

删除当前光标所在【行】:dd

删除从光标所在位置到当前【行首】的内容:d0

删除从光标所在位置到当前【行尾】的内容:d$

tips:

(1) Vim的命令中,0 表示行首,$ 表示行尾,更多内容可参考卡拉图Vim操作范围、文件范围介绍

(2) w(word)、b(back)命令用于光标移动,具体可参考卡拉图:vim光标移动命令汇总

(3) cW、cB、dW、dB 命令操作的单词是以空白字符(空格、Tab)分隔的字符串

删除当前【段落】从光标位置开始到【段末】的内容:d

删除当前【段落】从光标位置开始到【段首】的内容:d

删除当前【句子】从光标位置开始到【句末】的内容:d)

删除当前【句子】从光标位置开始到【句首】的内容:d(

tips:Vim命令中用 ( 和 ) 表示句子, 和 表示段落

3 vim复制命令、vim粘贴命令

在命令模式下按以下按键可执行复制、粘贴操作,具体包括:

将最后一次删除或复制操作的文本内容粘贴到光标所在字符之【后】:p

将最后一个删除或复制操作的文本内容粘贴到光标当前字符之【前】:P

复制从光标所在位置到当前【单词结束】部分的内容:yw

复制光标所在【行】的所有字符 (包含换行符):yy

tips:yyp 操作可以实现复制一整行内容到当前所在行的下一行

4 vim替换命令

在命令模式下按以下按键后,再输入字符可替换原始文件中的内容

一直替换光标所在字符,直到按下[ESC]键为止:R

删除、复制操作的操作单位可以加操作次数,操作对象的范围为:操作次数 * 操作单位

替换光标当前所在字符一次:r

例如:d3w命令表示删除三个单词,10dd命令表示从光标所在行开始删除后面的十行,更多内容可以参考Vim中的操作符和动作命令。

5 vim撤销命令、vim回退反撤销命令

在命令模式下可执行撤销操作

撤销最近的一次操作:u

恢复最近的一次操作(取消撤销):<Ctrl> + r

tips:多次执行u 命令可以连续撤销最近的操作

6 vim保存命令

在尾行模式下执行以下命令可保存当前编辑的文件内容

保存当前编辑的文件::w

保存当前编辑的文件并退出vim::wq

强制将当前编辑的文件保存::w!

tips:上述操作是在尾行模式下执行的,所以命令都是以:开头

7 vim另存为命令

在尾行模式下执行命令 :w a.txt 可将vim当前打开的文件另存为新文件a.txt.

tips:w(write) 表示将文件存档,: 表示尾行模式命令。

8 vim显示当前文件名的方法

命令 <Ctrl> + g 可显示当前编辑文件名及行数,可以在不退出 Vim 的情况下了解当前编辑文件的信息,更多内容,可参考30个vim常用命令和使用 vim技巧 。

Vim入门级文件编辑命令汇总就先介绍到这里了,更多Vim文件编辑命令和Vim相关操作可阅读本站其它文章内容。

Linux中vim的三种模式以及基本命令

在Linux中vim的三种模式分别为:命令模式末行模式编辑模式以下是三者的关系图:

技术分享图片

三种模式的彼此切换:

命令模式是vim中的默认模式。

命令模式切换至末行模式: 使用英文冒号(:)。

末行模式切换至命令模式: 按一下esc 或者 两下esc 或者 删除末行的全部命令。

命令模式切换至编辑模式: 按键 i 或者 a。

编辑模式切回命令模式: 按下esc。

其中,末行模式 和 编辑模式 之间,不能直接切换,必须切换到命令模式,再进行切换。

接下来细化到每个模式下的各种命令操作:

一、末行模式

末行模式中基本的操作有保存、另存、退出、查找、替换

  1、保存

    语法: :w (write)

    说明: 将已做的更改进行保存,主要是编辑模式操作完成之后的操作。

        技术分享图片

 

   2、另存

    语法: :w 文件路径

    说明:  保存和另存命令基本相似,区别在于另存需要指定文件的保存路径。

    技术分享图片

  3、退出

    语法: :q(quit)

    说明: 如果不想宝座直接退出可使用(:q!), 其中!表示强制

    技术分享图片

  4、查找

    语法: /需要查找的字符串

    说明:可使用n(向下切换)、N(向上切换),改变光标位置。查找的位置会高亮

    技术分享图片

  5、替换

    语法: :s /被替换的字符/替换成的字符

    说明: 对当前行首次出现的字符进行替换

    技术分享图片

    语法: :s /被替换的字符/替换的字符/g

    说明:对当前行所有匹配的字符进行替换,g代表global

    技术分享图片

    语法:%s /被替换的字符/替换的字符

     说明:对整个文档每一行首次匹配的字符串进行匹配替换

    技术分享图片

    语法: %s /被替换的字符串/替换的字符串/g

    说明: 替换整个文档匹配上的字符

    技术分享图片

二、命令模式

命令模式中基本的操作有光标的移动、删除、复制

    1、光标的移动

    语法:定位到最后一行 (G)

       定位到第一行 (两个gg)

       光标定位到指定行 (数字+G)

       光标上衣或下移 (数字+↑ 或 数字+↓)

    2、删除

    语法:删除当前行(dd)[行号重置]

    说明:删除当前行下一行不上移,文档行号会重新索引。

 

    语法:删除当前行(D)[当前行置空,保留当前行号]

    说明:删除当前行下一行不上移,删除后当前行留空

 

    语法:删除多行(数字+dd)

    说明:删除当前光标所在下一行的n条行数,n代表所填的数字。

    注意:在vim中,删除和剪切命令是一样的,可用粘贴命令显示出来。

    3、复制

    语法:复制当前行(yy)

 

    语法:复制多行(数字+yy)

    说明:表示复制当前行一下指定的行数

    温馨提示:复制完成后,可用p(parse)进行粘贴,粘贴在所在行的下一行

三、编辑模式

命令模式中基本的操作有进入编辑 和 退出

    1、进入编辑

    语法:a (afterinsert)表示在光标后进行编辑插入

       i (insert) 表示在当前光标出进行编辑插入

    2、退出

    语法:使用esc即可退出 编辑模式

四、扩展

    1、行号的显示问题

    一般情况下,vim通过在末行模式中添加:set nu命令进行行号的显示,但这并不是

    全局的,通常在下一次打开文件时,行号会自动消失,为了便于操作,我们通常会

    修改vim的配置文件,来使得行号显示对全局生效。

    vim的配置文件位于当前用户的家目录。若没有可自行创建。文件名称为.vimrc

    技术分享图片

    在 当前文件输入 "set nu", 即可实现全局行号显示有效。

    2、异常关闭处理

    在文件没有正常关闭的情况下,如未保存直接通过远程窗口关闭。

    技术分享图片

    解决此问题的方式是:删除该文件的交换文件

    提示信息已经十分明确。交换文件.vimrc.swp在文件未被正常关闭时,自动创建。

    所以使用命令: rm -f .vimrc 即可

    注意:一般交换文件的通常格式为: 文件名.swp

     3、重做 / 撤销

    如果想要撤销操作,在末行模式中输入 :u

    取消撤销为: ctrl + r

    进行多步撤销为: 数字 + u

 

    4、:wq和:x退出的方式有何区别?

     在实际开发还是建议使用:x方式退出。
     区别在于wq的方式无论文件是否有修改都会对文件的最后修改时间进行改变。
     而:x只有在文件内容真正改变时才会修改文件最后修改时间。

 




以上是关于vim模式与模式切换vim命令模式的主要内容,如果未能解决你的问题,请参考以下文章

你还不会Linux下的vi/vim编辑器吗?

Vim编辑器与Shell命令脚本

linux vim三种模式如何切换

Vim命令合集

Linux中vim的三种模式以及基本命令

Linux Vim三种工作模式(简单粗暴,轻松搞懂)