zoukankan      html  css  js  c++  java
  • Vim轻量级查看Java代码

    平时开发 Java 都是使用 Intellij IDEA,毫无疑问它是现在最好用的 Java 开发平台,无论是代码补全、智能提示、代码重构各个方面都是顶尖的存在。但是在平时一直都有这样的情况存在,我平时有时候并不会一直打开 IDEA,可有时却需要简单的查看一下公司项目的代码,这个时候要是打开 IDEA 去查看难免有点杀鸡焉用牛刀的感觉,所以一直想寻找一个平时简单查看代码的方式。我现阶段使用的是 vim 来查看代码,当然纯 vim 是不适合查看 java 代码的,至少缺少目录结构、方法结构以及方法跳转,于是我借助 3 个 vim 插件来解决这个问题,一个是 tagbar 一个是 nerdtree 还有一个是 ctags

    插件安装就是使用 Bundle 这里就不赘述了

    Bundle `majutsushi/tagbar`
    Bundle `scrooloose/nerdtree`
    

    ctags 在 mac 安装

    brew install ctags-exuberant
    

    安装后 .vimrc 配置:

    let g:tagbar_ctags_bin='/usr/local/bin/ctags'
    

    我这里 Java 代码的跳转是使用 ctags 来实现的,tagbar 也是依赖于 ctags,所以需要先安装它,并配置 tagbar_ctags_bin 指向 ctags 可执行文件。

    我们可以使用 ctags --list-kinds=java 命令查看 ctags 都支持哪些 java 的跳转:

    $ ctags --list-kinds=java
    c  classes
    e  enum constants
    f  fields
    g  enum types
    i  interfaces
    l  local variables [off]
    m  methods
    p  packages
    

    安装好后我们需要在代码的根目录使用 ctags -R . 命令来生成 ctags 需要的缓存文件 tags,然后再在 .vimrc 文件中配置 set tags=tags;/ 表示当前目录找不到tags文件时请到上层目录查找,这样就不用在 tags 所在目录中才可以使用 ctags 了。如果不配置就只能在 tags 同级目录上使用代码跳转功能,配置后可以在任意子目录中使用。

    ctags --extra=+q --exclude=android-dto --languages=java -R . 表示索引添加类名,排除 android-dto 文件夹,语言是 java 类型

    <Ctrl> + ] 跳转到代码的定义

    <Ctrl> + o 返回

    nerdtree 配置

    " 使用 F2 开关 nerdtree
    map <F2> :NERDTreeToggle<CR>
    
    " 每次打开 vim 自动打开 NERDTree
    autocmd VimEnter * NERDTree
    
    "  + r 定位当前文件所在目录
    map <leader>r :NERDTreeFind<cr> <C-w><C-w>
    
    " 每次进入、退出方法的时候切换目录
    map <C-]> <C-]> :NERDTreeFind<cr> <C-w><C-w>
    map <C-o> <C-o> :NERDTreeFind<cr> <C-w><C-w>
    

    tagbar 配置

    nmap <F8> :TagbarToggle<CR>
    
    " 打开文件自动 打开tagbar
    autocmd FileType java nested :TagbarOpen
    let g:tagbar_ctags_bin='/usr/local/bin/ctags'
    

    更多配置请查看 tagbar wiki

    效果图

    vim look java

  • 相关阅读:
    std::erase总结
    C++控制台应用程序运行控制台闪退
    判断当前进程是否已经打开C++
    获取当前系统语言C++
    VS中设置Qt多语言界面
    QString的功能
    安装mysql5.6
    centos6.9 PHP的编译安装并连接nginx
    centos6删除nginx
    centos6删除mysql安装
  • 原文地址:https://www.cnblogs.com/manastudent/p/13205435.html
Copyright © 2011-2022 走看看