代码跳转
(1)gd 跳至当前光标所在的变量的声明处
(2) % 可以从开始括号跳到对应的关闭括号,或者从 ``#if'' 跳到对应的 ``#endif''。
事实上, % 可以完成许多对应项之间的跳转,可以用来检查if()和{}结构是否平衡。
自动补全
{Ctrl-n} 或者 {Ctrl-p} 普通关键字补全
{Ctrl-x}{Ctrl-n} 当前缓冲区关键字
{Ctrl-x}{Ctrl-i} 包含文件关键字
{Ctrl-x}{Ctrl-]} 标签文件关键字,可以使用ctags生成的标签文件tags,好处是可以过滤非语言因素。
{Ctrl-x}{Ctrl-k} 字典查找,可以通过 :set spell 打开拼写检查功能,为字典查找设置单词列表。
{Ctrl-x}{Ctrl-l} 整行补全,当你需要复制一行时,只需要输入行首,再利用整行补全即可,好处是不用跳转。
{Ctrl-x}{Ctrl-f} 文件名补全,相对于工作目录的路径进行扩展。
{Ctrl-x}{Ctrl-o} 全能(Omni)补全,该功能是由专用的文件类型插件实现的。
补全下拉选择列表操作:
{Ctrl-n} 下一个匹配 {Ctrl-p} 上一个匹配
{Ctrl-y} 选中
{Ctrl-e} 退出
{Ctrl-h} 当前匹配删除一个字符
技巧:
按下{Ctrl-x}{Ctrl-p} ,打开下拉列表,并回到编辑位置,可以继续书写以过滤列表。
include 命令:
默认值,include=\(require\|include\)\(_once\)\?,可以设置包含的代码库文件,补全时可以将这些代码中的内容都加入单词表中。
complete 命令:
定制普通关键字不全是所扫描的位置。默认值,complete=.,w,b,u,t,i
折叠和展开
模式:
manual 手工折叠
indent 缩进折叠
syntax 语法折叠
maker 标记折叠
创建折叠:
zf F-old creation (创建折叠)
zf20G 从当前行折叠到第20行,
zfgg 常用语折叠代码文件开头的注释部分
zf% 将光标定位于“{”,“(”等,用于折叠到“}”,“(”的匹配,折叠函数方便快捷
:5,10fo 折叠5到10行
删除折叠:
zd 删除单个当前折叠,zD 同时删除嵌套的折叠
zE 删除所有的折叠标签,manual 和 marker 折叠模式下有效
展开折叠:
zo O-pen a fold (打开折叠)
zO 递归展开折叠
zr,zR 按序打开折叠,每次打开一个,大写R递归打开
zv 打开光标所在的折叠,并不全部展开
关闭折叠:
zc C-lose a fold (关闭折叠),恢复折叠的状态
zm,zM 按序关闭折叠,大写M递归关闭
切换状态:
za 切换打个折叠状态
zi 切换所有折叠状态
折叠移动:
]z,[z 跳转折叠开始处和结束处
zj 跳转下一个折叠的开始处
zk 跳转上一个折叠的结束处
操作折叠:
:set foldenable? 查看折叠是否开启
:set foldcolumn=4 打开折叠侧边栏,设置为4个字符宽度,取消 :set foldcolumn&
侧边栏中"+",以打开一个折叠,点击"-" 或"|" ,将关闭一个折叠。
保存折叠:
:mkview 保存当前折叠视图
:loadview 打开文件后重新加载折叠视图
可以保存多个折叠视图,如 :mkview 3,:loadview 3
代码缩进
(1) ]p 有缩进的粘贴,Vim会自动调节代码的缩进。
(2) == 自动缩进当前行
(3)缩进多行或文本块,可以使用文本结构结合<和>实现,或者结合可视化模式来选中。
阅读(1966) | 评论(0) | 转发(0) |