linux vim 手册,Vim 参考手册

Vim 参考手册

索引

跳转

undo

代码折叠

缓冲区

标签

文件打开与保存

插入

光标移动

复制粘贴删除

缩进

查找替换

bookmarks

ctags

bash

自动补全

分屏

diff

其他

跳跃指令 (jumps)

跳跃指令类似于游览器中的按钮

CTRL-] -> 跟着link/tag转入 (follow link/tag)

CTRL-o -> 回到上一次的jump (go back)

CTRL-i -> 跳回下一个 (go forward)

:ju -> 显示所有的可以跳跃的地方 (print jump list)

重做/回复

u -> undo

CTRL-r -> redo

vim的undo是树结构的,你可以回到这个结构中的任何地方

:undo 2 -> undo 到结构的2层 (undo to tree 2)

:undolist -> 显示所有的undo列表 (show undo list)

:earlier 10s -> undo到10秒前的编辑 (undo to 10 seconds ago)

:earlier 10h -> undo到10小时前的编辑 (back to 10 hours ago)

:earlier 1m -> undo到1分钟前 (back to 1 minutes ago)

下面是undo的tree结构的解释

………..one

…………. |

……..change 1

…………. |

………one too

………. /……..\

…..change 2 ……. change 3

………… | ………………… |

…….one two ………. me too

……….. |

….. change 4

………..|

…… not two

代码折叠

* zo 将当前折叠打开

* zc 折叠光标所在处

* zr 打开所有折叠层次(依层次打开)

* zm 折叠所有层次(依层次折叠)

* zR 打开所有折叠  zn

* zM 折叠所有      zN

* zi 切换折叠与不折叠指令

缓冲区

* vim file1 file2 多个文件调入缓冲

* :e filename 在vim中再打开文件

* :ls 列出所有的缓冲区

* :n 编辑下一个文件

* :bp 跳转到上一个缓冲区

* :bn 跳转到下一个缓冲区

* :bN 跳转到指定编号的缓冲区:b3

* :bd1 删除编号为1的缓冲区

标签

* :tabnew 打开新标签页.

* :tabe  在新标签页打开文件.

*  + PageUp, PageDown 切换标签页.

* :tabnext, tabprev 切换标签页,Putty 下只能用这个.

文件打开保存

* :e  打开文件.

* :enew 新文件.

* :w 保存.

* :wa 全部保存.

* :w  另存为.

* :wq 保存并退出.

* :q 退出.

* :qa 全部退出.

* :q! 强制退出.

* ZZ 退出vim并保存文档

快捷插入

* esc 切换命令模式 (距离太遥远了,用 Ctrl+C 代替吧).

* i 插入模式.

* I 在当前行开头插入.

* R 替换模式.

* a 在光标后插入.

* A 在当前行尾部插入.

* o 将在光标所在行下面加入一行,并进入编辑模式。

* O 将在光标上面加入一行,注意是大写。

* v Visual 模式按字符选择.

* V Visual 模式按行选择.

光标移动

h 左移光标.

j 下移光标.

k 上移光标.

l 右移光标.

gg 将光标移到文件头部.

G 将光标移到文件尾部.

#G 移动光标到指定行#. 例如: 5G

% 跳转到配对的括号去

