Chinaunix首页 | 论坛 | 博客
  • 博客访问: 50311
  • 博文数量: 15
  • 博客积分: 265
  • 博客等级: 二等列兵
  • 技术积分: 130
  • 用 户 组: 普通用户
  • 注册时间: 2012-08-23 17:05
文章分类

全部博文(15)

文章存档

2014年(1)

2013年(3)

2012年(11)

我的朋友

分类: LINUX

2013-03-21 23:09:03

原文地址:VIM 常用插件和操作 作者:ruchong

一, VIM常用插件

1:taglist
(1):进入项目工程目录运行exuberant-ctags -R . 生成tags文件
(2):修改.vimrc对taglist进行配置
let Tlist_Ctags_Cmd="/usr/bin/exuberant-ctags"  指定exuberant-ctags路径
nnoremap :Tlist  指定Tlist映射关系
au BufEnter /usr/MyProject/* setlocal tags+=/usr/MyProject/tags  指定tags文件目录
(3):taglist应用
F2:打开TList窗口
: 在Tlist窗口中点空格显示函数声明
x:在Tlist窗口中点x隐藏代码窗口

二, VIM快捷键盘
光标移动:
四个方向
k
h 0 l
j

ctrl+f, ctrl+b 向下翻页,向上翻页
ctrl+d, ctrl+u 向下半翻页,向上半翻页
$ 移动行尾
0 移动行首
w 移动下一个词
b 移动到上一个词
gg 跳到文档的开始处
G 跳到文档的末尾
% 跳到匹配的括号处("{ }""[]""()")
ctrl+i,tab 跳到下一个jump point
ctrl+o 跳到上一个jump point

23gg, 23G, :23 跳到第23行
ctrl+i, tab 跳到下一个跳点(Jump Point)
ctrl+o 跳到上一个跳点

查找替换例子:
: s/SEARCH/REPLACE
: s/If/Since 将下一个"If"换成"Since"
: %s/If/Since 将全部"If"换成"Since"
: 1,3 s/If/Since/g 只对1,3行有效,如无前缀,只对当前行有效

表达式:
. 代替一个字符
* 表示一个或多个字符的重复

/d.*an 可以匹配 dan, divan, debian

单词边界:
指定单词边界: \< 和 \>
如: /\ 匹配以d开始,中间包含任意个小写字母,以an结束的单词

/\$[0-9]*\.[0-9][0-9] 匹配查找 $XX...X.XX这要的数字,有且只有两位小数的

常用的编辑命令:
a, i 在光标后插入, 在光标前插入
dd 删除一行
cc,S 删除一行后进入insert模式
dw 删除一个单词
cw 删除一个单词后进入insert模式
x,dl 删除一个字符
s,cl 删除一个字符后进入insert模式

p 粘贴
xp 交换两个字符
ddp 交换两行

y 复制
yy 复制一行
u 撤消
ctrl+r 重做
. 重复上一次修改

ctrl+r 重做
. 重复上一次修改

划分窗格:
:split/vsplit 分隔一个窗口
:new/vnew 创建一个新的窗口
:sf {filename} 在新窗口中打开filename
:close 关闭当前窗口
:only 关闭除当前窗口外所有窗口
:ctrl-w h 到左面的窗口
:ctrl-w j 到下面的窗口
:ctrl-w k 到上面的窗口
:ctrl-w l 到右面的窗口
:ctrl-w t 到顶部的窗口
:ctrl-w b 到底部的窗口

重复操作(宏操作):
q[a-z] 开始记录操作,记录到寄存器[a-z]中
q 停止记录操作
@[a-z] 执行寄存器中的操作
@@ 执行最近寄存器中记录的操作
例子: 一个缓冲区有两行:
sys/types.h
stdio.h
-->要改为:
#include
#include
操作如下:
qa #开始记录
^ #移动行首
i #进入insert模式
#include < #输入内容
$ #移动行尾
i #进入insert模式
> #输入内容
q #停止记录

移动另一行:
@a即可执行相同的操作

Visual Mode操作:
ctrl+v 进入基于块的可视模式
v 进入基于字符的可视模式
V 进入基于行的可视模式

c 删除选定的块
I{string} 选定块后按大写的I,输入字符串,再按ESC,
可以在块内每一行插入相同的内容


跳到声明处:
[[ 向前跳到顶格的第一个"{"
[] 向前跳到顶格的第一个"}"
][ 向后跳到顶格的第一个"{"
]] 向后跳到顶格的第一个"}"
[{ 跳到本代码块(由{}界定)的开头
[} 跳到本代码块的结尾

Shell:
:ctrl+z/suspend 在shell下是挂起vim; gui下是最小化窗口
:!{command} 执行shell命令
:shell 开一个新的shell

保存vim状态(挂起?):
:mksession session.vim 保存当前vim状态
:source session.vim 回复vim状态
vim -S session.vim 启动vim时恢复session


阅读(911) | 评论(0) | 转发(0) |
0

上一篇:Linux 常用软件

下一篇:vector的使用

给主人留下些什么吧!~~