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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

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