" 显示当前模式
set showmode
" 打开行号
set number
" 设置命令历史记录条数
set history=2000
" 关闭兼容vi
set nocompatible
" 开启语法高亮功能
syntax enable
" 允许用指定语法高亮配色方案替换默认方案
syntax on
" 模式搜索实时预览,增量搜索
set incsearch
" 设置搜索高亮
set hlsearch
" 忽略大小写 (该命令配合smartcase使用较好,否则不要开启)
set ignorecase
" 模式查找时智能忽略大小写
set smartcase
" vim自身命令行模式智能补全
set wildmenu
" 总是显示状态栏
set laststatus=2
" 显示光标当前位置
set ruler
" 高亮显示当前行/列
set cursorline
"set cursorcolumn
" 禁止折行
set nowrap
" 将制表符扩展为空格
set expandtab
" 设置编辑时制表符占用空格数
set tabstop=8
" 设置格式化时制表符占用空格数
set shiftwidth=4
" 让 vim 把连续数量的空格视为一个制表符
set softtabstop=4
" 基于缩进或语法进行代码折叠
set foldmethod=syntax
" 启动 vim 时关闭折叠代码
set nofoldenable
" 开启surround
set surround
" 留五行空白
set so 20
" 中文输入法问题
set keep-english-in-normal-and-restore-in-insert
inoremap jk <esc>
" 设置leader键
let mapleader=","
" show in project view
map ;s <Action>(SelectInProjectView)
" run current test
map ;t <Action>(ContextRun)
close test result
map ;c <Action>(DSM.Close)
map <enter> <Action>(SelectFirstItem)
" 打开最近的项目
nnoremap <Leader>o :<C-u>action RecentProjectListGroup<CR>
" esc
map <leader>q <esc>
map <leader>v <Action>(IntroduceVariable)
" open terminal
map <leader>t <Action>(ActivateTerminalToolWindow)
" show full screen
map <leader>z <Action>(ToggleDistractionFreeMode)
" rename element
map <leader>r <Action>(RenameElement)
" reformat code
map <leader>c <Action>(ReformatCode)
" show structure
map <leader>ss <Action>(FileStructurePopup)
" close editors but active
map <leader>ea <Action>(CloseAllEditorsButActive)
map <leader>f <Action>(AceDeclarationAction)
" 跳转
map ga <Action>(GotoAction)
map gb <Action>(JumpToLastChange)
map gc <Action>(GotoClass)
map gd <Action>(GotoDeclaration)
map gs <Action>(GotoSuperMethod)
map gi <Action>(GotoImplementation)
map gf <Action>(GotoFile)
map gm <Action>(GotoSymbol)
map gu <Action>(ShowUsages)
map gt <Action>(GotoTest)
map gp <Action>(FindInPath)
map gr <Action>(RecentFiles)
map gh <Action>(Back)
map gl <Action>(Forward)
" 触发
nnoremap ta :action Annotate<cr>
nnoremap tb :action ToggleLineBreakpoint<cr>
nnoremap tm :action ToggleBookmarkWithMnemonic<cr>
nnoremap tp :action SelectInProjectView<CR>
" 标签页切换
nnoremap <space>h gT
nnoremap <space>l gt
" 内容搜索
map f <Action>(AceAction)
" go to declaration
map F <Action>(AceDeclarationAction)
" 代码编辑
nnoremap cc :<C-u>action CommentByLineComment<CR>
vnoremap cc :<C-u>action CommentByLineComment<CR>