首页 > 其他分享 >vim几种常见模式以及常见操作

vim几种常见模式以及常见操作

时间:2023-11-12 17:34:16浏览次数:34  
标签:文件 所在 常见 模式 几种 命令 复制 vim 光标

vim是一个全屏模式编辑器。

分为三种模式:

  • 命令或普通(Normal)模式:默认模式,可以实现移动光标,剪切/粘贴文本
  • 插入(insert)或编辑模式:用于修改文本
  • 扩展命令(extended command)或命令(末)行模式:保存,退出等

在不同模式下敲击相同的按键具有不同的意义。

插入模式和扩展命令模式不可以直接切换,需要先退到命令模式然后再切换到插入或扩展命令模式。

即:

插入模式 ----->命令模式-------->扩展命令模式

扩展命令模式----->命令模式------->插入模式


模式切换

使用命令vim打开文件

vim几种常见模式以及常见操作_vim

vim几种常见模式以及常见操作_2d_02

这个界面就是命令模式(默认进入)。

命令模式 --------------------------> 插入模式

下列按键皆可

i insert, 在光标所在处输入

I 在当前光标所在行的行首输入

a append, 在光标所在处后面输入

A 在当前光标所在行的行尾输入

o 在当前光标所在行的下方打开一个新行

O 在当前光标所在行的上方打开一个新行

vim几种常见模式以及常见操作_vim_03

插入模式下方显示INSERT

vim几种常见模式以及常见操作_2d_04

底部显示:表示扩展命令模式

命令模式 --------------------------> 扩展命令模式

直接敲冒号 :


插入模式 -------------------------> 命令模式

按ESC键


扩展命令模式 -------------------------> 命令模式

按ESC键或enter或退格键

(1) 扩展命令下的基本操作

w    保存文件

wq  保存并退出

x     写入并退出

X    加密

q    退出

q!  强制退出,不更改文件

r filename   读文件内容到当前文件中

w filename   将当前文件内容写入另一个文件

!command   执行命令

r!command  读入命令的输出

编辑文件

:2d 删除第2行

:2,4d 删除第2到第4行

:2;+3y 复制第2到第5行,总共4行

:3;+4w test 将第2到第5行,总共4行内容写入新文件

:5r /etc/issue 将/etc/issue 文件读取到第5行

:t2 将光标所在行复制到第2行

:2;+3t10 将第2到第5行,总共4行内容复制到第10行之后

:.d 删除光标所在行

:$y 复制最后一行

替换内容

:s/要查找的内容/替换为的内容/修饰符

:%s 表示全文查找替换

编辑命令:

p 输出

d 删除

y 复制

w file 将范围内的行另存至指定文件中

r file 在指定位置插入指定文件中的所有内容

t行号 将前面指定的行复制到N行后

m行号 将前面指定的行移动到N行后

设置行号

:set number|set nu #显示行号

:set nonumber|set nonu #取消显示行号

设置光标所在行的标识线

:set cursorline|set cul #给光标所在行加下划线

            :set nocursorline|set nocul #取消光标下划线

(2)命令模式基本操作

命令模式退出vim

ZZ 保存退出

ZQ 不保存退出

方向键控制光标移动

行首行尾跳转

^ #跳转至行首的第一个非空白字符

0 #跳转至行首

$ #跳转至行尾

行间跳转

NG|:N #跳转至指定行,N表示正整数,比如 10G,或在扩展命令模式下:10,都表示跳转到第10

G #最后一行

gg|1G #第一行

删除命令

d 删除命令,可结合光标跳转字符,实现范围删除

d$|D 删除光标处到行尾

d^ 删除光标处到非空行首

d0 删除光标处到处行首

dw 从光标处删到下一个单词的词首

de 从光标处删到当前单词词尾或下一单词的词尾

db 从光标处删到当前单词词首或前一单词的词首

dG 删除光标到文件末尾

dgg 删除光标到文件开始

dd 删除光标所在行

Ndd 从当前行开始,删N行,N表示正整数,2dd表示从当前行开始,总共删2行

这些内容都在缓冲区,可以用p键粘贴出来

复制命令

y 复制,行为相似于d命令

y$ 复制光标处到行尾

y0 复制光标处到行首

y^ 复制光标处到非空行首

yy|Y 复制整行,yy前面加数字,表示从当前处往后复制多少行; 3yy 表示往下复制3行

Nyy 从当前处往后复制N行, N表示正整数,2yy表示从当前行开始,总共复制2行

yw 从光标处复制到下一个单词的词首

ye 从光标处复制到当前单词词尾或下一单词的词尾

yb 从光标处复制到当前单词词首或下一单词的词首

粘贴命令

p 小写 p 缓冲区存的如果为整行,则粘贴当前光标所在行的下方;否则,则粘贴至当前

光标所在处的后面

P 大写 p 缓冲区存的如果为整行,则粘贴当前光标所在行的上方;否则,则粘贴至当前

光标所在处的前面

撤消更改

u 撤销最近的更改,相当于windows中ctrl+z

Nu 撤销之前多次更改,N表示正整数

U 撤消光标落在这行后所有此行的更改

Ctrl+r 重做最后的“撤消”更改,相当于windows中crtl+y

. 重复前一个操作

N. 重复前一个操作N次,N为正整数

查找

/PATTERN #从当前光标所在处向文件尾部查找

?PATTERN #从当前光标所在处向文件首部查找

n #与命令同方向

N #与命令反方向


(3)替换命令替换模式

r #只替换光标所在处的一个字符,先敲r,再输入想要替换的新字符

R #切换成REPLACE模式(在末行出现-- REPLACE -- 提示),按ESC回到命令模式


(4) 可视化模式


在文件末尾显示

“-- VISUAL --”

vim几种常见模式以及常见操作_vim_05

