linux - vim

2017-09-11  本文已影响72人  Miliimoulins

一、一般模式

1、光标移动

%          # 可以匹配{},"",(),[]之间跳转

Ctrl + f   # 屏幕向前翻动一页(常用)
Ctrl + b   # 屏幕向后翻动一页(常用)
Ctrl + d   # 屏幕向前翻动半页
Ctrl + u   # 屏幕向后翻动半页
Ctrl + e   # 下滚一行

n<space>   # 光标向右移动这一行的n个字符,例如20<space>,则光标会向右移动20个字符
n<Enter>   # 光标向下移动n行(常用)

0          # (这是数字0) 移动到这一行的第一个字符处(常用)
$          # 移动到这一行的最后一个字符处(常用)
2$         # 跳转到下一行的行尾。

b          # 上一个词的词首(常用)
w          # 下一个词的词首(常用)
e          # 下一个词的词尾
<>         # v 模式选中后进行缩进

h,j,k,l    # 左,下,上,右。
H          # 光标移动到这个屏幕最上方的那一行
M          # 光标移动到这个屏幕中央的那一行
L          # 光标移动到这个屏幕最下方的那一行

nH         # 跳转到当前屏的第n行
nL         # 跳转到当前屏的倒数第n行。
zt         # 当前编辑行置为屏顶。
zz         # 当前编辑行置为屏中。
zb         # 当前编辑行置为屏底。
    
G          # 移动到这个文件的最后一行(常用)
nG         # 移动到这个文件的第n行.例如20G,则会移动到这个文件的第20行(可配合:set nu)
gg         # 跳转到文件首。
()         # 跳转到当前的行首、行尾。
{}         # 向上、向下跳转到最近的空行。
[{         # 跳转到目前区块开头。
]}         # 跳转到目前区块结尾。
:n         # 跳转到n行。
f'n'       # 跳转到下一个"n"字母后

2、查找替换

/word       # 输入关键字,发现不是要找的,直接再按 n,向后 查找直到找到为止。
?word       # 输入关键字,发现不是要找的,直接再按 n,向前 查找直到找到为止。

:n1,n2s/word1/word2/g    # 在第n1与n2行之间查找word1这个字符串,并将该字符串替换为word2(常用)
:1,$s/word1/word2/g      # 从第一行到最后一行查找word1字符串,并将该字符串替换为word2(常用)
:1,$s/word1/word2/ge     # 从第一行到最后一行查找word1字符串,并将该字符串替换为word2,且在替换前显示提示符让用户确认(confirm)(常用)
                         # (经验证,并没有提示符让用户确认。)

3、删除 复制 粘贴

u         # 恢复前一个动作(常用)

x,X       # x为向后删除一个字符,X为向前删除一个字符(常用)
nx        # 向后删除n个字符

D         # 删除从当前光标到光标所在行尾的全部字符
dd        # 删除光标所在的那一整行(常用)
ndd       # 删除当前行及其后n-1行(常用)
d1G       # 删除光标所在行到第一行的所有数据
dG        # 删除光标所在行到最后一行的所有数据
dw        # 删除一个单词/光标之后的单词剩余部分。
d4w       # 删除4个word

yy        # 复制光标所在行(常用)  或者 Y
yw        # 将光标所在之处到字尾的字符复制到缓冲区中
nyy       # 复制光标所在行的向下n行,例如,20yy则是复制20行(常用)
nyw       # 复制n个字到缓冲区
y1G       # 复制光标所在行到第一行的所有数据
yG        # 复制光标所在行到最后一行的所有数据
n1,n2 co n3   # 复制第n1行到第n2行之间的内容到第n3行后面

p         # 粘贴在光标下一行(常用)
P         # 粘贴在光标上一行(常用)

J         # 将光标所在行与下一行的内容结合成一行

4、移动

n1,n2 m n3     # 将n1行到n2行之间的内容移至n3行下

5、选择

V       # 选择当前行
^V      # 矩形选择
v3w     # 选择三个字符

6、大小写转换

gUU     # 将当前行的字母改为大写
guu     # 将当前行的字母改为小写
gUw     # 将当前光标下的单词改为大写
guw     # 将当前光标下的单词改为小写

ggguG     # 整篇大写
gggUG     # 整篇小写

二、编辑模式

i        # 当前光标所在处插入:在当前光标所在处插入输入的文字,已存在的字符会向后退(常用)
a        # 光标所在处下一个字符处添加:由当前光标所在处的下一个字符开始输入,已存在的字符会向后退(常用)

I        # 行首插入:在当前光标所在处的行首开始插入(常用)
A        # 行尾添加:由光标所在处的行尾开始输入(常用)

o        # 在下一行插入新的一行:从光标所在处的下一行插入一空白行,并从行首开始输入字符(常用)
O        # 在上一行插入新的一行:从光标所在处的上一行插入一空白行,并从行首开始输入字符(常用)

r        # 替换:替换光标所指的那一个字符(常用)
R        # 替换:一直替换光标所指的文字,直到按下Esc为止(常用)
Esc      # 退出编辑模式,回到一般模式(常用)

三、命令行模式

:q         # 退出vi(常用)
:q!        # 若曾修改过文件,又不想保存,使用!为强制退出不保存文件

:w         # 将编辑的数据写入硬盘文件中(常用)
:w!        # 若文件属性为只读,强制写入该文件

:wq        # 保存后退出
:wq!       # 强制保存后退出(常用)
ZZ         # 强制保存后退出(超方便)

:w filename     # 将编辑数据保存为另一个文件(类似另存新文档)     所有filename都要加后缀
:r filename     # 在编辑的数据中,将filename这个文件内容加到光标所在行的后面
:e filename     # 打开并编辑指定名称的文件
n1,n2 w filename      # 将n1到n2的内容保存为filename这个文件

:set nu         # 显示行号,设定之后,会在每一行的前面显示该行的行号
:set nonu       # 与set nu相反,为取消行号
上一篇 下一篇

猜你喜欢

热点阅读