极巽 2025-08-21 10:43 采纳率: 100%
浏览 5
已结题

vim中,代码显示问题

gvim中显示出现的问题,应该是coc插件的问题

vim 9.1,node.js版本为24.6.0
clangd version 20.1.0-rc2
怎么把以下的Time: Command: 这些隐藏或关闭
在正常的一段cpp文件中
比如我输入system("chcp 65001");
输入完后会自动显示为system(Command: "chcp 65001");
如int list[] = {1,3};输入完后会显示int list[] = {[0]=1,[1]=3};
这个前缀只显示,且不可选

img

这是插件配置
_vimrc

" 插件
call plug#begin()

Plug 'tpope/vim-sensible'         " 基础插件
Plug 'preservim/nerdtree'         " 文件目录树
Plug 'sheerun/vim-polyglot'       " 语法高亮增强
Plug 'vim-airline/vim-airline'    " 状态栏增强
Plug 'scrooloose/syntastic'       " 语法检查
Plug 'tpope/vim-surround'         " 环绕符号处理
Plug 'jiangmiao/auto-pairs'       " 自动括号补全
Plug 'preservim/nerdcommenter'    " 快速注释
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
Plug 'junegunn/fzf.vim'           " 模糊搜索
Plug 'ryanoasis/vim-devicons'     " 文件图标支持
Plug 'neoclide/coc.nvim', {'branch': 'release'}  " 自动补全引擎

call plug#end()


" ================ 插件配置 ================

" fzf 配置
let g:fzf_layout = { 'down': '50%'  }  " 弹出窗口高度
" let g:fzf_preview_window = ''          " 禁用预览窗口
let g:fzf_buffers_jump = 1             " 在已有缓冲区中跳转而不是新建

nmap <space>e :Files<CR>
nmap <space>b :Buffers<CR>
nmap <space>f :Rg<CR>

" 让 fzf 使用 ripgrep (更快的搜索工具)
if executable('rg')
  set grepprg=rg\ --vimgrep\ --no-heading\ --smart-case
    set grepformat=%f:%l:%c:%m
    endif


" NERDTree 文件浏览器配置
map <F2> :NERDTreeToggle<CR>    " F2 开关目录树
autocmd StdinReadPre * let s:std_in=1
" 当关闭最后一个窗口时自动关闭NERDTree
autocmd BufEnter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif

" vim-airline配置
let g:airline#extensions#tabline#enabled = 1
let g:airline_powerline_fonts = 1

" ================ 2. 快速注释配置 (nerdcommenter) ================
" 注释/取消注释当前行或选区
nmap <C-c> <Plug>NERDCommenterToggle
vmap <C-c> <Plug>NERDCommenterToggle

" 添加空格在注释符后
let g:NERDSpaceDelims = 1
" 紧凑语法美化多行注释
let g:NERDCompactSexyComs = 1
" 默认使用行注释
let g:NERDDefaultAlign = 'left'
" 允许注释和反转空行
let g:NERDCommentEmptyLines = 1
" 启用NERDCommenterToggle检查
let g:NERDToggleCheckAllLines = 1

" 文件类型特定注释符
let g:NERDCustomDelimiters = {
    \ 'c': { 'left': '//', 'leftAlt': '/*', 'rightAlt': '*/' },
    \ 'cpp': { 'left': '//', 'leftAlt': '/*', 'rightAlt': '*/' },
    \ 'python': { 'left': '#' },
    \ }

" 环绕符号 (vim-surround)
if exists('g:loaded_surround')
  " 添加环绕符
  nmap ma <Plug>Ysurround
  " 修改环绕符
  nmap ms <Plug>Csurround
  " 删除环绕符
  nmap mi <Plug>Dsurround
endif


" ================ coc.nvim 自动补全配置 ================
autocmd VimEnter * call coc#config('clangd', {
      \ 'disableSnippetInsertion': v:true,
      \ 'enableSnippetInsertion': v:false
      \ })
let g:coc_global_extensions = [
      \ 'coc-clangd', 
      \ 'coc-pyright',
      \ 'coc-json',
      \ 'coc-snippets'
      \ ]

imap <silent><expr> <TAB>
      \ coc#pum#visible() ? coc#pum#next(1) :
      \ <SID>check_back_space() ? "\<TAB>" :
      \ coc#refresh()

imap <expr><S-TAB> coc#pum#visible() ? coc#pum#prev(1) : "\<C-h>"
imap <silent><expr> <CR> coc#pum#visible() ? coc#pum#confirm() : "\<C-g>u\<CR>"

" 导航快捷键
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)

" 重命名符号
nmap <space>rn <Plug>(coc-rename)

