Professional Documents
Culture Documents
ht 奔
tp 跑
s:/ 吧
/s lin
ho ux
p1 内
15 核
68 》
36 配
45 套
笨叔叔
.ta 视频
ob 节
ao 目
.c 已
om 经
/ 上
线
强更好用的IDE
把vim打造一个比Source Insight更
《
ht 奔
tp 跑
s:/ 吧
/s lin
ho ux
p1 内
15 核
68 》
36 配
45 套
.ta 视频
ob 节
ao 目
.c 已
om 经
/ 上
线
Linux从业人员大部分人都使用VIM
《
ht 奔
tp 跑
s:/ 吧
/s lin
ho ux
p1 内
15 核
68 》
代码补全功能
36 配
45 套
.ta 视频
ob 节
ao 目
.c 已
查找函数或者变量的定义
om 经
/ 上
查找哪些函数调用了该函数
线
Source Insight有什么地方吸引我们?
vim设计理念
• vim的设计理念是把整个文本编辑器都用键盘的来操作而不需要
使用鼠标
线
/ 上
减少使用鼠标
om 经
.c 已
ao 目
减少敲击键盘
ob 节
.ta 视频
减少手指移动
45 套
减少目光移动
36 配
68 》
15 核
p1 内
ho ux
/s lin
s:/ 吧
tp 跑
ht 奔
《
《
ht 奔
tp 跑
s:/ 吧
/s lin
ho ux
p1 内
15 核
68 》
36 配
45 套
.ta 视频
ob 节
ao 目
.c 已
om 经
/ 上
线
vim工作模式
• 命令模式(Command mode):用户打开vim的时候便进入到命令模式。在
命令模式下输入的键盘动作会被vim识别成命令,而非输入字符。比如这时
线
输入i,vim识别的是一个i命令。用户可以输入命令来控制屏幕光标的移动,
/ 上
文本的删除或者复制某段区域等,也可以进入底行模式或者插入模式。
om 经
.c 已
ao 目
ob 节
.ta 视频
• 插入模式(Insert mode):在命令模式下输入i命令就可以进入插入模式,
45 套
按ESC键可以回到命令行模式。要想在文本中输入字符,必须是在插入模式
36 配
68 》
下。
15 核
p1 内
ho ux
/s lin
• 底行模式(Last line mode):在命令模式下按下“:”就进入底线模式。在底
s:/ 吧
tp 跑
行模式下可以输入单个或者多个字符的命令。比如“:q”退出vim编辑器。
ht 奔
《
《
ht 奔
tp 跑
s:/ 吧
/s lin
ho ux
p1 内
15 核
68 》
36 配
45 套
.ta 视频
ob 节
ao 目
.c 已
om 经
/ 上
vim第一层功力:入门
线
• i → Insert 模式,按 ESC 回到 Normal 模式.
• x → 删当前光标所在的一个字符。
线
/ 上
• :wq → 存盘 + 退出 (:w 存盘, :q 退出)
om 经
.c 已
• dd → 删除当前行,并把删除的行存到剪贴板里
ao 目
ob 节
.ta 视频
• p → 粘贴剪贴板
45 套
• hjkl ->光标键 (←↓↑→) 使用注: j 就像下箭头。
36 配
68 》
• :help <command> → 显示相关命令的帮助。
15 核
p1 内
ho ux
/s lin
s:/ 吧
tp 跑
ht 奔
《
训练使用hjkl键来操作光标
线
/ 上
om 经
.c 已
ao 目
ob 节
技巧:把光标键 映射成Nop
.ta 视频
修改~/.vimrc文件:
45 套
36 配
68 》
15 核
noremap <Up> <Nop>
p1 内
noremap <Down> <Nop>
ho ux
noremap /s lin
<Left> <Nop>
s:/ 吧
tp 跑
线
插入命令
线
/ 上
om 经
.c 已
ao 目
ob 节
插入命令:
.ta 视频
a → 在光标后插入
45 套
36 配
o → 在当前行后插入一个新行
68 》
O → 在当前行前插入一个新行
15 核
p1 内
cw → 替换从光标所在位置后到一个单词结尾的字符
ho ux
/s lin
s:/ 吧
tp 跑
ht 奔
《
简单的光标移动
线
/ 上
om 经
.c 已
0 → 数字零,到行头
ao 目
ob 节
.ta 视频
^ → 到本行第一个不是blank字符的位置(所谓blank字符就是空格,tab,换
45 套
行,回车等)
36 配
68 》
15 核
$ → 到本行行尾
p1 内
ho ux
/s lin
g_ → 到本行最后一个不是blank字符的位置。
s:/ 吧
tp 跑
ht 奔
线
/ 上
om 经
.c 已
ao 目
P → 粘贴(p/P都可以,p是表示在当前位置之后,P表示在当前位置
ob 节
.ta 视频
之前)
45 套
36 配
yy → 拷贝当前行
68 》
15 核
p1 内
u:撤销
ho ux
/s lin
s:/ 吧
tp 跑
<C-r> → redo
ht 奔
《
文件操作
线
:e <path/to/file> → 打开一个文件
/ 上
om 经
.c 已
:w → 存盘
ao 目
ob 节
.ta 视频
:saveas <path/to/file> → 另存为 <path/to/file>
45 套
36 配
68 》
:wq → 保存并退出
15 核
p1 内
ho ux
:q! → 退出不保存 :qa! 强行退出所有的正在编辑的文件,就算别的文件
/s lin
s:/ 吧
有更改。
tp 跑
ht 奔
《
线
《
ht 奔
tp 跑
s:/ 吧
/s lin
ho ux
p1 内
15 核
68 》
36 配
45 套
重 复
.ta 视频
ob 节
ao 目
.c 已
om 经
/ 上
线
. → (小数点) 可以重复上一次的命令
N<command> → 重复某个命令N次
更快的光标移动
线
/ 上
gg → 到第一行。(相当于1G,或 :1)
om 经
G → 到最后一行。
.c 已
ao 目
w → 到下一个单词的开头。
ob 节
e → 到下一个单词的结尾。
.ta 视频
% : 匹配括号移动,包括 (, {, [.
45 套
36 配
#: 匹配光标当前所在的单词,移动光标到下一个(或上一个)匹配单词(*是下一个,#是
68 》
上一个),有点类似 source insigh那个HightLight word
15 核
p1 内
ho ux
/s lin
s:/ 吧
tp 跑
ht 奔
《
命令和光标移动命令的组合
• 很多命令都可以和这些移动光标的命令连动:
线
<start position><command><end position>
/ 上
om 经
.c 已
ao 目
ob 节
例子: 0y$ :
.ta 视频
45 套
36 配
0 → 先到行头
68 》
y → 从这里开始拷贝
15 核
p1 内
$ → 拷贝到本行最后一个字符
ho ux
/s lin
s:/ 吧
tp 跑
ht 奔
《
《
ht 奔
tp 跑
s:/ 吧
/s lin
ho ux
p1 内
15 核
68 》
36 配
45 套
.ta 视频
ob 节
ao 目
.c 已
om 经
/ 上
线
vim第四层功力:超能力
光标移动的高级用法
0 → 到行头
线
^ → 到本行的第一个非blank字符
/ 上
om 经
$ → 到行尾
.c 已
g_ → 到本行最后一个不是blank字符的位置。
ao 目
ob 节
fa → 到下一个为a的字符处,你也可以fs到下一个为s的字符。
.ta 视频
t, → 到逗号前的第一个字符。逗号可以变成其它字符。
45 套
3fa → 在当前行查找第三个出现的a。
36 配
68 》
F 和 T → 和 f 和 t 一样,只不过是相反方向。
15 核
p1 内
ho ux
/s lin
s:/ 吧
tp 跑
ht 奔
《
可视化操作
按v启用可视模式,可以按单个字符选择内容,移动光标可以选择。
线
按V启用可视模式,立刻选中光标所在行,按单行符选择内容,移动光标可以选择。
/ 上
om 经
.c 已
ao 目
按CTRL+V启用可视中的列块模式,可以在列方向上选择单个字符,移动光标可以选择
ob 节
.ta 视频
45 套
CTRL+v,启用块可视模式,可以选中某一个矩形块,对于有规律的表格可以用这个功能。
36 配
68 》
15 核
p1 内
ho ux
/s lin
s:/ 吧
tp 跑
ht 奔
《
分屏管理
线
/ 上
om 经
.c 已
ao 目
ob 节
.ta 视频
:split → 创建分屏 (:vsplit创建垂直分屏)
<C-w><dir> : dir就是方向,可以是 hjkl 或是 ←↓↑→ 中的一个,其用来选择分屏。
45 套
36 配
<C-w>_ (或 <C-w>|) : 最大化尺寸 (<C-w>| 垂直分屏)
68 》
<C-w>+ (或 <C-w>-) : 增加尺寸
15 核
p1 内
ho ux
/s lin
s:/ 吧
tp 跑
ht 奔
《
《
ht 奔
tp 跑
s:/ 吧
/s lin
ho ux
p1 内
15 核
68 》
36 配
45 套
.ta 视频
ob 节
ao 目
.c 已
om 经
/ 上
线
vim第五层功力:打造超级IDE
《
ht 奔
tp 跑
s:/ 吧
/s lin
ho ux
p1 内
15 核
68 》
36 配
45 套
.ta 视频
ob 节
ao 目
.c 已
om 经
/ 上
线
插件一: vundle
• 可以在.vimrc中跟踪和管理插件,自动更新插件等
• 安装:
线
/ 上
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
om 经
.c 已
ao 目
ob 节
• 在vimrc中添加“Plugin xxx”
.ta 视频
45 套
• 运行命令“:PluginInstall”,就会从网络上下载插件并安装。
36 配
68 》
15 核
p1 内
ho ux
/s lin
s:/ 吧
tp 跑
ht 奔
《
插件二: ctags
• ctags工具全称Generate tag files for source code,它扫描指定的源文件,找出
其中包含的语法元素,并把找到的相关内容记录下来,这样在代码浏览和查
线
找的时候就可以利用这些记录来方便实现查找和跳转功能。
/ 上
om 经
• 使用如下命令可安装。
.c 已
ao 目
sudo apt-get install ctags
ob 节
.ta 视频
45 套
36 配
• 生成索引文件:# ctags –R
68 》
15 核
• 常用查找命令:
p1 内
ho ux
Ctrl + ] 跳转到光标处的函数或者变量的定义所在的地方。
/s lin
s:/ 吧
Ctrl + T 返回到跳转之前的地方
tp 跑
ht 奔
《
插件三:cscope
• 安装:sudo apt-get install cscope
• 对源代码生成索引库:cscope –Rbq
线
/ 上
• vim支持8种cscope的查询功能,如下:
om 经
.c 已
s: 查找C语言符号,即查找函数名、宏、枚举值等出现的地方
ao 目
ob 节
g: 查找函数、宏、枚举等定义的位置,类似ctags所提供的功能
.ta 视频
d: 查找本函数调用的函数
45 套
36 配
c: 查找调用本函数的函数
68 》
t: 查找指定的字符串
15 核
p1 内
e: 查找egrep模式,相当于egrep功能,但查找速度快多了
ho ux
f: 查找并打开文件,类似vim的find功能/s lin
s:/ 吧
tp 跑
i: 查找包含本文件的文件
ht 奔
《
插件四:Tagbar
• tagbar插件可以把源代码文件生成一个大纲,包括类、方法、变量以及函数
名等,可以选中快速跳转到目标位置
线
/ 上
• 在.vimrc文件中添加:
om 经
.c 已
Plugin 'majutsushi/tagbar' " Tag bar"
ao 目
ob 节
.ta 视频
• 重启vim,输入然后运行命令“:PluginInstall”完成安装
45 套
36 配
68 》
15 核
p1 内
ho ux
/s lin
s:/ 吧
tp 跑
ht 奔
《
插件⑤:NeredTree
线
• nerdtree插件可以显示树形目录。、
/ 上
om 经
.c 已
ao 目
ob 节
• 安装nerdtree插件,在.vimrc文件中添加:
.ta 视频
Plugin 'scrooloose/nerdtree‘
45 套
36 配
68 》
15 核
p1 内
• 重启vim,输入然后运行命令“:PluginInstall”完成安装。
ho ux
/s lin
s:/ 吧
tp 跑
ht 奔
《
插件6:YouCompleteMe
• 提供代码提示和补全功能
• 安装:必须 vim 7.4.1578,并且支持Python 2或者 Python 3
线
/ 上
• 在.vimrc文件中添加:
om 经
.c 已
Plugin 'Valloric/YouCompleteMe‘
ao 目
• 重启vim,输入然后运行命令“:PluginInstall”完成安装
ob 节
.ta 视频
45 套
• 编译YCM
36 配
68 》
15 核
• 配置YCM
p1 内
ho ux
• 测试YCM
/s lin
s:/ 吧
tp 跑
ht 奔
《
如何使用vim阅读内核代码?
• 在vimrc中配置vim启动的时候自动加载tags和cscope的索引库文件
线
/ 上
• 使用make 命令来生成ctags和cscope,下面以ARM vexpress平台为例:
om 经
.c 已
ao 目
ob 节
.ta 视频
#export ARCH=arm
#export SUBARCH=arm
45 套
36 配
#export CROSS_COMPILE=arm-linux-gnueabi-
68 》
15 核
#make vexpress_defconfig
p1 内
ho ux
#make tags cscope TAGS //生成tags,cscope, TAGS等索引文件
/s lin
s:/ 吧
tp 跑
ht 奔
《
《
ht 奔
tp 跑
s:/ 吧
/s lin
ho ux
p1 内
15 核
68 》
36 配
45 套
.ta 视频
Enjoy VIM!
ob 节
ao 目
.c 已
om 经
/ 上
线
《
ht 奔
tp 跑
s:/ 吧
/s lin
ho ux
p1 内
15 核
68 》
36 配
45 套
.ta 视频
ob 节
ao 目
.c 已
om 经
/ 上
线
《
ht 奔
tp 跑
s:/ 吧
/s lin
ho ux
p1 内
15 核
68 》
36 配
45 套
.ta 视频
ob 节
ao 目
.c 已
om 经
/ 上
线
《
ht 奔
tp 跑
s:/ 吧
/s lin
ho ux
p1 内
15 核
68 》
36 配
45 套
.ta 视频
ob 节
ao 目
.c 已
om 经
/ 上
线
更多高清和精彩节目尽在淘宝:
shop115683645.taobao.com