vim带你装逼带你飞(二)

上篇我贴上了我使用的vim配置及插件配置,有这些东西只能是一个脚本堆积,无从谈高效的代码阅读开发。

下面我们就来写经常使用的命令,就从配置F系列快捷键开始吧。

F+ n 快捷键配置

 F1基本上时帮助,这个貌似不能被 Terminal帮助使用了,

 F2显示或者不显示行号,默认情况是显示的,在需要copy的一些操作时候这个是很有用的

 F3换行显示或者不换行显示,在有些如Makefile命令较长的情况可以用它来快速修改其中的东西,默认情况是不换行

 F4呼出文件的函数列表(TagbarToggle)

F5粘贴模式paste_mode开关,用于有格式的代码粘贴,因为我们的vim配置的智能缩进,这个开关能然你在网页上复制的有格式东西不被vim缩进哦

 F6关闭语法可以加快大文件的展示

 F9这个定义了一个函数用gtags解析工程目录,这个跟ctags解析差不多,据说可以制动更新,不过我使用比较少

 F12这个就是集成了ctags, cscope两项功能的函数,只要到你想要生成工程的根目录按F12等待一会后你就能用cscope命令了(这个比较强大)

上述快捷键可以在我上篇中的.vimrc 脚本中更改按照你的习惯F12按键我配置的解析比较全,如果你不需要很全的解析请修改 .vimrc 中的Do_CsTag()配置

不知道如何配置请google, bing, baidu。

在执行F9或者F12后你就可以使用cscope命令来阅读代码了(执行F9的话需要关闭一下在打开就OK了因为我执行F9完成后的自加载有问题)

如果你有能自动加载的配置请留言给我谢谢

操作快捷键配置

1. cscope 命令是如何执行

请在浏览模式下输入shift+: 然后输入 cs f s 跟上你要查找的字符串这个就是在你的解析工程目录下查找你输入的字符串所以文件位置

当然这种方式输入还是有点麻烦我们配置了快捷键:

在代码中光标的移到该串上后

  1. 先按 ctrl+/ 然后
  2. c: 查找该函数被调用的位置
  3. d: 查找该函数调用了哪些函数
  4. e: 查找指定的正规表达式
  5. f: 查找指定的文件
  6. g: 查找指定标识符的定义位置
  7. i: 查找该文件在哪些地方被包含
  8. s: 查找指定标识符的使用位置
  9. t: 查找指定的文本字符串

2. 多窗口及切换

先按ctrl + w 然后

w: 变上下两个窗口

v:变左右两个窗户

o :恢复回一个窗口

多窗口间切换用ctrl +

h:移到左边

l:移到右边

j:移到下边

k:移到上边

3. 打开过文件间的切换

在浏览模式下输入shift + : 输入 b 5 就会跳到Android.mk这个文件,也可以直接使用Tab按键切换(这个窗口在打开多个文件后出现)

4. 代码行快速移动

浏览模式下 j(下移一行)k(上移一行)h (左移一列)l (右移一列)

shift + h (移到行首) shift + l (移到行尾) gg (移动到文件开始) shift+g (移动到文件最后) shift + f (下翻一屏) shift + b (上翻一屏)

先输入数字 然后 shift + g(直接跳转到该行) w (后移一个字符串) b (前移一个字符串)

5. 拷贝删除

shift + v (选择行) ctrl + v (选择列) 然后输入y(拷贝) d (删除) yy (行拷贝) dd (行删除) 数字 + yy (多行拷贝) 数字 + dd (多行删除)

6. 查找替换

shift + * 当前字符 串(字符串高亮) n (下一个出现位置 ) shift + n (上一个出现位置)

%s/string1/string2/g 命令模式下将该文中的所有string1 替换问string2

基本上常用功能都列出了下面我们讲讲YouCompleteMe代码自动补全,用它你可以快速的补全字串类函数等。

原文发布于微信公众号 - 程序员互动联盟(coder_online)

原文发表时间:2015-03-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏深度学习之tensorflow实战篇

Python3 pandas read_csv 读取txt文件报错:IOError: Initializing from file failed

错误代码: data=pd.read_csv(‘C:\Users\lenovo\Desktop\停用词文件\后缀词处理260\handle_data_01....

3966
来自专栏linux驱动个人学习

如何增加内核模块

Kconfig 1.先了解一下Kconfig的语法:  一个典型的内核配置菜单如下: menu "Network device support"  config...

2915
来自专栏编程

Vue-cli解析

前言 这段时间,算是空出手来写几篇文章了。由于很久都没有时间整理现在所用的东西了,所以,接下来会慢慢整理出一些文档来记录前段时间的工作和生活。 正文 首先,我们...

2466
来自专栏技术之路

翻译qmake文档(四) Building Common Project Types

本章原英文文档:http://qt-project.org/doc/qt-5/qmake-common-projects.html 构建常见的项目类型     ...

18010
来自专栏彭湖湾的编程世界

【webpack】流行的前端模块化工具webpack初探

有一天我突然意识到一个问题,在使用react框架搭建应用时,我使用到了sass/less,JSX模版以及ES6的语法在编辑器下进行开发,使用这些写法是可以提高开...

874
来自专栏wblearn

程序员的你是否熟练掌握Chrome开发者工具?

回归正题,本文主要是介绍一下Chrome developer tool(开发者工具)的使用,以方便我们的日常开发与调试。其实在没用Chrome开发之前就时不时的...

944
来自专栏Java后端技术

Linux的Bash Shell详解

  1.什么是bash           bash是Bourne Again Shell的简称,是从unix系统中的sh发展而来的,是用户和Linux内核交互...

574
来自专栏云计算教程系列

使用命令行在Linux中归档、压缩和提取文件

tar和gzip提供一个标准界面,用于在Linux上创建存档和压缩文件。这些实用程序占用大量文件,将它们一起保存在存档中,并压缩存档可以节省空间。tar不会自己...

492
来自专栏ytkah

用laravel dingo/api创建产品api

  沿着上一篇来讲,我们来创建一个简单的item产品api,也是用到laravel dingo/api来实现,对dingo/api不熟的朋友可以翻看前面的文章。...

683
来自专栏偏前端工程师的驿站

bash魔法堂:History用法详解

Brief                                 又要敲那条长到没朋友的命令了,真心不再爱了。。。   有了history这条命令我想...

1696

扫描关注云+社区