勤能补拙,厚积薄发

合抱之木,生于毫末;九层之台,起于垒土;千里之行,始于足下
随笔 - 19, 文章 - 0, 评论 - 3, 引用 - 0
数据加载中……

vim的一些常用命令

速记用的(默认在命令模式下)
esc:回到命令模式下(若当前就在命令模式下则do nothing)

i:切换到插入模式,当前光标处
a:切换到插入模式,光标后一个字符处
:w:写命令,相当于win32下的ctrl+s,将缓冲区中的数据写入到文件中
:q:退出(我一般用wq来退出,即退出前保存)
o:在光标当前行下方插入新一行
O:在光标当前行上方插入新一行
r:在命令模式下按下r键,默认修改光标当前所在位置的字符。一般使用r*组合,将当前字符修改为*
~:小写字符<->大写字符
x, delete(功能键):删除光标所在的字符,操作结束后原位置的下一个字符(右边)变成当前字符
J:将下一行合并到当前行

$:光标到该行结尾
0:光标到该行开头
+:下一行的第一个字符
-:上一行的第一个字符
:n, nG, ngg:跳转到n行
ctrl+F:向前滚动一整屏
ctrl+B:向后滚动一整屏
H:移到屏幕顶端的行首
M:移到屏幕中间的行首
L:移到屏幕底端的行首

u:撤销当前操作undo
.:重复上一次操作
Ctrl+R:重做一次撤销操作redo

:sp:分成上下两个窗口,并在新窗口中显示你新建或打开的文件
:vsp:分成左右两个窗口,并在新窗口中显示你新建或打开的文件
:tabnew:在tab条上打开新窗口,常用于gvim
%:匹配(){}[],需要光标在其中一个字符上面,按%跳转到与当前字符匹配的位置去。

d:删除命令(暂存在vim的剪切板里,按p粘贴出来,相当于剪切命令)
dw:删除一个单词/光标后的单词的剩余部分(注:删除自光标开始到第一个空白字符之间的内容,光标本身被计算在内。在空白字符上操作则删除光标所在空白字符)
dd:删除光标行
d$: 删除该行光标之后的部分
d0:删除该行光标之前的部分
ndd(n为数字):删除光标所在行及以下共n行
dG:删除光标以后的所有行
y:复制命令
yw:复制一个单词/光标后单词的剩余部分(和dw命令类似,见前注)
yy :复制光标所在行
nyy(n为数字):复制光标所在行及以下共n行
yG:复制光标以后的所有行
y$: 复制该行光标之后的部分
y0:复制该行光标之前的部分
ynl:复制光标起向右的n个字符(光标本身计入)
ynr:复制光标起向左的n个字符(同上)
ynw:复制光标起向右的n个单词(同上)
cw:更改从光标处到这个单词结尾(相当于dw)
c$:相当于d$
cc:相当于dd,唯一不同是dd将行删除,cc将行清空但该行还存在

=:缩进命令
==:缩进光标所在行
n==(n为数字):缩进光标所在行及以下共n行
=G:缩进光标以下的所有行

gg:回到初始处,首行首列
G(shift+g):到文件末尾
pageup 上一页, pagedown 下一页,一般以20行计一页
ggdG:删除所有字符
ggyG:全选+复制到vim剪切板
ggVG:全选
"+y:复制到系统剪贴板,就是可以用Ctrl+V那个
ggVG"+y:全选+复制到系统剪切板
(shift+insert:将系统剪切板内的内容粘贴到gvim中,似乎适用面不广)
"+P:最普遍的将系统剪贴板中内容粘贴到vim中的命令
gg=G:自动格式化全文
Tab:在多个标签之间切换
Ctrl+w 连续2次(Ctrl+Tab在命令行界面下不管用,在gui界面下可以,不知为何):在标签与对应的文件之间切换
n1,n2s/s1/s2/gc:vim替换命令,表示从n1行到n2行全部替换,1,$表示全局替换,s/s1/s2/表示将字符串s1替换为s2,c表示有提示(可以选择一个一个替换,或者全部替换,或者不替换)
?s1 or /s1:搜索,前者是从光标之前行搜索字符串s1,后者是从光标所在行之后搜索s1
:r [filename]:读入filename中的内容,并插入到光标的下一行起始处 

下面两条语句需要在该文件的当前所在目录执行ctags -R命令后才能起作用
在vim编辑器中浏览:
    :ta x 跳转到符号x的定义处,如果有多个符号,直接跳转到第一处
    :ts x 列出符号x的定义
    :tj x 可以看做上面两个命令的合并,如果只找到一个符号定义,那么直接跳转到符号定义处,如果有多个,则让用户自行选择。
ctrl+]:跳转到光标所在函数名的定义处,
ctrl+T:返回原光标位置

以下命令需要安装visualmark.vim才能执行
ctrl+F2:加入书签
F2:在书签间正向切换
shift+F2:反向切换

以下命令需要安装a.vim,并在配置文件中加入nnoremap <silent> <F12> <CR>才能执行
F12:在*.h和*.c/*.cpp文件间切换(文件前缀名称必须相同)

网易博客上的相关博文
我的gvim配置学习
http://blog.163.com/liyilouis007@126/blog/static/3180905020113214363460/

posted on 2011-11-10 14:40 lee007 阅读(628) 评论(0)  编辑 收藏 引用 所属分类: LINUX


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理