非JAVA开发者 - JAVA

1. 配置 - vim

2018-06-23  本文已影响5人  风云雄霸天下123456

参考:

  1. 自己的vim配置

说明:


安装:


配置

let mapleader=","   " 设置<leader>键


" Vundle Section Start
set nocompatible              " be iMproved, required
filetype off                  " required
set rtp+=~/.vim/bundle/Vundle.vim
set rtp+=~/.fzf
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'

" theme
Plugin 'dracula/vim'
" icon
Plugin 'ryanoasis/vim-devicons'
" minimap
Plugin 'severin-lemaignan/vim-minimap'
" 树形文本插件
Plugin 'scrooloose/nerdtree'
Plugin 'tiagofumo/vim-nerdtree-syntax-highlight'
" Tagbar
Plugin 'vim-scripts/Tagbar'
" fzf
Plugin 'junegunn/fzf.vim'
" ag
Plugin 'mileszs/ack.vim'
" airline 状态条加强
Plugin 'bling/vim-airline'

call vundle#end()            " required
filetype plugin indent on    " required
" Vundle Section End


" 插件配置
" Dracula Theme
if !has('gui_running')
    set t_Co=256
    let g:dracula_italic=0
    let g:dracula_colorterm=0
    colorscheme dracula
    let lightlineColor = 'dracula'
endif

" minimap
let g:minimap_toggle='<leader>mg'

" NERD tree
let NERDChristmasTree=0
let NERDTreeWinSize=20
let NERDTreeChDirMode=2
let NERDTreeIgnore=['\~$', '\.pyc$', '\.swp$']
let NERDTreeShowHidden=1
let NERDTreeShowBookmarks=1
let NERDTreeWinPos="left"
" Close vim if the only window left open is a NERDTree
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTreeType") && b:NERDTreeType == "primary") | q | endif
" Open a NERDTree
nmap <F4> :NERDTreeToggle<CR>
nmap <F5> :NERDTreeFind<CR>
let g:NERDTreeHighlightCursorline = 0

" Tagbar
set tags=./.tags;,.tags
let g:gutentags_project_root = ['.root', '.svn', '.git', '.hg', '.project']
let g:gutentags_ctags_tagfile = '.tags'
let s:vim_tags = expand('~/.cache/tags')
let g:gutentags_cache_dir = s:vim_tags
let g:gutentags_ctags_extra_args = ['--fields=+niazS', '--extra=+q']
let g:gutentags_ctags_extra_args += ['--c++-kinds=+px']
let g:gutentags_ctags_extra_args += ['--c-kinds=+px']
if !isdirectory(s:vim_tags)
    silent! call mkdir(s:vim_tags, 'p')
endif

let g:tagbar_width=20
let g:tagbar_autofocus=1
let g:tagbar_right = 1
nmap <F6> :TagbarToggle<CR>
let g:tagbar_type_typescript = {
  \ 'ctagsbin' : 'tstags',
  \ 'ctagsargs' : '-f-',
  \ 'kinds': [
    \ 'e:enums:0:1',
    \ 'f:function:0:1',
    \ 't:typealias:0:1',
    \ 'M:Module:0:1',
    \ 'I:import:0:1',
    \ 'i:interface:0:1',
    \ 'C:class:0:1',
    \ 'm:method:0:1',
    \ 'p:property:0:1',
    \ 'v:variable:0:1',
    \ 'c:const:0:1',
  \ ],
  \ 'sort' : 0
\ }

" fzf
nnoremap <Leader>p :Files<CR>

" ag
let g:ackprg = 'ag --nogroup --nocolor --column'
map <c-u> :Ack<space>
map <leader>u :Ack<space>

" airline
let g:airline_powerline_fonts = 1



" 快捷键
nnoremap <Leader>cd :pwd<CR>
nnoremap <Leader>w :w<CR>


" 其他配置
set encoding=UTF-8
set mouse=a             " 支持鼠标
set nu                                  " 显示行号
set autoindent                          " 自动缩进
set confirm                             " 在处理未保存或只读文件的时候,弹出确认
set tabstop=4                           " Tab键的宽度
" set noexpandtab                         " 不要用空格代替制表符
set expandtab                           " 设置用空格替换tab(支持python这种层级的语法)
set ignorecase                          " 搜索忽略大小写
set ws                                  " 在搜索时如达到文件尾则绕回文件头继续搜索
set showmatch                           " 显示括号配对
set ruler                               " 打开状态栏标尺
syntax on                               " 自动语法高亮
set showcmd                             " 在状态栏显示目前所执行的指令,未完成的指令片段亦会显示出来
set pastetoggle=<F3>                    " 修改粘贴快捷键,拷贝代码格式不错乱
" 缩进
set softtabstop=4                       " 统一缩进为4
set shiftwidth=4
" 临时文件
set nobackup                            " 禁止生成临时文件
set noswapfile
" other
set nocompatible                        " 去掉有关Vi的一致性模式,避免之前版本的Bug
set backspace=indent,eol,start          " 设置backspace的工作方式
set nolist                              " 不显示特殊符号(换行符、结束符等   语法:set [ list | nolist | list! ])

快捷键


其他知识

  1. 基本通式

    • Vim在Normal模式下的操作有个基本通式:

      最终操作=重复次数∗操作

    • 其中操作又有两个公式:

      操作=普通操作符+操作范围
      操作=立即执行操作符

  2. 操作符

    • 普通操作符
      c 修改
      d 剪切
      y 复制
      g~ 大小写反转
      gu 转换为小写
      gU 转换为大写
      > 增加缩进 (>>当前行)
      < 减小缩进
      = 自动缩进
      说明:有趣的是,当普通操作符被连续输入两次时,它会作用于当前行,例如dd会剪切当前行的内容。
    • 立即执行操作符(只举几个例子):
      x 删除当前字符
  3. 可视模式
    分以下三种:

    • 常规可视模式
      v 进入常规可视模式,通过“移动”部分的内容可以选择选定的内容。
    • 行可视模式
      V 进入行可视模式,此时只能以行为单位来进行选择。
    • 列可视模式
      <C-v 进入列可视模式,此时可以进行列移动。
上一篇 下一篇

猜你喜欢

热点阅读