vim笔记4.1(命令行模式1)

Posted helloworldcoding

tags:

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


最早,现有ed,ed为ex之父,ex为vi之父,而vi为vim之父 —— The Old Testament of Unix

这些早期的Unix编辑器,依旧可以在vim中找到它们的影子,他们没有消失,只是换了一个方式存在。

我打算挖一坑,来說一下命令行模式,来看一下vim身体里流淌着多少它的祖先ex(行编辑器)的血液。

在普通模式下,按下:就会进入命令行模式,和shell下的命令行很相似;输入一条命令,然后回车执行。按下Esc键就可以回到普通模式。这些在命令行模式下执行的命令,又可以称为Ex命令。

常见命令 用途说明
:edit 编辑一个文件,edit可以简写为e
:write 写文件,可简写为w
:tabnew 创建一个tab
:prev/:next 当用vim一次打开多个文件(如:vim a.txt b.txt)后,可以用他们来回切换文件
:bprev/:bnext 当打开多个缓冲区后,可以用他们来回切换缓冲区,不过我习惯ctrl+6来回切换最近两个缓冲区
:[range]delete [x] 删除指定范围的行到寄存器[x]中,delete可以简写为d
:[range]yank [x] 复制指定范围的行到寄存器[x]中,yank可以简写为y
:[line]put [x] 把寄存器x的内容,粘贴到指定行的后面,put不能简写
:[range]copy {address} 把指定范围的行复制到{address}指定的行之下,copy可以简写为co或t
:[range]move {address} 把指定范围的行移动到{address}指定的行之下,move可简写为m
:[range]join 把指定范围内的行连接起来,成为一行,J也可以起连接行的作用(当前行和下一行)
:[range]normal {commands} 对指定范围内的每一行执行普通模式的命令{commands}
:[range]substitute/{pattern}/{string}/{flags} 把指定范围内的行出现的{pattern}匹配的地方替换为{string},substitute 可以简写为s(vim的正则替换,我先挖个坑,后面再填上)
:[range]global/{pattern}/[cmd] 把指定范围内的行匹配{pattern}的所有行之下Ex命令{cmd},这个特性还要进一步挖掘

range的写法:

- 一个数字如23,34;代表指定的行
- 两个数字逗号分割: 2,5  代表从第2到第5行
- num,.  从第num行到当前行,比如我们要从第7行删除所有内容,我们先按G,光标会移动到最后一行,然后输入 :7,. d

总之,Ex命令可以一次执行,多处修改。惊不惊喜,意不意外?

以上是关于vim笔记4.1(命令行模式1)的主要内容,如果未能解决你的问题,请参考以下文章

《VIM--学习笔记》

Kali linux vim使用命令笔记

大数据讲课笔记1.5 使用Vim编辑器

vim讲课笔记

vim学习笔记

linux学习笔记--vi与vim编辑器