" 设置一级折叠(fold one level)
nnoremap <silent> <leader>fo
\ :set foldmethod=syntax<Bar>
\ set foldenable<Bar>
\ set foldlevel=1<CR>zM
" 设置二级折叠(fold two levels)
nnoremap <silent> <leader>ft
\ :set foldmethod=syntax<Bar>
\ set foldenable<Bar>
\ set foldlevel=2<CR>zM
" 设置三级折叠(fold three levels)
nnoremap <silent> <leader>th
\ :set foldmethod=syntax<Bar>
\ set foldenable<Bar>
\ set foldlevel=3<CR>zM
" 增加一级折叠(increase fold level)
nnoremap <silent> <leader>fi
\ :set foldmethod=syntax<Bar>
\ set foldenable<Bar>
\ set foldlevel+=1<CR>zM
" 减少一级折叠(decrease fold level)
nnoremap <silent> <leader>fd
\ :set foldmethod=syntax<Bar>
\ set foldenable<Bar>
\ set foldlevel-=1<CR>zM
" 展开当前折叠(unfold current fold)
nnoremap <silent> <leader>oc
\ :set foldmethod=manual<Bar>
\ za
" 展开所有折叠(unfold all folds)
nnoremap <silent> <leader>zR
\ :set foldmethod=manual<Bar>
\ zR
" 显示当前文件符号
nnoremap <silent> <leader>ss :CocList symbols<CR>
" 'ss' 表示 symbols
" 工作区符号搜索
nnoremap <silent> <leader>ws :CocList workspaceSymbols<CR>
" 'ws' 表示 workspace symbols
" 文件概览
nnoremap <silent> <leader>oo :CocList outline<CR>
" 'oo' 表示 outline
" 文本搜索
nnoremap <silent> <leader>fg :CocList grep<CR>
" 'fg' 表示 grep,文件搜索
" 提取函数
nnoremap <silent> <leader>ef :CocAction extractFunction<CR>
" 'ef' 表示 extract function
" 提取变量
nnoremap <silent> <leader>ev :CocAction extractVariable<CR>
" 'ev' 表示 extract variable
function! CopyToClipboard(text)
let tmp = @+
let @+ = a:text
call system('xclip -selection clipboard', @+)
let @+ = tmp
endfunction
nnoremap <leader>cf :call CopyToClipboard(expand("%:p"))<CR>
" 显示浮动窗口,列出所有窗口并选择
function! FloatingWindowSelection()
" 保存当前窗口编号
let current_winid = win_getid()
" 获取所有窗口信息
let choices = getwininfo()
" 显示浮动窗口,提示选择窗口
let selection = inputlist(choices)
" 如果选择了窗口
if !empty(selection)
" 跳转到选择窗口
call win_gotoid(selection)
endif
" 回到原始窗口
call win_gotoid(current_winid)
endfunction
" 设置快捷键,打开浮动窗口选择
nnoremap <silent> <leader>ws :call FloatingWindowSelection()<CR>
nnoremap <leader>ww :wincmd w<bar>wincmd wp<CR>
交换窗口
" 查看git文件状态
nnoremap <leader>gss :CocCommand git.status<CR>
" 暂存当前文件修改
nnoremap <leader>gaa :CocCommand git.add<CR>
" 提交暂存的更改
nnoremap <leader>gcm :CocCommand git.commit<CR>
" 推送本地提交到远程
nnoremap <leader>gph :CocCommand git.push<CR>
" 检出分支或版本文件
nnoremap <leader>gco :CocCommand git.checkout<CR>
" 查看分支列表
nnoremap <leader>gbr :CocCommand git.branch<CR>
" 变基操作
nnoremap <leader>grb :CocCommand git.rebase<CR>
" 查看提交历史
nnoremap <leader>glg :CocCommand git.log<CR>
” 文件内符号
nmap ls :CocList symbols
nmap lo :CocList outline
Plug 'terryma/vim-multiple-cursors'
coc-tasks
{
"tasks": [
{
"label": "cmake-configure",
"type": "shell",
"command": "cmake",
"args": ["-S", "${workspaceFolder}", "-B", "${workspaceFolder}/build"],
"group": {
"kind": "build",
"isDefault": true
}
},
{
"label": "cmake-build",
"type": "shell",
"command": "cmake",
"args": ["--build", "${workspaceFolder}/build"],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
" 使用 leader + t 作为快捷键前缀,因为 t 可以代表 "task"
nnoremap <leader>tl :CocList tasks<CR> " 使用 l (list) 代表任务列表
" 使用 leader + tb 作为构建任务的快捷键,因为 b 可以代表 "build"
nnoremap <leader>tb :CocCommand tasks.runBuildTask<CR> " 使用 runBuildTask 运行默认的构建任务
" 使用 leader + tt 作为测试任务的快捷键,因为 tt 可以代表 "test task"
nnoremap <leader>tt :CocCommand tasks.runTestTask<CR> " 使用 runTestTask 运行默认的测试任务
" 使用 leader + tr 作为重新运行上次任务的快捷键,因为 r 可以代表 "rerun"
nnoremap <leader>tr :CocCommand tasks.rerun<CR> " 使用 rerun 重新运行上次的任务
Plug 'puremourning/vimspector'
{
"configurations": {
"Launch": {
"adapter": "gdb",
"configuration": {
"request": "launch",
"program": "${workspaceRoot}/build/my_program",
"miDebuggerPath": "/usr/bin/gdb",
"cwd": "${workspaceRoot}",
"externalConsole": false,
"setupCommands": [
{ "text": "-enable-pretty-printing", "ignoreFailures": true },
{ "text": "source /path/to/your/script.gdb", "ignoreFailures": false }
],
"environment": [
{ "name": "LD_LIBRARY_PATH", "value": "/path/to/libs" }
]
}
}
}
}
” 工作空间符号
nmap lS :CocList workspaceSymbols
command! JumpToHeader execute ‘e ‘ . g:coc_cpp_current_header_file
nmap jh :JumpToHeader
command! JumpToSource execute ‘e ‘ . g:coc_cpp_current_source_file
nmap js :JumpToSource
发表回复