" 代码格式化
command! -nargs=0 Format :call CocAction('format')
" autocmd BufWritePre *.c,*.cpp,*.h,*.py :Format
let g:coc_preferences = { 'format_on_type': v:false }
" 自动修复
nmap <space>qf <Plug>(coc-fix-current)

" 文档查看
nmap <silent> K :call ShowDocumentation()<CR>

function! ShowDocumentation()
  if CocAction('hasProvider', 'hover')
    call CocActionAsync('doHover')
  else
    call feedkeys('K', 'in')
  endif
endfunction

" 代码片段展开
imap <C-l> <Plug>(coc-snippets-expand)
vmap <C-j> <Plug>(coc-snippets-select)
let g:coc_snippet_next = '<c-j>'
let g:coc_snippet_prev = '<c-k>'
imap <C-j> <Plug>(coc-snippets-expand-jump)

" 启用 Coc 详细日志
let g:coc_default_semantic_token_types = 1
let $COC_DEBUG = 1

" 设置日志级别和路径
autocmd VimEnter * call coc#config('languageserver', {
      \ 'trace.server': 'verbose'
      \ })

" 创建日志命令
command! CocLogOpen :call CocAction('openLog')
command! CocLogClear :call writefile([], expand('~/AppData/Local/coc/logs/coc.log'))

" ================ 语言特定设置 ================
" C/C++ 设置
autocmd FileType c,cpp setlocal commentstring=//\ %s
autocmd FileType c,cpp setlocal foldmethod=syntax

" Python 设置
autocmd FileType python setlocal shiftwidth=4 tabstop=4 expandtab
autocmd FileType python setlocal commentstring=#\ %s
autocmd FileType python setlocal foldmethod=syntax

  • 写回答

4条回答 默认 最新

  • 宝码香车 优质创作者: JavaScript技术领域 2025-08-21 11:25
    关注

    让【宝码香车】来帮您解答,本回答参考DeepSeek编写,并整理提供。

    如果答案让您满意,请采纳、点赞、关注,非常感谢!
    .  
    每日一句正能量,让它带给您好心情:把平凡的日子,过出自己的滋味,就是伟大。
    .  

    根据你的描述,问题很可能是由 coc.nvim 的 Clangd 语言服务器提供的 "inlay hints"(嵌入提示)功能导致的。这些提示会在代码中显示额外的类型信息、参数名称等,但会干扰正常编辑。

    以下是几种解决方案:

    方法一:禁用所有嵌入提示(推荐)

    在你的 _vimrc 中添加以下配置:

    " 禁用所有嵌入提示
    autocmd VimEnter * call coc#config('inlayHint.enable', v:false)
    

    方法二:仅禁用特定类型的嵌入提示

    " 禁用参数名称提示
    autocmd VimEnter * call coc#config('inlayHint.parameterHints.enable', v:false)
    
    
    " 禁用类型提示
    autocmd VimEnter * call coc#config('inlayHint.typeHints.enable', v:false)
    

    方法三:使用快捷键临时切换

    " 切换嵌入提示显示
    nmap <silent> <space>h :call CocAction('toggleInlayHints')<CR>
    

    方法四:更新你的 coc-clangd 配置

    将你现有的配置替换为:

    " ================ coc.nvim 自动补全配置 ================
    let g:coc_global_extensions = [
          \ 'coc-clangd', 
          \ 'coc-pyright',
          \ 'coc-json',
          \ 'coc-snippets'
          \ ]
    
    
    " Clangd 配置 - 禁用嵌入提示
    autocmd VimEnter * call coc#config('clangd', {
          \ 'inlayHints': {
          \   'enabled': v:false
          \ },
          \ 'disableSnippetInsertion': v:true,
          \ 'enableSnippetInsertion': v:false
          \ })
    
    
    " 补全相关设置
    imap <silent><expr> <TAB>
          \ coc#pum#visible() ? coc#pum#next(1) :
          \ <SID>check_back_space() ? "\<TAB>" :
          \ coc#refresh()
    
    
    imap <expr><S-TAB> coc#pum#visible() ? coc#pum#prev(1) : "\<C-h>"
    imap <silent><expr> <CR> coc#pum#visible() ? coc#pum#confirm() : "\<C-g>u\<CR>"
    

    重启 Vim 后验证

    修改配置后,重启 Vim 并检查问题是否解决。如果仍有问题,可以尝试:

    1. 更新 coc.nvim 和 coc-clangd 插件
    2. 检查 Clangd 版本兼容性
    3. 查看 Coc 日志::CocLogOpen

    建议先使用方法一(完全禁用嵌入提示),这是最直接的解决方案。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月21日
  • 已采纳回答 8月21日
  • 修改了问题 8月21日
  • 创建了问题 8月21日