您的位置:首页 > 其它

系统的学习和总结VIM的使用

2016-07-24 18:47 225 查看

1. 光标的移动

字符移动

h:向左移动一个字符

j:向下移动一行

k:向上移动一行

l:向右移动一个字符

数字+h|j|k|l移动指定的行或者字符

单词移动

w: 将光标向前移动到下一个单词的词首

b: 将光标向后移动到前一个单词的词首

e: 将光标移动到下一个单词的词末

ge: 将光标移动到前一个单词的词末

2w: 指定移动的次数

行移动

$: 移动到行尾

0: 移动到行首

^: 移动到行首的第一个非空字符

2|:移动到第二列

fx:将光标移动到当前行第一个字符x上

3fx:将光标移动到当前行第3字符x上

tx:将光标移动到目标字符的前一个字符上

fx和tx可以通过;和,进行重复移动,;表示正向重复 ,表示反向重复

%:用于符号之间的移动,它可以在(),[],{}之间跳跃

文本块移动

(, 移动到当前句子的开头

), 移动到下一句子的开头

{, 移动到当前段的开头

}, 移动到下一段的开头

[[, 移动到当前节的开头

]], 移动到下一节的开头

屏幕中移动

gg:移动到整个文件的开头

G: 移动到整个文件的结尾

xG:跳转到指定的行

H: 移动到当前屏幕的开始

M: 移动到当前屏幕的中间

L: 移动到当前屏幕的末尾

x%: 移动到文章指定的比例位置

两点或者单引号可以返回到跳转前的位置(“或者”)

ctrl+G: 查看当前文件的位置状态

2. 滚屏和跳转

半屏滚动: ctrl+u(向上滚动) ctrl+d(向下滚动)

全屏滚动: ctrl+f(向上滚动) ctrl+b(向下滚动)

定位光标的位置:

zz: 将光标所在位置置于屏幕的中间

zt: 将光标所在位置置于屏幕的顶部

zb: 将光标所在位置置于屏幕的底部

设置跳转标记:

mx,my,mz设置三个位置(如何设置)

