• Vim


    基本配置

    不用任何插件的情况下,先按如下配置:

    set nu
    syntax on
    set hlsearch
    
    set tabstop=4
    set shiftwidth=4
    set expandtab
    set smartcase
    set ic
    
    colorscheme srcery-drk

    Vundle

    Vundle是Vim的插件管理器,像NeoBundle也是基于Vundle实现。
    虽然Vim插件可以独立安装,但如果换了台机器,使用Vundle只需要copy一份.vimrc即可。

    安装方法并不复杂,先clone到~/.vim目录下:

    $ git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

    在~/.vimrc头部加上以下内容:

    set nocompatible
    filetype off
    
    set rtp+=~/.vim/bundle/Vundle.vim
    call vundle#begin()
    
    Plugin 'VundleVim/Vundle.vim'
    Plugin 'tpope/vim-fugitive'
    Plugin 'git://git.wincent.com/command-t.git'
    Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
    
    call vundle#end()            " required
    filetype plugin indent on    " required

    保存,在vim里执行PluginInstall,等过程执行结束即可。

    或者在命令行执行以下命令也是相同的效果:

    vim +PluginInstall +qall

    查看帮助:

    :h vundle

    在~/.vimrc声明插件,例如:

    Plugin 'scrooloose/nerdtree'
    Plugin 'shougo/vimshell.vim'

    基本命令:

    " :PluginList       - 列出所有插件
    " :PluginInstall    - 安装插件
    " :PluginInstall!    - 更新插件
    " :PluginSearch foo - 搜索foo插件
    " :PluginClean      - 移除未使用插件

    NerdTree

    目录树插件,前提安装了Vundle,在~/.vimrc声明了NerdTree:

    Plugin 'scrooloose/nerdtree'

    在vim中执行以下命令即可完成安装:

    :source %
    :PluginInstall

    我的NerdTree配置如下:

    " ============ NERDTree ============
    " open NERDTree by default
    autocmd vimenter * NERDTree
    
    " synchronize NERDTree with current opened file
    autocmd BufEnter * lcd %:p:h
    
    " open NERDTree automatically when vim starts up if no files were specified
    autocmd StdinReadPre * let s:std_in=1
    autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif
    
    " open NERDTree automatically when vim starts up on opening a directory
    autocmd StdinReadPre * let s:std_in=1
    autocmd VimEnter * if argc() == 1 && isdirectory(argv()[0]) && !exists("s:std_in") | exe 'NERDTree' argv()[0] | wincmd p | ene | endif
    
    " open NERDTree with Ctrl+n
    map <C-n> :NERDTreeToggle<CR>
    
    " view the current buffer in NERDTree
    map <leader>r :NERDTreeFind<cr>
    " close vim if the only window left open is a NERDTree
    autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
    
    " change arrows
    let g:NERDTreeDirArrowExpandable = '▸'
    let g:NERDTreeDirArrowCollapsible = '▾'
    
    " show hidden files by default
    let NERDTreeShowHidden=1

    NerdTree的常用快捷键:

    快捷键说明
    ? 查看帮助
    m 呼出菜单,对当前目录进行操作
    r 刷新目录
    F 显示、隐藏隐藏文件
    A 目录树切全屏
    go 打开文件,光标停留在目录树上
    i|gi 水平打开窗口
    s|gs 垂直打开窗口
    ctrl+w+h|j|k|l 方向键选择窗口
    ctrl+w+w 切窗口
    t|T 在tab打开窗口
    gt|gT 切tab


    如果用git,有个NerdTree的扩展插件,可以在目录树中显示文件的git status。
    安装仍然是通过Vundle,插件声明如下:

    Plugin 'Xuyuanp/nerdtree-git-plugin'

    TagBar

    个人阅读代码时,如果IDE打开的是另一个工程,一般不会将工程导入IDE再读,而是用Vim读代码。
    只是跳转到变量或者函数的功能只是通过gD的话,跳转的位置并不是很准确。

    TagBar可以生成文件中的变量、函数列表。

    用Vundle安装,在~/.vimrc加上以下声明:

    Plugin 'majutsushi/tagbar'

    保存,执行:PluginsInstall,等待过程结束。

    个人使用的配置如下:

    let g:tagbar_width = 30
    nmap <F10> :TagbarToggle<CR>
    let g:tagbar_autopreview = 1
    let g:tagbar_sort = 0

    source配置文件后,重新进入vim,按下F10呼出TagBar。

    macOS可能出现以下提示:

    Tagbar: Ctags doesn't seem to be Exuberant Ctags!

    TagBar依赖Exuberant Ctags 5.5,这种情况brew install ctags后重新进入vim即可。

  • 相关阅读:
    plsql调试存储过程卡住的原因以及处理
    JavaWeb三大组件(Servlet、Filter、Listener)的区别
    单点登录原理
    Oracle 导表异常处理方案 (解决空表导出出错问题)
    在Oracle中删除用户时提示:ORACLE无法删除当前连接用户
    VisualSvn的权限管理
    MySql常用命令总结
    Oracle 常用SQL
    参数
    java
  • 原文地址:https://www.cnblogs.com/kavlez/p/vimrc-tips.html
Copyright © 2020-2023  润新知