2020-02-21

Vim使用随笔

一、ctags使用

1.ctags简介:

ctags(generate tag files for source code)是vim下方便代码阅读的工具,ctags可以建立源码树的标签索引(标签就是一个标识符被定义的地方,如变量,函数等),使程序员在编程时能迅速定位函数、变量、宏定义等。

2.ctags安装:

ubuntu下在终端中输入:sudo apt-get install ctags,即可安装。

3.如何使用:

(1)生成tags文件:

ctags –R *

递归地为当前目录及其子目录下的所有代码文件生成tags文件

(2)指定tags文件:

set tags=./tags

指定tags文件为当前路径下的tags文件(在vim中打开源码时,必须先指定tags文件,然后才可以正常使用)

set autochdir

自动切换当前目录为当前文件所在目录

(3)如何跳转:

Ctrl+]

使光标跳转到函数、变量等被定义的地方

Ctrl+T

使光标跳转到函数、变量等被调用的地方

实现vim对tags的自动递归查找其实很简单, 因为vim已经实现了这个功能, 只是默认没有开启. 在vimrc添加下面两行配置, 就会是见证奇迹的时刻:

  set autochdir

  set tags=tags;

  set autochdir表示自动切换目录的意思, “set tags=tags;”表示自动查找,这两句同时设置vim即可实现递归的tags查找, 注意: “set tags=tags;” 这一句的最后有一个分号, 这个分号是不能省略的. vim的配置文件使用的是vim自己的脚步语言. 这里是少数几个在行尾需要使用分号的地方之一.

二、cscope使用

  1. 建立cscope使用的索引文件

      (1) 在你需要浏览源码的根目录下(如你想用cscope看linux源码)使用下面命令:

                * #: cscope -Rbkq<回车>

      (2) R 表示把所有子目录里的文件也建立索引

      (3) b 表示cscope不启动自带的用户界面,而仅仅建立符号数据库

      (4) q生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度

      (5) k在生成索引文件时,不搜索/usr/include目录

  2. 在源码根目录下打开任意.c文件,使用如下命令:

      (1) Ctrl+]将跳到光标所在变量或函数的定义处 Ctrl+T返回

      (2) :cs find s ---- 查找C语言符号,即查找函数名、宏、枚举值等出现的地方

                :cs find g ---- 查找函数、宏、枚举等定义的位置,类似ctags所提供的功能

                :cs find d ---- 查找本函数调用的函数

                :cs find c ---- 查找调用本函数的函数

                :cs find t: ---- 查找指定的字符串

                :cs find e ---- 查找egrep模式,相当于egrep功能,但查找速度快多了

                :cs find f ---- 查找并打开文件,类似vim的find功能

                :cs find i ---- 查找包含本文件的文

PS:<1>用 vim + cscope_maps.vim,如果遇到duplicate database,信息如下

“line  77:

E568: duplicate cscope database not added

Press ENTER or type command to continue”

主要问题是vim的全局配置中cscope add cscope.out冲突了,因为 cscope_maps.vim 只适合 vim 5/6,而 vim 7 中自带了 cscope 的功能,如果再加载 cscope_maps.vim 就有问题了。解决办法是:在.vimrc和cscope_maps.vim中,如有,请注释"cscope add cscope.out即可。

<2> 附ctags和cacope生成tags的脚本

```

#!/bin/bash

currentPath=$(pwd | sed 's$\/$\\\/$g')

echo $currentPath

find ./ -name "*.inc" -o -name "*.f" -o -name "*.F" -o -name ".f90" -o -name "*.F90" -o -name "*.h" -o -name "*.c" -o -name "*.cc" -o -name "*.cpp" | sed "s/^\./$currentPath/"> cscope.files

cscope -bkq -i cscope.files

ctags -R

```

参考:http://www.yolinux.com/TUTORIALS/LinuxTutorialAdvanced_vi.html

           https://my.oschina.net/Julian1988/blog/140784?p={{currentPage-1}}


三、Vim设置颜色主题

查看Vim实例中当前的颜色主题

打开一个Vim窗口,输入命令:color或:colorscheme后回车查看当前的颜色主题。

得到Vim示例当前的颜色主题

可以看到当前的颜色主题为default。

Vim实例中设置颜色主题

输入命令"colorscheme 主题名字",即可设置当前vim实例的颜色主题。

查看Vim的运行目录

vim的颜色主题文件放在Vim运行目录下的color目录下,所以我们首先需要知道vim的运行目录。

在vim中输入命令:echo $VIMRUNTIME 来查看Vim的运行目录。

得到vim的运行目录

从图中可以看到,vim的运行路径为/usr/share/vim/vim73/4

进入vim的运行目录,查看color目录下以“.vim”为结尾的文件

这些文件即是颜色主题文件,文件名就是主题名字。

修改vim配置文件,更改默认颜色主题

打开vim配置文件,在其中加入一行"colorscheme 颜色主题名字",之后保存更改即可。

最后,将上面设置的主题颜色的文件放到~/.vim/colors文件夹里面

PS:对neovim,“*.vim”配置文件在~/.config/nvim/colors;默认配置文件为:~/.config/init.vim

参考:http://fcode.cn/codetools-135-1.html

           https://www.cnblogs.com/pangchol/p/3455662.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,530评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,403评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,120评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,770评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,758评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,649评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,021评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,675评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,931评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,751评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,410评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,004评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,969评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,042评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,493评论 2 343

推荐阅读更多精彩内容

  • 曾经使用了几年多的Vim,手册也翻过一遍。虽然现在不怎么用vim了,曾经的笔记还是贴出来,与喜欢vim的朋友分享。...
    Sylar丶阅读 876评论 0 0
  • 1. 关于Vim vim是我最喜欢的编辑器,也是linux下第二强大的编辑器。 虽然emacs是公认的世界第一,我...
    Dyworldhua阅读 1,357评论 0 2
  • 这里的内容是针对编程序或者阅读源代码时候使用的,本来它的有些内容可以属于其它类的,但是这里单独用"编程相关"将这类...
    QuietHeart阅读 560评论 0 2
  • macvim配置 最终效果如下: 系统环境 macos10.12.4 homebrew1.2.1 python3....
    Like_eb56阅读 69,247评论 5 65
  • 许久不生病,一病就好几天。从上周日下午开始的闹肚子,持续到今天,还将好未好的。一直觉着自己身子骨硬,一年到头都不带...
    暖姜阅读 89评论 0 0