Vim 基本操作 | 学习笔记

简介: 快速学习 Vim 基本操作。

开发者学堂课程【Linux文本处理、正则表达式与VimVim 基本操作】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/592/detail/8354


Vim 基本操作

 

内容介绍

一、   命令模式操作

二、   命令模式

三、   扩展命令模式

四、   Vim的寄存器

五、   标记和宏(macro

六、   编辑二进制

七、   可视化模式

八、   多文件模式

九、   使用多个“窗口”

十、   定制 vim 的工作特性

 

一、命令模式操作

◆字符编辑:

x: 删除光标处的字符

#x:删除光标处起始的 # 个字符

xp:交换光标所在处的字符及其后面字符的位置

~:转换大小写

J:删除当前行后的换行符

◆替换命令(r, replace)

r:替换光标所在处的字符

R:切换成 REPLACE 模式

◆删除命令:

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

d$:删除到行尾

d^:删除到非空行首

d0:删除到行首

dw:

de:

db:

#COMMAND

dd:删除光标所在的行

#dd:多行删除

D:从当前光标位置一直删除到行尾,等同于d$

◆复制命令(y, yank):

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

y$

y0

y^

ye

yw

yb

#COMMAND

yy:复制行

#yy:复制多行

Y:复制整行

◆粘贴命令(p,paste):

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

至当前光标所在处的后面

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

◆改变命令(c, change)

c:修改后切换成插入模式

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

c$

c^

c0

cb

ce

cw

#COMMAND

cc:删除当前行并输入新内容,相当于S

#cc

C:删除当前光标到行尾,并切换成插入模式

 

二、命令模式

1)操作文本

2)命令模式

100iwang [ESC] 粘贴 "wang" 100

< command>

Command:

y 复制、d 删除、gU 变大写、gu 变小写

例如 0y$ 命令意味着:

0→先到行头

y→从这里开始拷贝

$→拷贝到本行最后一一个字符

ye 从当前位置拷贝到本单词的最后一个字符

di" 光标在”“之间, 则删除””之 间的内容

yi( 光标在(之间,则复制()之间的内容

vi[ 光标在[]之间,则选中[]之间的内容

dtx 删除字符直到遇见光标之后的第一一个 x  字符

ytx 复制字符直到遇见光标之后的第一一个 x 字符

扩展命令模式:地址定界

◆地址定界

:start pos,end pos

#具体第 # 行,例如2表示第2

#,# 从左侧 # 表示起始行,到右侧 # 表示结尾行

#,+#从左侧 # 表示的起始行,加上右侧 # 表示的行数

2,+3表示25

. 当前行

$最后一行

.,$-1当前行到倒数第二行

%全文,相当于1,$

3)命令模式:撤消更改

u 撤销最近的更改

#u 撤销之前多次更改

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

◆按 CtrI- r 重做最后的“撤消" 更改

.重复前一个操作

n. 重复前一个操作 n

 

三、扩展命令模式

1)扩展命令模式:地址定界

/pat1/,/pat2/

从第一次被 pat1 模式匹配到的行开始,一直到第一次被 pat2 匹配到的行结束

#,/pat/

/pat/,$

◆使用方式:后跟一个编辑命令

d

y

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

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

命令模式:查找

◆查找

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

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

n:与命令同方向

N:与命令反方向

2)扩展命令模式:查找并替换

s: 在扩展模式下完成查找替换操作

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

要查找的内容:可使用模式

替换为的内容:不能使用模式原但可以使用\1,\2,…等后向引用符号;还可

以使用 "&”引用前面查找时查找到的整个内容

修饰符:

i: 忽略大小写

g: 全局替换;默认情况下,每一行只替换第一次出现

gc: 全局替换,每次替换前询问

◆查找替换中的分隔符/可替换为其它字符,例如

s@/etc@/var@g

s#/boot#/#i

练习:

1、复制 /etc/profile / tmp/ 目录, 用查找替换命令删除 /tmp/profile 文件中的行首的空白字符

2、复制 /etc/rc.d/init.d/functions 文件至 /tmp 目录, 用查找替换命令为 /tmp/functions 的每行开头为空白字符的行的行首添加一个 #

 

四、vim 的寄存器

◆有26个命名寄存 器和1个无命名寄存器,常存放不同的剪贴版内容,可以不同会话间共享

◆寄存器名称 ab,...z 格式:”寄存器放在数字和命令之间

: 3"tyy 表示复制3行到t寄存器中

"tp 表示将t寄存器内容粘贴

◆未指定,将使用无命名寄存器

◆有10个数字寄存器,用01..9表示,0存放最近复制内容,1存放最近删除内容。当新的文本变更和删除时,1转存到22转存到3,以此类推。数字寄存器不能在不同会话间共享

 

五、标记和宏(macro)

l  ma 将当前位置标记为 a, 26个字母均可做标记,mbmc 等等;

l  a 跳转到 a 标记的位置;实用的文档内标记方法,文档中跳跃编辑时很有用

