您的位置:首页 > 其它

VIM常用快捷键

2015-10-12 10:55 239 查看
gD 跳转到局部变量的定义处

% 跳转到相配对的括号

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

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

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

> 增加缩进,"x>"表示增加以下x行的缩进

< 减少缩进,"x<"表示减少以下x行的缩进

{ 跳到上一段的开头

} 跳到下一段的的开头

( 移到这个句子的开头

) 移到下一个句子的开头

[[ 跳转至上一个函数(要求代码块中'{'必须单独占一行)

]] 跳转至下一个函数(要求代码块中'{'必须单独占一行)

C-] 跳转至函数或变量定义处

C-O 返回跳转前位置

C-T 同上

nC-T 返回跳转 n 次

0 数字0,跳转至行首

$ 跳转至行尾

^ 跳转至行第一个非空字符

在查看代码的时 候,如果代码十分冗长,尤其是 c/c++系列的时候,

代码结构比较让人难以理清,主要是各种注释、括号的匹配问题,

虽然可以用%来查看匹配的另外一半符号在哪里,但是 如果这一对符号之间的代码超过了一页,甚至好几页的话,那么也是比较难以理解的。

于是可以使用这个vim所提供的折叠功能来简化这些分析。

我 使用的vim是rh9自带的版本。

折叠的方式:

vim 提供 6中折叠方式

manual 手工定义折叠

indent 更多的缩进表示更高级别的折叠

expr 用表达式来定义折叠

syntax 用语法高亮来定义折叠

diff 对没有更改的文本进行折叠

marker 对文中的标志折叠

可用选项 'foldmethod' 来设定折叠方式:set
fdm=*****。

注意,每一种折叠方式不兼容,即:你不能用expr又用marker方式。

目前我一般使用的都是indent 比较多。

使用时,用:set
fdm=indent 命令来设置成marker折叠方式。

在.vimrc文件中添加设置,可以使得每次打 开vi 都启动折叠方式。如添加:set
fdm=syntax。

2. 折叠打开与折合

选取了折叠方式后,我们就可以对某些代码 实施我们需要的折叠了。

如果使用了indent方式,vim会自动的对大括号的中间部分进行折叠,我们可以直接使用这些现成的折叠成果。

indent 对应的折叠代码有:

zc 折叠

zC 对所在范围内所有嵌套的折叠点进行折叠

zo 展开折叠

zO 对所在范围内所有嵌套的折叠点展开

[z 到当前打开的折叠的开始处。

]z 到当前打开的折叠的末尾处。

zj 向下移动。到达下一个折叠的开始处。关闭的折叠也被计入。

zk 向上移动到前一折叠的结束处。关闭的折叠也被计入。

使 用时在大括号中间输入以上命令。

当使用marker方式时,需要用标计来标识代码的折叠,系统默认是{{{和}}},最好不要改动之:)

可 以使用下面的命令来创建和删除折叠:

zf 创建折叠,比如在marker方式下:

zf56G,创建从当前行起到56行的代码折叠;

10zf或10zf+或zf10↓,创建从当前行起到后10行的代码折叠。

10zf-或zf10↑,创建从当前行起到之前10行的代码折叠。

在括号处zf%,创建从当前行起到对应的匹配的括号上去((),{},[],<>等)。

zd 删除 (delete) 在光标下的折叠。仅当 'foldmethod' 设为 "manual" 或 "marker" 时有效。

zD 循环删除 (Delete) 光标下的折叠,即嵌套删除折叠。

仅当 'foldmethod' 设为 "manual" 或 "marker" 时有效。

zE 除去 (Eliminate) 窗口里“所有”的折叠。

仅当 'foldmethod' 设为 "manual" 或 "marker" 时有效。

主要命令:

zf-创建折叠

zf20G--创建折叠,从当前行折叠到第20行

zfgg--创建折叠,从当前位置折叠到文件头,非常适合编程的时候隐藏文件顶部的头文件包含,源文件注释

