欢迎来到我的博客园

Linux Vim 快捷键 速查表 分类

声明:本文用图源自www.viemu.com,翻译此文档纯为兴趣爱好。如有侵权,请通知删除。谢谢。

 

Part 1 基础编辑

 标注:

motion :移动光标或 定义操作范围。用绿色标注的键。

command:直接动作命令,如果是红色标注的,那么会进入编辑模式。

基础内容:

Esc 键:标准模式按键,按下Esc键后,会进入到普通模式,通常会按两次,保证回退到普通模式。

 h j k l 四个按键,是vi的光标键,我们使用这四个键来控制光标的上下左右移动,这四个键比我们上下左右键用起来要方便一些。

i 键 进入编辑模式,我们可以进行文本的编辑,然后使用Esc 回到普通模式。

x 键删除当前的字符,X键删除当前光标左边一位的字符。

A会移动光标到当前行末尾然后进入到编辑模式。

附加内容:

u 键 会回滚上次的更改,传统的vi只能回滚一次,而vim支持无限次的回滚(if any)(Ctrl-R 取消 回滚)。

0 键 跳转到本行的起始位置。 $ 键 跳转到本行的末尾, ^键 跳转到本行的第一个非空字符。 (bol 缩写 begining of the line )(eol 缩写 end of the line )

w b e 键 是在"words"中跳转,"words"就是一系列字母和数字和标点符号,例如quux(foo, bar, baz);  这个会把单词和标点符号当做不同的words: quux→(→foo→, →bar→, →baz→)→;

WBE 键也是在"WORDS"中跳转,"WORDS"就是一些列的非空字符。例如quux(foo, bar, baz);  quux(foo, →bar, →baz);  只会把空格隔开的的字符当做WORDS.

R 键 进入替换编辑模式,当我们按下R键后,再次按下键盘按键 会把输入内容替换当前字符,然后光标右移一位,等待用户输入内容替换当前光标的字符,然后再次右移。重复此过程直到Esc回退到普通模式。

:w 键 然后回车 -》保存当前修改。 :q 然后 回车-》退出此次编辑。 :wq  然后回车 -》保存并退出此次修改。

Part 2 操作与重复执行

 标注:

motion  :移动光标或 定义操作范围。用绿色标注的键。

command :直接动作命令,如果是红色标注的,那么会进入编辑模式。

operator : 需要后面搭配{motion},来操作当前光标到目的光标的中间的字符

基础内容:

f 键  f键需要接一个用户输入按键做参数,当输入这个按键后(例如a),会跳转到本行的下一个相应的字符(a),F键与f键类似,不同的是向前寻找并跳转。

t键T键 也是接收用户输入的字符作为参数,然后寻找并跳转到对应字符的前一光标位置。例如 t->a 会在bar的b光标处停止。

d 键 需要接收 {motion} 键作为参数,会删除从当前光标处到{motion}指定目的的所有字符,例如 dw 删除到下一个单词的字符,df- 删除当前字符到下一个-的所有字符。

c 键 和d 类似,不过删除文本后会进入编辑模式。 有一些操做例如jk 是行操作的。dk会删除本行及上行,而 dj删除本行及下行。

. 重复执行上一次修改操作。 例如文本输入,删除和修改。。。等操作。

 附加内容:

预制一个数值,然后执行一个命令或动作,可以执行该命令或动作多次。

d 2 w 删除2个word

d 2   删除 光标到第二个,逗号前的所有字符

2 i  ....any text... ESC 当我们按下ESC重复输入两次内容

重复操作 ccdd命令 针对当前的行,cc删除当前行内容,然后进入编辑模式,dd删除当前行,后面的行上移一行。

只有在vim中, v会进入可视模式,通过motion移动,这些文本会被高亮标记,然后按下操作命令来对标记部分进行操作

V 进入行可视模式,和v类似,但是V会按行来进行选择,Ctrl-v 会按矩形块进行选择。

Part 3 复制与粘贴

 

标注:

motion  :移动光标或 定义操作范围。用绿色标注的键。

command :直接动作命令,如果是红色标注的键,那么会进入编辑模式。

operator : 需要后面搭配{motion},来操作当前光标到目的光标的中间的字符。

基础内容:

y键  {motion} 使用y键来复制任何{motion}部分文本

p键 如果复制的是字符, 在当前光标右边一位复制粘贴的内容。 如果复制的是行,则复制到下一行。

P键  如果复制的是字符, 在当前光标左边一位复制粘贴的内容。 如果复制的是行,则复制到上一行。

yy 复制当前行。

y键 在可视模式可以使用。

使用 d c x 等命令删除的文本也会被复制。

附加内容:

在yank delete paste命令之前的 " 后紧接的a - z的字符 ,会选择一个缓冲器。 例如 两个字符串 environment variables test当光标在environment 的e位置,此时执行" a y w ,此时会将environment 复制到a缓冲器中,然后执行w后移一个words,此时我们光标在variables的v位置,此时按下" b y w 此时会将variables复制到b缓冲器中。 然后再将光标移动到test的t左边的空格位置 ,然后执行 " a p会粘贴a缓冲器中的environment,然后执行 "  b p 会粘贴b缓冲器中的variables。

在yank delete paste命令之前的"后紧接A-Z 字符表示追加到缓冲器对应的a z内。例如 两个字符串 environment variables test当光标在environment 的e位置,此时我执行" a y w ,此时会将environment 复制到a缓冲器中,然后将光标移动到variables 的v位置,然后我们" A y w这样会将 variables也加入到a缓冲器中。然后将光标移动到test的左边的空格位置,按下p会将environment variables粘贴到当前位置。

"* "+选择系统的剪贴板。

o键 在下面一行开启新的空行然后进入编辑模式。

O键 在上面一行开启新的空行然后进入编辑模式。

Part 4 查找文本

 标注:

motion  :移动光标或 定义操作范围。用绿色标注的键。

command :直接动作命令,如果是红色标注的,那么会进入编辑模式。

operator : 需要后面搭配{motion},来操作当前光标到目的光标的中间的字符。

基础内容:

/ 键 是基本的查找动作,输入/后再后面输入想要查找的文本,然后 回车Enter,就会从当前光标处向后查找该文本,如果查找到会跳转到该文本首个字符光标位置。

?键 与/键 功能一样,不同的是?键是向前寻找匹配文本。

n键 重复之前的查找命令 如果前一个查找是/ 则继续向后查找该文本,如果是? 查找则继续向前查找该文本。

N键 与n键类似,不同的是与上一次查找的方向相反。

注意 : 查找目标的文本会被当做是一个表达式来进行分析,例如 a*b 表示0个或多个a ,b .

            ^abc会表示 以abc作为行起始的文本。

            [0-9] 查找下一个数字。

附加内容:

下面两个动作只在vim中才有,vi里没有

* 键 向后查找下一个当前光标下的非空的keyword

#键 向前查找下一个当前光标下的非空的keyword

Part 5  标记和宏

 标注:

motion  :移动光标或 定义操作范围。用绿色标注的键。

command :直接动作命令,如果是红色标注的键,那么会进入编辑模式。

operator : 需要后面搭配{motion},来操作当前光标到目的光标的中间的字符。

标记:

m键 m键后紧跟a - z的字符来设置 标记.

`键 `键后跟一个字符a - z 会跳转到该标记. 

'键 '键后跟一个a - z  字符会跳转到当前行的第一个非空字符.

宏:

q键 q键后紧跟a - z 字符开始记录宏,在 输入命令后再次按下q键 停止录制宏。 

@键 后跟一个 a - z的字符 开始重复定义的宏

@@键 重复执行上次的宏

宏的讲解
例如当前文本有如下3行内容,当前光标停在Monday的M位置:
Monday
Tuesday
Wednesday
需求如下:希望在每行开始添加注释符号# 
实验如下: 1) 对Monday行 ,开始录制宏 a q a i # Esc q 2) 对Tuesday行 运行宏a j 命令下移光标到Tuesday的T位置 @ a 执行宏 a 2) 对Wednesday 运行宏a j 命令下移光标到Wednesday 的T位置
@ a 执行宏 a

 Part 6 各种动作

标注:

motion  :移动光标或 定义操作范围。用绿色标注的键。

command :直接动作命令,如果是红色标注的,那么会进入编辑模式。

operator : 需要后面搭配{motion},来操作当前光标到目的光标的中间的字符。

 基础内容:

%键 查找匹配的() [] {}等等 。

H键 直接跳转到屏幕顶部。

M键 直接跳转到屏幕中部。

L键  直接跳转到屏幕底部。

G键 跳转到文件的最后一月 或者 行号数字 [num]G跳转到该行。

K键 help文档

附加内容:

( 键和 )键 跳转到当前语句的起始或末尾。

{键  }键 跳转到前一个或后一个空行。

[[ 跳转到前一个{  。

]] 跳转到后·一个{

 Part 6 各种命令

标注:

motion  :移动光标或 定义操作范围。用绿色标注的键。

command :直接动作命令,如果是红色标注的,那么会进入编辑模式。

operator : 需要后面搭配{motion},来操作当前光标到目的光标的中间的字符。

 基础内容:
J键 合并当前行和后面行。可视模式合并所有选择的行。
r键  需要接收一个字符作为参数。替换当前字符为r键后面输入的任何字符。
C键 与命令c$同义,作用为删除当前行光标到末尾的所有字符,然后进入插入模式。
D键 与命令d$同义 ,删除当前行光标到末尾的所有字符。
Y键 与命令yy同义,复制整行文本到缓冲器中。
s键 与命令cl同义 ,删除当前光标的字符,进入编辑模式。
S键 与命令cc同义 ,删除整行内容 进入编辑模式。
附加内容:
>键 加一个动作 来对一行或多行添加缩进
<键 加一个动作 回滚之前的添加缩进。
=键 加一个动作 对一段文本进行格式化
在可视模式中,上面所有操作可以运行,而且可以重复执行。
~键 切换当前光标字符的大小写。
 
~~~所有内容搬运完成,结业~~~
posted @ 2022-07-26 22:55  panzq  阅读(454)  评论(0编辑  收藏  举报