Vim使用

vim键盘图
vim_cheat_sheet_for_programmers_screen

2022. 星期 :

快捷键

行操作

#### 移动行
1) :开始行, 结束行 move 目标行
例:
:5 move 2
:2, 9 move 13

2) 通过m命令。讲光标放在你要移动的行,输入:m +1向下移动一行,输入:m -2向上移动一行。

3) 或者dd剪切当前行, 然后移动光标到指定位置,再通过p或P粘贴。

翻页/滚屏命令

#### 整页翻页
ctrl-f ctrl-b
f就是forword b就是backward

fn+位置键 《==》 PgDn,PgUp

#### 翻半页
ctrl-d ctlr-u
d=down u=up

位置键 《==》down,up

#### 滚一行
ctrl-e ctrl-y
e向下滚动一行;y向上滚动一行

PS: zsh(mac) 并不需要ctrl键配合。

#### 屏幕位置
zz 让光标所杂的行居屏幕中央
zt 让光标所杂的行居屏幕最上一行 t=top
zb 让光标所杂的行居屏幕最下一行 b=bottom

n% 滚动到文件n%的位置

更多操作

字符移动

k 上移 k
h 左移 h l
l 右移 j
j 下移

你也可以使用键盘上的方向键来移动,但这么做h j k l的存在就失去了意义
之所以使用h j k l来控制方向,其主要目的是让你的手不离开键盘中心,从而提高效率

tips:在命令前加上数字代表命令执行次数,如:5k,表示上移5行

单词移动

W w 移动到下一个单词开头
E e 移动到下一个单词结尾
B b 倒退到上一个单词开头
需要注意的是,E会忽略标点符号,如:I‘m,e会当成两个单词,E则不会

同样,在命令前加上数字代表执行次数,如:2w,表示往下移动2个单词

开头我也许会多说几遍,因为这个技巧很重要

整行移动

0 移动到行首
\$ 移动到行末
+ 移动到下一行开头
- 移动到上一行开头

这里需要注意的是+ -和上面的j k有什么不同之处
j k也是移动到上一行和下一行,但它们移动的是光标所在的位置

+ -不管你的光标在何处,总是移动到下一行或上一行的行首

滚屏

Ctrl+f 往前滚动一整屏
Ctrl+b 往后滚动一整屏
Ctrl+d 往前滚动半屏
Ctrl+u 往后滚动半屏

Ctrl+e 往后滚动一行
Ctrl+y 往前滚动一行

上面的滚屏都有一个共同点,就是会改变光标的位置,且屏幕也在改变

用z调整光标/屏幕

z<Enter> 将光标所在行移动到屏幕顶端
z. 将光标所在行移动到屏幕中间
z- 将光标所在行移动到屏幕低端

tips:980z<Enter>可以将第980行移动到屏幕顶端

好吧,有时候你其实不想滚屏,你只想在当前屏幕中移动

在屏幕中移动(光标)

H 移动到屏幕顶端的行
M 移动到屏幕中央的行
L 移动到屏幕底端的行

nH 移动到屏幕顶端往下的第n行
nL 移动到屏幕顶端往上的第n行

据我猜测这三个字母应该是HIgh、Middle和Low的缩写,其实挺好记的

多练习几遍就行了,需要注意的是:这里只是光标的位置变化,和上面两种不同
tips:你可以用+ -和j k实现同样的位置变化,只不过要操作多次而已

+ -和j k的区别忘了吗?往上看看吧

在当前行移动

^ 移动到当前行的第一个非空格处
n| 移动到当前行的第n列

这里的^与上面的0通常情况下表示的位置是一样的
而n|,个人感觉还没有h l方便,慢慢的数出行数还不如直接按着h l 左右移

根据行号来移动

Ctrl+g 显示当前行信息
nG 转至第n行
G 转至文本末尾
gg         移至文本开头

如果你不知道当前是多少行的话就可以用Ctrl+g来查看

如果想转到第800行,可以用800G
其实z命令也可以做到,并且把光标移动到第一行

knowledge is no pay,reward is kindness
0%