x,
y,`z 跳转到设置

3. 文本插入操作

i 在当前光标的前面插入字符

a 在当前光标的后面追加字符

o 在光标所在行的下一行行首插入字符

I 在一行的开头添加文本

A 在一行的结尾添加文本

O 在光标所在行的上一行插入文本

s 删除当前光标所在的字符并进入插入模式

S 删除光标所在处的行,并进入插入模式

注意: 通过u可以撤销之前的修改

4. 文本删除

字符删除

x: 删除当前光标所在的字符

X: 删除当前光标之前的字符

单词删除:

dw: 删除一个单词(从光标到空白)

daw: 无论光标在什么位置,删除光标所在的整个单词,包括单词后面的空白字符

diw: 删除整个单词,但是保留后面的空白字符不删除

d2w: 删除从当前光标开始的连续两个单词

d$: 删除光标到行未的所有单词

d0: 删除光标到行首的所有单词

dx:等价于x

dh:等价于X

删除行:

dd 删除光标所在的行,等价于D

5dd,删除从光标开始向下的5行

dgg:删除从光标到文本的开头

dG:删除从光标到文办的结尾

启发,d+位置或者范围可以组合出不同的删除命令

行合并

J: 删除一个分行符,将当前行与下一行合并

5. 文本的复制、剪贴与粘贴

复制文本

y: 复制

p:粘贴

yw:复制一个单词

y2w: 复制两个单词

y$: 复制从当前光标到行结尾的所有单词

y0: 复制从当前光标到行首的所有单词

yy: 复制一整行 (复制到光标所在行的下一行)

2yy:复制当前光标所在行开始的2行

复制文板块:

首先输入v进入可视化模式

移动光标选择文本

执行复制与粘贴的操作

剪切文本

先删除(同上),再粘贴(p)

6 文本的修改与替换

cw: 删除从光标处到单词结尾的文本并进入插入模式

cb: 删除从光标处到单词开头的文本并进入插入模式

cc: 删除光标所在行并进入到插入模式

~: 修改光标下字符的大小写

r: 替换当前光标下的字符

R: 进入到替换模式

xp: 交换光标和下一个字符

7 组合命令的使用

复制

yL (复制从光标到屏幕底部的所有内容)

yH (复制从光标到屏幕顶部的所有内容)

y+ (复制从光标及其下一行的内容)

y5| (复制从光标到第五列之间的内容)

2y)(复制从光标到第五列之间的内容)

y{ 复制上一段, y} 复制下一段

yG 复制到文件的结尾

y13G 复制光标开始到下面的13行

删除

dL (删除从光标到屏幕顶部的所有内容)

dH (删除从光标到屏幕顶部的所有内容)

d+ (删除从光标及其下一行的内容)

d5| (删除从光标到第五列之间的内容)

2d)(删除从光标到第五列之间的内容)

d{ 删除上一段, d} 删除下一段

dG 删除制到文件的结尾

d13G 删除光标开始到下面的13行

更改

cL (更改从光标到屏幕顶部的所有内容)

cH (更改从光标到屏幕顶部的所有内容)

c+ (更改从光标及其下一行的内容)

c5| (更改从光标到第五列之间的内容)

2c)(更改从光标到第五列之间的内容)

c{ 更改上一段, c} 更改下一段

cG 更改到文件的结尾

c13G 更改光标开始到下面的13行

8 文本的查找与替换

查找

/string: 进入正向查找模式, n 查看下一个 (set hls 高亮显示)

?string: 进入方向查找模式, n 反向查看下一个

( * 高亮显示与当前光标所在字符相同的所有字符)

替换

:s/old/new 将当前行的第一个字符串old替换为new

:s/old/new/g 将当前行的所有字符串old替换为new

90s/old/new/g 将第90行的所有字符串old替换为new

90,93s/old/new/g 将第90到93行的所有字符串old替换为new (指定行的范围)

%s/old/new/g 将文本中所有字符串old替换为new

%s/old/new/gc 依次替换每个字符串关键字

可以使用正则表达式进行模式匹配替换

9 修改的撤销、重做和保存

u: 撤销上一步的操作

ctrl+r: 将原来的撤销再重做一遍

U:恢复一整行文件打开是文件的文本状态

wq:保存退出

e!: 放弃修改,但不关闭文件

q!: 放弃修改,并关闭文件

10 编辑多个文件

文件和缓冲区的区别,vim每打开一个文件都会创建一个对应的缓冲区。

vim *.c

buffers或者ls: 显示所有打开的文件

buffer N: 跳转到缓存区中第N个文件的缓存区

bnext/bprev:遍历缓冲区列表

bfirst/blast: 跳转到缓冲区列表的开头和结尾

write: 将缓冲区写入文件

edit! 或者e! 放弃缓存区的修改

edit filename: 切换到要编辑的文件

wnext:保存当前缓存区的修改并跳转到缓冲区列表中的下一个文件

注意: set autowrite 自动保存缓冲区的文件到文件

11 标签页和折叠栏

标签页

tabedit: 创建一个标签页

tab split: 创建一个标签页,使用当前文件缓冲区中的数据

tabn/tabp: 命令切换标签页

gt/gT: 按键切换标签页

tabclose: 关闭当前的标签页

tabonly:关闭其它的标签页

折叠

zf200G:将光标和200行之间的代码折叠起来(不是在命令行模式下)

za:打开和关闭折叠

zr/zm:一层一层的打开和关闭折叠

zR/zM:分别打开和关闭所有的折叠

zj/zk: 在各个折叠处相互跳转

zd: 删除光标下的折叠

zD:删除光标下的折叠以及嵌套的折叠

zE:删除所有的折叠标签

注意:创建的折叠当退出vim之后就丢失了

12 多窗口的操作

split filename: 水平分割窗口

vsplit filename: 垂直分割窗口

ctrl+w h|j|k|l: 切换窗口

ctrl+w w : 在窗口之间顺序跳转

ctrl+w H|J|K|L: 移动窗口

ctrl+w +/-: 调整窗口的高度

ctrl+w
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: