Vim cheatsheet from He. |
Vim常用操作总结 |
Key | Action |
| undo |
| redo |
| 删除到行尾 |
| (delete till)删除当前光标到指定字符间的内容 |
| (delete in)删除两个char之间的内容(常用di{ di[),删除打印语句 |
| 删除两个char之间的内容以及对应的char |
| 查找光标所在处局部变量的定义 |
| 查找光标所在处全局变量的定义 |
| 从头到脚自动缩进 |
| 忽略大小写查找word模式(case) |
| 大小写敏感查找word模式(Case) |
| 可对光标处的词向前/向后做全词搜索,g*, g# 做相对应的非全词匹配搜索,匹配玩按N. (SI的shift+F3 shift+F4) |
| 切换到当前buffer的下一个buffer, 配置成 |
| 切换当前buffer的前一个buffer, 配置成 |
| 打开n号的buffer,切换TAB页 |
| Veg整行模式,hjkl进行选定,就像鼠标选定一样,所以叫做可是模式 |
| 列模式,+I input esc每行都添加, +c input esc每行都删除选定的字符之后添加 |
| 当前文件中全部src替换成dest,并挨个确认(c代表确认) (SI的ctrl+P) |
| 折叠代码 ,跳过整个for循环,if条件 |
| 打开折叠代码 |
| 查看当前文件路径(相对vim执行目录) |
| 将当前word变为小(大)写 |
| 改变光标下字母的大小写 |
| 恢复至文件打开的状态 |
光标移动
Key | Action |
| 移动到一下个词首(word) |
| 移动到上一个词首(before) |
| 移动到当前词尾(end) |
| 跳转到后一个光标停靠点 (SI的 alt+<) |
| 跳转到前一个光标停靠点 (SI的alt+>) |
| 到代码块起始的大括号处 |
| 到代码结束的大括号处 |
| 跳转到和当前括号匹配的括号处,SI中选定后按上下键跳过整个括号的内容 |
| 跳到文件头 |
| 跳到文件尾 |
| 跳转到第n行 |
| 当前区域最上一行(High) |
| 当前区域中间一行(Middle) |
| 当前区域最后一行(Low) |
分屏
Key | Action |
| 左右分割当前打开的文件 |
| 上下分割当前打开的文件 |
| 关闭当前窗口 |
| 关闭当前窗口,如果只剩最后一个了,则退出Vim |
| 移动相邻窗口 |
项目中全局查找字符串(SI的ctrl+/功能)
:vimgrep/the menu/ *.php
在当前目录下的所有php文件中查找the menu字符串
:vimgrep/the menu/ **/*.c
在当前目录及子目录下的.c文件中查找the menu字符串
查找的结果可以用:copen
命令查看,在列表里,将光标移动至相应的位置,按回车就打开对应的文件了.
注:
Key | Action |
| 打开quickfix |
| 关闭quickfix |
| 是在转到当前查找到的位置 |
| 转到下一个位置 |
| 转到前一个位置 |
cscope
使用方法:
:cs find{querytype} {name}
or :cs f{querytype} {name}
其中:
{querytype} 即相对应于实际的cscope行接口数字,同时也相对应于nvi命令:
Key | Action |
s | 查找这个C符号 |
g | 查找这个定义 |
d | 查找被这个函数调用的函数(们) |
c | 查找调用这个函数的函数(们) |
t | 查找这个字符串 |
e | 查找这个egrep匹配模式 |
f | 查找这个文件 |
i | 查找#include这个文件的文件(们) |
CtrlP
ctrl+d
切换匹配模式:full-path匹配 / 只匹配文件名
ctrl+f
在files/mru files/buffers之间切换查找范围
tab
补全
ctrl+u
清除输出内容
ctrl+z
标记要打开的文件
ctrl+o
打开多个标记文件
nerdcommenter
Key | Action |
cc | 普通方式注释 |
cs | 风骚的多行注释(comment sexy?) |
cu | 取消注释 |
c+space | 注释选定代码行 |
ca | 在可选的注释方式之间切换,比如C/C++ 的块注释/ /和行注释// |
|cA|在当前行尾添加注释符,并进入Insert模式|
a.vim
Key | Action |
:A | 头文件/源文件切换 |
:AS | 分割窗后并切换头/源文件(切割为上下两个窗口) |
:AV | 垂直切割窗口后切换头/源文件(切割为左右两个窗口) |
:AN | 在多个匹配文件间循环切换 |
:IH | 切换至光标所在文件 |
:IHS | 分割窗口后切换至光标所在文件(指将光标所在处单词作为文件名打开) |
:IHV | 垂直分割窗口后切换 |
:IHT | 新建标签式窗口后切换 |
:IHN | 在多个匹配文件间循环切换 |
ih | 切换至光标所在文件* |
is | 切换至光标所在处(单词所指)文件的配对文件(如光标所在处为foo.h,则切换至foo.c/foo.cpp…) |
ihn | 在多个匹配文件间循环切换 |
taglist
Key | Action |
ctrl+] | 查找当前光标所在处tag的定义(ctags支持) |
ctrl+t | 返回到之前执行查找tag时的位置 |
o | 在一个新打开的窗口中显示光标下tag |
Space | 显示光标下tag的原型定义 |
x | taglist窗口放大和缩小,方便查看较长的tag |
q | 关闭taglist窗口 |
nerdtree
Key | Action |
o | 在已有窗口中打开文件、目录或书签,并跳到该窗口 |
go | 在已有窗口 中打开文件、目录或书签,但不跳到该窗口 |
x | 合拢选中结点的父目录 |
J | 跳到当前目录下同级的最后一个结点 |
I | 切换是否显示隐藏文件 |
m | 显示系统菜单 |
C | 设置当前目录为root |
u | 返回到当前root的上级父目录并设置为root |
q | 关闭NerdTree窗口 |
搜狗输入法
shift +space
切换全角半角
Evernote,你的工作空间。下载Evernote |