[[ 跳转到代码块的开头去(但要求代码块中’{‘必须单独占一行)

gD 跳转到局部变量的定义处

” 跳转到光标上次停靠的地方, 是两个’, 而不是一个”

mx 设置书签,x只能是a-z的26个字母

`x 跳转到书签处(“`”是1左边的键)

fx:移动光标到当前行的下一个 x 处。很明显,x 可以是任意一个字母,而且你可以使用 ; 来重复你的上一个 f 命令。

tx:和上面的命令类似,但是是移动到 x 的左边一个位置。(这真的很有用)

Fx:和 fx 类似,不过是往回找。

w : 向后词移动 (前面加数字移动多少个词)

b : 向前词移动 (前面加数字移动多少个词)

e : 向后移到词末

ge : 向前移到词末

0:移动光标到当前行首。

^:移动光标到当前行的第一个字母位置。

$:移动光标到行尾。

):移动光标到下一个句子。

( :移动光标到上一个句子

tx : 向右查找本行的x并移到那儿(大写时向左)

33G : 移到文件的第33行

gg : 文件首行

G : 文件尾行

33% : 文件的33%处

H/M/L : 屏幕的首/中/尾行

zt/zz/zb : 当前行移到屏幕的首/中/底部

复制粘贴删除

yy 拷贝当前行到剪贴板.

nyy 复制从当前行开始的n行

y^ 从文件头开始拷贝.

y$ 拷贝到文件尾部.

:#,&y 拷贝 # 到 & 行. 例如: 4,5y

p 在光标后粘贴.

P 粘贴到光标前.

dd 删除当前行.

d^ 删除到行首.

d$ 删除到行尾.

:#,&d 删除 # 到 & 行. 例如: 3,5d

D 当前光标开始删除到行尾

ndd 从当前行开始向后删除n行

d1G 删除第1行到当前行的数据

dnG 删除第n行到当前行的数据

dG 删除当前行到最后一行的数据

x 向后删除1个字符

nx 向后删除n个字符

X 向前删除1个字符

缩进

>> 增大缩进.

查找替换

/# 查找 #. 例如: /printf

?# 反向查找 #.

n 查找下一个.

N 反向查找下一个.

:s/old/new/g 当前行无提示替换.

:%s/old/new/g 无提示替换.

:%s/old/new/gc 确认替换.

:#,&s/old/new/g 从 # 到 & 行无提示替换.

*  查找光标所在单词

书签跳转

* :marks 查看所有书签, 输入 “:” 可跳转.

* m 定义书签, 如 ma 在当前行定义名为 a 的书签.

* ` 跳转到某书签, “`” 为键盘 Tab 上一行第一键.

* :jumps 查看所有跳转记录, 输入 “:” 可跳转.

*  + o 返回上一次跳转处.

*  + i 和  + o 反向转处.

Ctags

* :! ctags -R . 生成 ctags 文件.

*  + ] 查看函数定义.

*  + T 返回.

* shift + k 查看函数 man 帮助信息.

cmd

* !  执行命令.

* :r  插入文件内容.

* :r ! 插入命令输出结果.

* :cd

修改默认工作目录.

自动补全

Ctrl+X Ctrl+L整行补全

Ctrl+X Ctrl+N 根据当前文件里关键字补全

Ctrl+X Ctrl+K 根据字典补全

Ctrl+X Ctrl+T 根据同义词字典补全

Ctrl+X Ctrl+I 根据头文件内关键字补全

Ctrl+X Ctrl+] 根据标签补全

Ctrl+X Ctrl+F 补全文件名

Ctrl+X Ctrl+D 补全宏定义

Ctrl+X Ctrl+V 补全vim命令

Ctrl+X Ctrl+U 用户自定义补全方式

Ctrl+X Ctrl+S 拼写建议

分屏

分屏启动Vim    注释: n是数字,表示分成几个屏。

vim -On file1 file2 …     使用大写的O参数来垂直分屏。

vim -on file1 file2 …   使用小写的o参数来水平分屏。

Ctrl+W c   关闭分屏  关闭当前窗口。

Ctrl+W q    关闭当前窗口,如果只剩最后一个了,则退出Vim

分屏

Ctrl+W s        上下分割当前打开的文件。

:sp filename    上下分割,并打开一个新的文件。

Ctrl+W v    左右分割当前打开的文件。

:vsp filename    左右分割,并打开一个新的文件。

移动光标    Vi中的光标键是h, j, k, l,要在各个屏间切换,只需要先按一下Ctrl+W

Ctrl+W l     把光标移到右边的屏。

Ctrl+W h    把光标移到左边的屏中。

Ctrl+W k    把光标移到上边的屏中。

Ctrl+W j    把光标移到下边的屏中。

Ctrl+W w    把光标移到下一个的屏中。.

移动分屏    这个功能还是使用了Vim的光标键,只不过都是大写。当然了,如果你的分屏很乱很复杂的话,这个功能可能会出现一些非常奇怪的症状。

Ctrl+W L    向右移动。

Ctrl+W H    向左移动

Ctrl+W K    向上移动

Ctrl+W J    向下移动

屏幕尺寸    下面是改变尺寸的一些操作,主要是高度,对于宽度你可以使用Ctrl+W ,但这可能需要最新的版本才支持。

Ctrl+W =    让所有的屏都有一样的高度。

Ctrl+W +    增加高度。

Ctrl+W -    减少高度。

ctrl+w >    向右扩展

ctrl+w

diff 模式

参考

比较 A , B 文件, vim – d A B 或者这样

或先打开文件 A,然后 :vsp(全名vsplit) 打开 B,然后输入命令 :diffthis

或 vimdiff   FILE_LEFT FILE_RIGHT

]c 跳转到下一差异点

[c 反向跳转

上下文折叠 参考

默认情况下,vimdiff会将文件中不同之处上下6行之外的相同文本折叠隐藏,可通过 :set diffopt=context:3 修改显示的上下文行数。

zo 打开折叠

zc 关闭折叠

文件合并

dp 将当前窗口光标位置处的内容复制到另一窗口

do 将另一窗口光标位置处的内容复制到当前窗口

diffupdate 重新比较两个文件,如果手动修改文件的话有时不会自动同步

其他

gg=G 源码格式化

:e! 强行重新编辑

shift insert 从系统拷贝到vim

u 撤销上一步操作.

U 撤销最后编辑的行上的操作

* . 重做.0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值