“-- VISUAL LINE --”

vim几种常见模式以及常见操作_2d_06

“-- VISUAL BLOCK --”

vim几种常见模式以及常见操作_2d_07

表示在可视化模式

v面向字符

V面向整行

ctrl v面向块

可视化键可用于与移动键结合使用

w ) } 箭头等

突出显示的文字可被删除,复制,变更,过滤,搜索,替换等

示例:在文件指定的行首插入#

可视化键可用于与移动键结合使用方向箭头等

突出显示的文字可被删除,复制,变更,过滤,搜索,替换等

范例:在文件指定行的行首插入#

1、先将光标移动到指定的第一行的行首

2、输入ctrl+v 进入可视化模式

3、向下移动光标,选中希望操作的每一行的第一个字符(按方向键)

vim几种常见模式以及常见操作_2d_08

4、输入大写字母 I 切换至插入模式

vim几种常见模式以及常见操作_命令模式_09

5、输入 #

vim几种常见模式以及常见操作_2d_10

6、按 ESC 键,稍等片刻会在所有行行首添加#

vim几种常见模式以及常见操作_2d_11

范例:在指定的块位置插入相同的内容

vim几种常见模式以及常见操作_2d_12

vim几种常见模式以及常见操作_2d_13

vim几种常见模式以及常见操作_命令模式_14


        

vim几种常见模式以及常见操作_vim_15


标签:文件,所在,常见,模式,几种,命令,复制,vim,光标
From: https://blog.51cto.com/u_16350741/8330197

相关文章

  • 常见面试题-计算机网络相关
    1.OSI七层模型?OSI七层模型:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层TCP/IP五层模型:应用层、传输层、网络层、链路层、物理层应用层应用层是由网络应用程序使用的,是离用户最近的一层应用层通过各种协议,为网络应用提供服务,常见协议如下:FTP-文件传输协议HTTP/......
  • scureCRT中vim显示颜色方案
    1) 选项-->会话选项-->终端-->仿真-->勾选“ANSI颜色”2)在.bashrc中添加:exportTERM=xterm若不想修改.bashrc文件也可直接执行exportTERM=xterm即可 vim中命令模式下:colorscheme颜色方案  可以tab键显示系统中的颜色方案 ......
  • 修改nacos配置中心的配置之后,无需重启服务器的几种使用情况
    1、第一种情况:通过@Value注解的方式获取配置在nacos中的配置例如:`publicclassOrderController{//用来读取配置在nacos中的配置,如果读取成功,就表示读取bootstrap.yml中的配置成功,并且读取nacos的配置成功了@Value("${just1t.name}")privateStringname;@GetMapping("/na......
  • js常见的继承方式包括原型链继承、借用构造函数继承、组合继承、原型式继承、寄生式继
    js常见的继承方式包括原型链继承、借用构造函数继承、组合继承、原型式继承、寄生式继承、寄生组合式继承,以及ES6新增的class继承,但不包括关联继承https://www.cnblogs.com/Leophen/p/11401734.html构造函数继承是每次继承都会把父类的所有属性方法全部拷贝一份,而对于公用的方法......
  • 解决vim在终端ctrl+i无法跳转问题
    总所周知,终端里使用vim只能Ctrl+o跳转到上一个位置,不能Ctrl+i跳转到下一个位置。因为xterm中tab和ctr+i都是一样,传递的键值是9,所以在vim中无法将tab和ctr_i分离使用。这篇文章来解决这个问题。ctrl+g用于显示正在编辑的文件名,文件大小和位置信息,今天就牺牲ctrl+g原有的功能来实现......
  • php安装扩展的几种方式
    转载:https://v3.test.zc10.cn/archives/4369相关资料: https://www.php.cn/faq/375900.html方法一、使用apt或者yum命令安装例如: yuminstallphp72w-bcmath安装7.2bc库, 然后使用php-m查看是否安装成功方法二、使用pecl安装方法三、源码编译安装(一般是安装PHP自......
  • pcb电路板常见的用途有哪些?
    PCB电路板是一种重要的电子部件,广泛应用于各种领域。以下是PCB电路板的一些常见用途:通信设备:PCB电路板在通信设备中扮演着至关重要的角色。它们被用于电话、手机、无线电、通信系统和其他数据传输设备中。PCB电路板可以提供可靠的信号传输路径,并确保数据的准确传输。医疗设备:医疗设......
  • 一文带你玩转SQL中的DML(数据操作)语言:从概念到常见操作大解析!数据操作不再难!
    前面我们介绍了SQL语句中数据定义语言(DDL)的概念以及它的常用语句,那么DML又是什么呢?二者有什么区别呢?本篇文章将为你讲述。一、DML简介DML是指数据操作语言,英文全称是DataManipulationLanguage,用来对数据库中表的数据记录进行更新。它创建的模式(表)使用数据操作语言来填充。DDL......
  • pcb电路板常见的用途有哪些?
    PCB电路板是一种重要的电子部件,广泛应用于各种领域。以下是PCB电路板的一些常见用途: 通信设备:PCB电路板在通信设备中扮演着至关重要的角色。它们被用于电话、手机、无线电、卫星通信系统和其他数据传输设备中。PCB电路板可以提供可靠的信号传输路径,并确保数据的准确传输。医疗......
  • 一文带你玩转SQL中的DML(数据操作)语言:从概念到常见操作大解析!数据操作不再难!
    前面我们介绍了SQL语句中数据定义语言(DDL)的概念以及它的常用语句,那么DML又是什么呢?二者有什么区别呢?本篇文章将为你讲述。一、DML简介DML是指数据操作语言,英文全称是DataManipulationLanguage,用来对数据库中表的数据记录进行更新。它创建的模式(表)使用数据操作语言来填充。DD......