"" Source your .vimrc
"source ~/.vimrc
"" -- Suggested options --
" Show a few lines of context around the cursor. Note that this makes the
" text scroll if you mouse-click near the start or end of the window.
set scrolloff=5
" Do incremental searching.
set incsearch
" Don't use Ex mode, use Q for formatting.
map Q gq
let mapleader=","
":set relativenumber
":set number
"" Map <leader>d to start debug
"map <leader>d <Action>(Debug)
"" Map \b to toggle the breakpoint on the current line
"map \b <Action>(ToggleLineBreakpoint)
set clipboard=unnamed
" Find more examples here: https://jb.gg/share-ideavimrc
inoremap ii <ESC>
set mouse=a
nnoremap x "_x
nnoremap d "_d
nnoremap c "_c
vnoremap d "_d
colorscheme molokai
set clipboard+=unnamed
:nmap <space>e <Cmd>CocCommand explorer<CR>
call plug#begin()
" Use release branch (recommend)
Plug 'neoclide/coc.nvim', {'branch': 'release'}
" Or build from source code by using yarn: https://yarnpkg.com
Plug 'neoclide/coc.nvim', {'branch': 'master', 'do': 'yarn install --frozen-lockfile'}
Plug 'pappasam/coc-jedi', { 'do': 'yarn install --frozen-lockfile && yarn build', 'branch': 'main' }
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
Plug 'morhetz/gruvbox'
Plug 'honza/vim-snippets'
Plug 'scrooloose/nerdtree'
call plug#end()
set backspace=eol,start,indent
set scrolloff=5
set termguicolors
" 设置vim的内部编码,在neovim上不需要,因为coc.nvim使用了一些
" autoload / float.vim文件中的unicode字符
set encoding=utf-8
" 如果未设置“隐藏”,则TextEdit可能会失败。
set hidden
" 某些服务器的备份文件有问题,请参阅#649。
set nobackup
set nowritebackup
" 留出更多空间来显示消息。
set cmdheight=2
" 较长的更新时间(默认值为4000 ms = 4 s)会导致明显的
" 延迟和糟糕的用户体验。
set updatetime=300
" 不要将消息传递到| ins-completion-menu |。
set shortmess+=c
" 始终显示标志列,否则每次都会移动文本
" 诊断出现/已解决。
if has("patch-8.1.1564")
" 最近vim可以将signcolumn和number列合并为一个
set signcolumn=number
else
set signcolumn=yes
endif
" 使用制表符可完成带有前面字符的触发操作并进行导航。
" NOTE: 这个命令':verbose imap <tab>' 去确实你的<tab>键
" 没有被其他插件使用。
"inoremap <silent><expr> <TAB>
" \ pumvisible() ? "\<C-n>" :
" \ <SID>check_back_space() ? "\<TAB>" :
" \ coc#refresh()
inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>"
" 使用 <c-space> 触发自动完成。
if has('nvim')
inoremap <silent><expr> <c-space> coc#refresh()
else
inoremap <silent><expr> <c-@> coc#refresh()
endif
" 使<CR>自动选择第一个完成项目,并将coc.nvim通知给
" 输入格式,<cr>可能会被其他vim插件重新映射
inoremap <silent><expr> <cr> pumvisible() ? coc#_select_confirm()
\: "\<C-g>u\<CR>\<c-r>=coc#on_enter()\<CR>"
" 使用 `[g` and `]g` 浏览诊断
" Use `:CocDiagnostics` to get all diagnostics of current buffer in location list.
nmap <silent> [g <Plug>(coc-diagnostic-prev)
nmap <silent> ]g <Plug>(coc-diagnostic-next)
" GoTo代码导航
nmap <silent> gd <Plug>(coc-definition)
nmap <silent> gy <Plug>(coc-type-definition)
nmap <silent> gi <Plug>(coc-implementation)
nmap <silent> gr <Plug>(coc-references)
" 使用 K 在预览窗口中显示文档。
nnoremap <silent> K :call <SID>show_documentation()<CR>
function! s:show_documentation()
if (index(['vim','help'], &filetype) >= 0)
execute 'h '.expand('<cword>')
elseif (coc#rpc#ready())
call CocActionAsync('doHover')
else
execute '!' . &keywordprg . " " . expand('<cword>')
endif
endfunction
" 按住光标时突出显示该符号及其参考。
autocmd CursorHold * silent call CocActionAsync('highlight')
" 重命名符号。
nmap <leader>rn <Plug>(coc-rename)
" 格式化选定的代码。
xmap <leader>f <Plug>(coc-format-selected)
nmap <leader>f <Plug>(coc-format-selected)
augroup mygroup
autocmd!
" Setup formatexpr specified filetype(s).
autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected')
" 更新有关跳转占位符的签名帮助。
autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp')
augroup end
" 将codeAction应用于所选区域。
" Example: `<leader>aap` for current paragraph
xmap <leader>a <Plug>(coc-codeaction-selected)
nmap <leader>a <Plug>(coc-codeaction-selected)
" 重新映射用于将codeAction应用于当前缓冲区的键。
nmap <leader>ac <Plug>(coc-codeaction)
" 将AutoFix应用于当前行的问题。
nmap <leader>qf <Plug>(coc-fix-current)
" 映射函数和类文本对象
" 注意:需要语言服务器提供'textDocument.documentSymbol'支持。
xmap if <Plug>(coc-funcobj-i)
omap if <Plug>(coc-funcobj-i)
xmap af <Plug>(coc-funcobj-a)
omap af <Plug>(coc-funcobj-a)
xmap ic <Plug>(coc-classobj-i)
omap ic <Plug>(coc-classobj-i)
xmap ac <Plug>(coc-classobj-a)
omap ac <Plug>(coc-classobj-a)
" Remap <C-f> and <C-b> for scroll float windows/popups.
if has('nvim-0.4.0') || has('patch-8.2.0750')
nnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>"
nnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>"
inoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(1)\<cr>" : "\<Right>"
inoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(0)\<cr>" : "\<Left>"
vnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>"
vnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>"
endif
" 使用CTRL-S作为选择范围。
" Requires 'textDocument/selectionRange' support of language server.
nmap <silent> <C-s> <Plug>(coc-range-select)
xmap <silent> <C-s> <Plug>(coc-range-select)
" 添加`:Format`命令格式化当前缓冲区。
command! -nargs=0 Format :call CocAction('format')
" 添加`:Fold`命令来折叠当前缓冲区。
command! -nargs=? Fold :call CocAction('fold', <f-args>)
" Add `:OR` command for organize imports of the current buffer.
command! -nargs=0 OR :call CocAction('runCommand', 'editor.action.organizeImport')
" 添加(Neo)Vim的本机状态行支持。
" NOTE: Please see `:h coc-status` for integrations with external plugins that
" provide custom statusline: lightline.vim, vim-airline.
set statusline^=%{coc#status()}%{get(b:,'coc_current_function','')}
" CoCList的映射
" Show all diagnostics.
nnoremap <silent><nowait> <space>a :<C-u>CocList diagnostics<cr>
" Manage extensions.
nnoremap <silent><nowait> <space>e :<C-u>CocList extensions<cr>
" Show commands.
nnoremap <silent><nowait> <space>c :<C-u>CocList commands<cr>
" Find symbol of current document.
nnoremap <silent><nowait> <space>o :<C-u>CocList outline<cr>
" Search workspace symbols.
nnoremap <silent><nowait> <space>s :<C-u>CocList -I symbols<cr>
" Do default action for next item.
nnoremap <silent><nowait> <space>j :<C-u>CocNext<CR>
" Do default action for previous item.
nnoremap <silent><nowait> <space>k :<C-u>CocPrev<CR>
" Resume latest coc list.
nnoremap <silent><nowait> <space>p :<C-u>CocListResume<CR>
nnoremap <F1> :NERDTree<CR>
" vim-airline
let g:airline#extensions#tabline#enabled = 1
let g:airline_powerline_fonts = 1
" 使用gruvbox配色
autocmd vimenter * ++nested colorscheme gruvbox
" 强制使用dark模式
set bg=dark
"----vim 个人使用习惯配置start------
" leader设置成空格
let mapleader=" "
" 使用鼠标
set mouse=a
" 显示行号
set nu
" 相对行号
set relativenumber
" tab=4个空格
set tabstop=4
" 改变 vim中光标的形状
let g:db_ui_use_nerd_fonts=1
let &t_SI.="\e[5 q" "SI = INSERT mode
let &t_SR.="\e[4 q" "SR = REPLACE mode
let &t_EI.="\e[1 q" "EI = NORMAL mode (ELSE)
" 高度光标所在行
set cursorline
" 设置不换行
set nowrap
" 显示按下的按键
set showcmd
" 按tab显示菜单
set wildmenu
" 插入模式移动光标
inoremap <C-h> <Left>
inoremap <C-j> <Down>
inoremap <C-k> <Up>
inoremap <C-l> <Right>
inoremap <C-d> <Delete>
" hh在我用的单词里出现的频率极低,其实感觉home用的没有end多,统一风格都用大写的吧
inoremap HH <Home>
" 单词中包含ll的太多了,所以用大写LL
inoremap LL <End>
" 快速跳转行首与行尾
nnoremap L $
nnoremap H ^
nnoremap dL d$
nnoremap dH d^
" 向下5行
noremap <C-j> 5j
" 向上5行
noremap <C-k> 5k
"----vim 个人使用习惯配置end------
"" Source your .vimrc
"source ~/.vimrc
"" -- Suggested options --
" Show a few lines of context around the cursor. Note that this makes the
" text scroll if you mouse-click near the start or end of the window.
set scrolloff=5
" Do incremental searching.
set incsearch
" Don't use Ex mode, use Q for formatting.
map Q gq
let mapleader=","
":set relativenumber
":set number
"" Map <leader>d to start debug
"map <leader>d <Action>(Debug)
"" Map \b to toggle the breakpoint on the current line
"map \b <Action>(ToggleLineBreakpoint)
set clipboard=unnamed
" Find more examples here: https://jb.gg/share-ideavimrc
inoremap ii <ESC>
set mouse=a
nnoremap x "_x
nnoremap d "_d
nnoremap c "_c
vnoremap d "_d
colorscheme molokai
set clipboard+=unnamed
:nmap <space>e <Cmd>CocCommand explorer<CR>
call plug#begin()
" Use release branch (recommend)
Plug 'neoclide/coc.nvim', {'branch': 'release'}
" Or build from source code by using yarn: https://yarnpkg.com
Plug 'neoclide/coc.nvim', {'branch': 'master', 'do': 'yarn install --frozen-lockfile'}
Plug 'pappasam/coc-jedi', { 'do': 'yarn install --frozen-lockfile && yarn build', 'branch': 'main' }
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
Plug 'morhetz/gruvbox'
Plug 'honza/vim-snippets'
Plug 'scrooloose/nerdtree'
call plug#end()
set backspace=eol,start,indent
set scrolloff=5
set termguicolors
" 设置vim的内部编码,在neovim上不需要,因为coc.nvim使用了一些
" autoload / float.vim文件中的unicode字符
set encoding=utf-8
" 如果未设置“隐藏”,则TextEdit可能会失败。
set hidden
" 某些服务器的备份文件有问题,请参阅#649。
set nobackup
set nowritebackup
" 留出更多空间来显示消息。
set cmdheight=2
" 较长的更新时间(默认值为4000 ms = 4 s)会导致明显的
" 延迟和糟糕的用户体验。
set updatetime=300
" 不要将消息传递到| ins-completion-menu |。
set shortmess+=c
" 始终显示标志列,否则每次都会移动文本
" 诊断出现/已解决。
if has("patch-8.1.1564")
" 最近vim可以将signcolumn和number列合并为一个
set signcolumn=number
else
set signcolumn=yes
endif
" 使用制表符可完成带有前面字符的触发操作并进行导航。
" NOTE: 这个命令':verbose imap <tab>' 去确实你的<tab>键
" 没有被其他插件使用。
"inoremap <silent><expr> <TAB>
" \ pumvisible() ? "\<C-n>" :
" \ <SID>check_back_space() ? "\<TAB>" :
" \ coc#refresh()
inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>"
" 使用 <c-space> 触发自动完成。
if has('nvim')
inoremap <silent><expr> <c-space> coc#refresh()
else
inoremap <silent><expr> <c-@> coc#refresh()
endif
" 使<CR>自动选择第一个完成项目,并将coc.nvim通知给
" 输入格式,<cr>可能会被其他vim插件重新映射
inoremap <silent><expr> <cr> pumvisible() ? coc#_select_confirm()
\: "\<C-g>u\<CR>\<c-r>=coc#on_enter()\<CR>"
" 使用 `[g` and `]g` 浏览诊断
" Use `:CocDiagnostics` to get all diagnostics of current buffer in location list.
nmap <silent> [g <Plug>(coc-diagnostic-prev)
nmap <silent> ]g <Plug>(coc-diagnostic-next)
" GoTo代码导航
nmap <silent> gd <Plug>(coc-definition)
nmap <silent> gy <Plug>(coc-type-definition)
nmap <silent> gi <Plug>(coc-implementation)
nmap <silent> gr <Plug>(coc-references)
" 使用 K 在预览窗口中显示文档。
nnoremap <silent> K :call <SID>show_documentation()<CR>
function! s:show_documentation()
if (index(['vim','help'], &filetype) >= 0)
execute 'h '.expand('<cword>')
elseif (coc#rpc#ready())
call CocActionAsync('doHover')
else
execute '!' . &keywordprg . " " . expand('<cword>')
endif
endfunction
" 按住光标时突出显示该符号及其参考。
autocmd CursorHold * silent call CocActionAsync('highlight')
" 重命名符号。
nmap <leader>rn <Plug>(coc-rename)
" 格式化选定的代码。
xmap <leader>f <Plug>(coc-format-selected)
nmap <leader>f <Plug>(coc-format-selected)
augroup mygroup
autocmd!
" Setup formatexpr specified filetype(s).
autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected')
" 更新有关跳转占位符的签名帮助。
autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp')
augroup end
" 将codeAction应用于所选区域。
" Example: `<leader>aap` for current paragraph
xmap <leader>a <Plug>(coc-codeaction-selected)
nmap <leader>a <Plug>(coc-codeaction-selected)
" 重新映射用于将codeAction应用于当前缓冲区的键。
nmap <leader>ac <Plug>(coc-codeaction)
" 将AutoFix应用于当前行的问题。
nmap <leader>qf <Plug>(coc-fix-current)
" 映射函数和类文本对象
" 注意:需要语言服务器提供'textDocument.documentSymbol'支持。
xmap if <Plug>(coc-funcobj-i)
omap if <Plug>(coc-funcobj-i)
xmap af <Plug>(coc-funcobj-a)
omap af <Plug>(coc-funcobj-a)
xmap ic <Plug>(coc-classobj-i)
omap ic <Plug>(coc-classobj-i)
xmap ac <Plug>(coc-classobj-a)
omap ac <Plug>(coc-classobj-a)
" Remap <C-f> and <C-b> for scroll float windows/popups.
if has('nvim-0.4.0') || has('patch-8.2.0750')
nnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>"
nnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>"
inoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(1)\<cr>" : "\<Right>"
inoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(0)\<cr>" : "\<Left>"
vnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>"
vnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>"
endif
" 使用CTRL-S作为选择范围。
" Requires 'textDocument/selectionRange' support of language server.
nmap <silent> <C-s> <Plug>(coc-range-select)
xmap <silent> <C-s> <Plug>(coc-range-select)
" 添加`:Format`命令格式化当前缓冲区。
command! -nargs=0 Format :call CocAction('format')
" 添加`:Fold`命令来折叠当前缓冲区。
command! -nargs=? Fold :call CocAction('fold', <f-args>)
" Add `:OR` command for organize imports of the current buffer.
command! -nargs=0 OR :call CocAction('runCommand', 'editor.action.organizeImport')
" 添加(Neo)Vim的本机状态行支持。
" NOTE: Please see `:h coc-status` for integrations with external plugins that
" provide custom statusline: lightline.vim, vim-airline.
set statusline^=%{coc#status()}%{get(b:,'coc_current_function','')}
" CoCList的映射
" Show all diagnostics.
nnoremap <silent><nowait> <space>a :<C-u>CocList diagnostics<cr>
" Manage extensions.
nnoremap <silent><nowait> <space>e :<C-u>CocList extensions<cr>
" Show commands.
nnoremap <silent><nowait> <space>c :<C-u>CocList commands<cr>
" Find symbol of current document.
nnoremap <silent><nowait> <space>o :<C-u>CocList outline<cr>
" Search workspace symbols.
nnoremap <silent><nowait> <space>s :<C-u>CocList -I symbols<cr>
" Do default action for next item.
nnoremap <silent><nowait> <space>j :<C-u>CocNext<CR>
" Do default action for previous item.
nnoremap <silent><nowait> <space>k :<C-u>CocPrev<CR>
" Resume latest coc list.
nnoremap <silent><nowait> <space>p :<C-u>CocListResume<CR>
nnoremap <F1> :NERDTree<CR>
" vim-airline
let g:airline#extensions#tabline#enabled = 1
let g:airline_powerline_fonts = 1
" 使用gruvbox配色
autocmd vimenter * ++nested colorscheme gruvbox
" 强制使用dark模式
set bg=dark
"----vim 个人使用习惯配置start------
" leader设置成空格
let mapleader=" "
" 使用鼠标
set mouse=a
" 显示行号
set nu
" 相对行号
set relativenumber
" tab=4个空格
set tabstop=4
" 改变 vim中光标的形状
let g:db_ui_use_nerd_fonts=1
let &t_SI.="\e[5 q" "SI = INSERT mode
let &t_SR.="\e[4 q" "SR = REPLACE mode
let &t_EI.="\e[1 q" "EI = NORMAL mode (ELSE)
" 高度光标所在行
set cursorline
" 设置不换行
set nowrap
" 显示按下的按键
set showcmd
" 按tab显示菜单
set wildmenu
" 插入模式移动光标
inoremap <C-h> <Left>
inoremap <C-j> <Down>
inoremap <C-k> <Up>
inoremap <C-l> <Right>
inoremap <C-d> <Delete>
" hh在我用的单词里出现的频率极低,其实感觉home用的没有end多,统一风格都用大写的吧
inoremap HH <Home>
" 单词中包含ll的太多了,所以用大写LL
inoremap LL <End>
" 快速跳转行首与行尾
nnoremap L $
nnoremap H ^
nnoremap dL d$
nnoremap dH d^
" 向下5行
noremap <C-j> 5j
" 向上5行
noremap <C-k> 5k
"----vim 个人使用习惯配置end------