l  qa 录制宏 a, a 为宏的名称

l  q  停止录制宏,

l  @a 执行宏 a

l  @@重新执行上次执行的宏

 

六、编辑二进制文件

◆以二进制方式打开文件

vim -b binaryfile

◆扩展命令模式下,利用 xxd 命令转换为可读的十六进制

:%!xxd

◆编辑二进制文件

◆扩展命令模式下,利用 xxd 命令转换回二进制

:%!xxd -r

◆保存退出

 

七、可视化模式

l  允许选择的文本块

l  v面向字符

l  V面向行

l  ctrl-v 面向块

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

l  w) } 箭头等

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

 

八、多文件模式

l  vim FILE1 FILE2 FILE3...

l  :next 下一个

:prev 前一个

:first 第一个

:last 最后一个

:wall 保存所有

:qall 退出所有

:Wqall

 

九、使用多个"窗口”

l  多文件分割

l      vim -o|-O FILE1 FILE2

l      -0:水平分割

l      -O:垂直分割

l      在窗口间切换: CtrI+w, Arrow

l  单文件窗口分割: .

l       Ctrl+w,s: split,水平分割

Ctrl+w,v: vertical,垂直分割

ctrl+w,q:取消相邻窗口

ctrI+w,0:取消全部窗口

: wqall退出


十、定制 vim 的工作特性

l  配置文件:永久有效

l  全局: /etc/vimrc

l  个人: ~/.vimrc

l  扩展模式:当前 vim 进程有效

l  (1)行号

l  显示: set number,简写为 set nu

l  取消显示: set nonumber,简写为 set nonu

l  (2)忽略字符的大小写

l  启用: set ic

l  不忽略: set noic

l  (3)自动缩进

l  启用: set ai

l  禁用: set noai

l  (4)智能缩进

l  启用:  smartindent 简写 set si

禁用:  set nosi

l  (5)高亮搜索

l  启用: set hlsearch

l  禁用: set nohlsearch

l  (6)语法高亮

l  启用: syntax on

l  禁用: syntax off

l  (7)显示 Tab 和换行符 ^| $ 显示

l  启用: set list

l  禁用: set nolist

l  (8)文件格式

l  启用windows格式: set fileformat=dos

启用unix格式: set fileformat =unix

简写: set ff=dos|unix

l  (9) 设置文本宽度

l  set textwidth=65 (vim only)

l  set wrapmargin=15

l  (10)设置光标所在行的标识线

l  启用: set cursorline,简写 cul

l  禁用: set no cursorline

l  (11)复制保留格式

l  启用: set paste

l  禁用: set nopaste

相关文章
|
6月前
|
人工智能 Linux 开发工具
linux 对文件内容的查看、归档 及 vim基本操作
linux 对文件内容的查看、归档 及 vim基本操作
|
缓存 Ubuntu Linux
Vim编辑器入门指南:安装、基本操作和高级技巧详解 | 适用于Linux系统
Vim编辑器入门指南:安装、基本操作和高级技巧详解 | 适用于Linux系统
939 0
|
数据可视化 Linux 开发工具
【Linux从入门到精通】vim的基本使用各种操作详解
vim下的操作多而杂,本篇文章会对vim下常用的多个操作进行详细解释。附加动图解释多个操作,超级详细,希望会对你有所帮助。
183 1
|
6月前
|
Unix Linux 开发工具
【Linux】VIM命令模式和文本输入模式切换操作
【1月更文挑战第18天】【Linux】VIM命令模式和文本输入模式切换操作
|
6月前
|
程序员 开发工具
【专栏】Vim是知名文本编辑器,以其高效操作深受程序员喜爱
【4月更文挑战第28天】Vim是知名文本编辑器,以其高效操作深受程序员喜爱。本文到特定行的技巧,包括基础概念(普通模式与插入模式)、使用`G`命令、命令行、相对行号和搜索功能。此外,还分享了高级技巧,如使用标记和结合插件提升效率。掌握这些方法能提升Vim用户的工作效率。
49 0
|
6月前
|
数据可视化 IDE Linux
【Linux】Linux开发工具 - vim的基本操作
【Linux】Linux开发工具 - vim的基本操作
【Linux】Linux开发工具 - vim的基本操作
|
6月前
|
人工智能 Linux Shell
Linux——vim简介、配置方案(附带超美观的配置方案)、常用模式的基本操作
Linux——vim简介、配置方案(附带超美观的配置方案)、常用模式的基本操作
|
6月前
|
Unix 开发工具 C++
Vim基本使用操作
Vim基本使用操作
|
开发工具
vim全键盘操作
vim全键盘操作
88 0
|
XML 人工智能 Go
VSCode 中使用 vim 操作
为什么要使用 Vim 呢?因为真的很高效啊!!!我已经在代码编辑器和浏览器中都安装了类 Vim 插件来提搞我的操作效率。当熟练使用 Vim 命令之后,真的可以扔掉鼠标了。
985 0