vim table cheatsheet

命令 描述
进入 vim -
vim filename 打开或者新建文件,光标置于第一行行首
vim +n filename n行行首
vim + filename 最后一行行首
vim +/pattern filename 第一个与pattern匹配的串处
vim -r filename 恢复
vim filename … filename 打开多个
vim 配置 -
all 列出所有选项设置情况
term 设置终端类型
ignorance 忽略大小写
list 显示制表位和行尾标志
number 显示行号
report 显示由面向行的命令修改过的数目
terse 显示简短的警告信息
warn 显示no write信息
nomagic 搜索模式使用前面不带\的特殊字符
nowrapscan 禁止vi在搜索到达文件两端时,又从另一端开始
mesg 允许vi显示其他用户用write写到自己终端上的信息
:set number 显示行号 加no不显示
:set ruler 标尺 有no
:set hisearch 高亮显示查找到的单词
:syntax on 语法高亮
:set tabstop=8 tab大小为8
:set softtabstop=8 4: 4个空格,8:正常制表符,16:两个制表符
:set autoindent 自动缩进
:set cindent c语言格式自动缩进
移动光标 -
k nk
j nj
h nh
l nl
Space 光标右移一个字符
BackSpace 左移
Enter 下移动一行
w/W 右移动一个字至字首
b/B 左移
e/E 右移到字尾
) 句尾
( 句首
} 段落结尾
{ 开头
n$ n行尾
H 屏幕顶行
M 中间行
L 最后行
0 当前行首
^ 第一个非空字符上
$ 当前行尾
gg 第一行
G 最后一行
f 当前行的字符a上
F 相反
% 匹配的符号如()、[]、{}、<>等
nG n行上
G 最后一行
屏幕滚动 -
ctrl + u 向文件首翻半屏
ctrl + d
ctrl + f 文件尾一屏
ctrl + b 首一屏
nz 将第n行滚动至屏幕顶部,不指定n行时将当前行滚动到屏幕顶部
插入文本 -
i 光标前
I 行首
a 光标后
A 行尾
o 当前行之下新开一行
O 之上
r 替换当前字符
R 替换当前字符以及以后的字符,直到按esc键
s 从当前光标位置处开始,以输入的文本替代指定数目的字符
S 删除指定数目的行,并以所输入的文本代替之
ncw/W 修改指定数目的字
nCC 修改指定数目的行
删除命令 -
x/X 删除一个字符,一个后一个前
dw 删除一个单词
dnw n个
dne 删除到单词尾
do 删除到行首
d$ 行尾
dd 删除当前行
ndd 当前行和后面n-1行
dnl 向右删除n个字母
dnh
dnj 下n行(n不含当前行)
dnk 上n行
cnw[word] 将n个word改变为word
C$ 改变到行尾
cc 改变整行
shift+j 删除行尾的换行符,下一行接上来了
复制粘贴 -
p 粘贴用x或者d删除的文本
ynw 复制n个单词
yy 复制一行
ynl n个字符
y$ 复制当前光标至行尾处
nyy 拷贝n行
撤销 -
u 撤销前一次的操作
shift+u 撤销对该行的所有操作
搜索以及替换 -
/pattern 光标开始处向文件尾搜索
?pattern 文件首
n 在同一个方向重复上一次搜索命令
N 反方向
cw newword 替换为newword
n 继续查找
. 执行替换
:s/p1/p2/g 将当前行中所有p1均用p2替代
:n1,n2 s/p1/p2/g n1到n2行
:g/p1/s/p2/g 文件中所有
:1,$ s/string1/string2/g 全文中替换
书签 -
m[a-z] 标记
`a 移动到标记a处
visual模式 -
v 进入模式
V 行的
ctrl+v 进入块操作
行方式命令 -
:n1,n2 co n3 n1到n2行拷贝到第n3行下
:n1,n2 m n3 移动
:n1,n2 d 删除
:n1,n2 wlcommand 作为command的输入并执行之
-
q[a-z] q终止录宏
reg 显示当前所定义的所有宏
窗口操作 -
:split 分割一个
:split file.c 为另一个file.c分隔窗口
:nsplit file.c 并且指定行数
ctrl+w 在窗口中切换
:close 关闭当前窗口
文件及其他 -
:q 退出
:q! 强制
:e filename 打开文件并且进行编辑
:e! 放弃修改,并重载
:w 保存
:wq 存盘退出
:ZZ 保存退出
:!command 执行shell命令command
:r!command 输出结果放到当前行
:n1,n2 write temp.c
:read file.c 将文件file.c的内容放到当前光标所在的下面