写程序时都是以函数为单位,可以很方便的折叠一个函数,而保留函数头部。如下函数,我们将光标停留在{处,输入zf%(%在vim中表示括号匹配,此处指匹配到另一个对应的大括号)

#include <stdio.h>

int main(int argc, char* argv[])

{

return 0;

}

效果就出来了:

#include <stdio.h>

int main(int argc, char* argv[])

+:-- 3行 {-------------------------------------------------}

若要再阅读那些文本,则可以键入以下命令打开该折叠:

zo

你还可以用一下命令再关闭该折叠:

zc

所有的折叠命令都以'z' 开头。展开你的想像力,这个字母看起来就像一张折叠起来的

纸的侧面。而"z" 后面可用的字母,由于采用了帮助记忆方法选择,很容易记得住:

zf
F-old creation (创建折叠)

zo
O-pen a fold (打开折叠)

zc
C-lose a fold (关闭折叠)

一次打开所有折叠:

zr
zR(用于有递归折叠的时候,功能与zr类似)

一次关闭所有折叠:

zm
zM(用于有递归折叠的时候,功能与zm类似)

更常用的命令:

zi (当我们创建了折叠以后,可以使用zi关闭所有折叠,将光标移到想浏览的文本处,再按zi,打开所有折叠)

折叠控制:

有时候,查看或记住一个折叠在哪儿,挺不容易的。更别说用|zo| 命令来打开了。要查

看那些已定义的折叠:

:set foldcolumn=4

这个命令将在窗口左边显示一小栏来标识各个折叠。一个"+" 表示某个关闭的折叠。一

个"-" 表示每个打开的折叠的开头,而"|" 则表示该折叠内其余的行。

取消左边的小栏:

:set foldcolumn&

你可以在折叠栏内用鼠标点击"+",以打开一个折叠。点击"-" ,或在它之下的某个

"|" ,将关闭一个打开的折叠。

存储和恢复一个折叠:

当你关闭一个文件,去做其他事情,或编辑其他文件,回来以后编辑同一个文件,如果折叠是手动方式创建的,则所有的折叠都消失了!为了保存折叠,可以使用:

:mkview

这将存储那些影响文件视图的设定及其他内容。

稍后回到同一个文件时,可以重新载入这个视图:

:loadview

你可以为一个文件储存多至十个视图。例如,把当前设置储存为第三个视图,并载入第

二个视图:

:mkview 3

:loadview 2

依赖缩进折叠:

如果希望依赖缩进折叠,则首先需要设置

:set foldmethod=indent

如果你写的代码比较规范,不规范也没事,先全部选中,然后按“=”,代码就规范一些了。完整的命令是ggvG=

然后试试zm,zr有什么效果,这个功能对于程序员还是挺有用的。当我们设置了foldmethod后就不能再手动创建折叠了,对于我这样喜欢不喜欢被约束的这个功能其实很不咋滴。

我们只需要重新设置foldmethod就可以了。

:set foldmethod& (后面加个&就是恢复默认设置,反正我是这么理解的)

其他折叠方式:

依赖标识折叠

依赖语法折叠

依赖表达式折叠

vim折叠设置(转载)

set foldmethod=indent "set default foldmethod

"zi 打开关闭折叠

"zv 查看此行

zm 关闭折叠

zM 关闭所有

zr 打开

zR 打开所有

zc 折叠当前行

zo 打开当前折叠

zd 删除折叠

zD 删除所有折叠

1. 折叠方式

可用选项 'foldmethod' 来设定折叠方式:set fdm=*****。

有 6 种方法来选定折叠:

manual 手工定义折叠

indent 更多的缩进表示更高级别的折叠

expr 用表达式来定义折叠

syntax 用语法高亮来定义折叠

diff 对没有更改的文本进行折叠

marker 对文中的标志折叠

注意,每一种折叠方式不兼容,如不能即用expr又用marker方式,我主要轮流使用indent和marker方式进行折叠。

使用时,用:set fdm=marker 命令来设置成marker折叠方式(fdm是foldmethod的缩写)。

要使每次打开vim时折叠都生效,则在.vimrc文件中添加设置,如添加:set fdm=syntax,就像添加其它的初始化设置一样。

2. 折叠命令

选取了折叠方式后,我们就可以对某些代码实施我们需要的折叠了,由于我使用indent和marker稍微多一些,故以它们的使用为例:

如果使用了indent方式,vim会自动的对大括号的中间部分进行折叠,我们可以直接使用这些现成的折叠成果。

在可折叠处(大括号中间):

zc 折叠

zC 对所在范围内所有嵌套的折叠点进行折叠

zo 展开折叠

zO 对所在范围内所有嵌套的折叠点展开

[z 到当前打开的折叠的开始处。

]z 到当前打开的折叠的末尾处。

zj 向下移动。到达下一个折叠的开始处。关闭的折叠也被计入。

zk 向上移动到前一折叠的结束处。关闭的折叠也被计入。

当使用marker方式时,需要用标计来标识代码的折叠,系统默认是{{{和}}},最好不要改动之:)

我们可以使用下面的命令来创建和删除折叠:

zf 创建折叠,比如在marker方式下:

zf56G,创建从当前行起到56行的代码折叠;

10zf或10zf+或zf10↓,创建从当前行起到后10行的代码折叠。

10zf-或zf10↑,创建从当前行起到之前10行的代码折叠。

在括号处zf%,创建从当前行起到对应的匹配的括号上去((),{},[],<>等)。

zd 删除 (delete) 在光标下的折叠。仅当 'foldmethod' 设为 "manual" 或 "marker" 时有效。

zD 循环删除 (Delete) 光标下的折叠,即嵌套删除折叠。

仅当 'foldmethod' 设为 "manual" 或 "marker" 时有效。

zE 除去 (Eliminate) 窗口里“所有”的折叠。

仅当 'foldmethod' 设为 "manual" 或 "marker" 时有效。

关于vim的代码折叠,小弟也是初学,仅做参考。

使用Vim的折叠功能书写程序代码

折行的用处:

2 创建折行进行大纲预览

2 移动到某处进行编辑

2 使用jzij打开文本进行编辑

2 编辑完毕后再用jzij打开折行进行移动

打开vim的折叠功能,请在~/.vimrc 中加入:set foldmethod=marker ,使用vim默认的折叠标签进行处理。使用方法如下:

1、加折叠标签

在normal模式下,从键盘输入zf并回车,您就会看到折叠在一起的两行标签如下:

/*{{{*/

.....这里输入您 的程序代码

/*}}}*/

2、输入程序代码后,将代码折叠起来使用如下命令(normal模式):

zc 回车

3、打开折叠的程序有以下几种方法

a、在折叠的行上移动光标

b、在normal模式下输入zo并回车

4、给一段文字加折行(normal 模式)

zfap

5、zr命令可以打开折叠几层的内容 zm使用内容折叠的更多一些(多层折叠操作时可反复使用)。

6、嵌套了多层的折行, 也可以用zR命令一次打开所有折行

7、关闭所有的嵌套折行使用zM

8、可以用jznj命令来禁用一个折行. 然后用jzNj还可以恢复它. jzij命令则可以在两者之间切换.

其它的,请参考vim的使用手册。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: