文件:.vimrc

本文档详细介绍了.vimrc配置文件的设置,包括去除vi兼容模式、语法高亮、设置插件Vundle及安装插件如NERDTree、vim-airline等,同时涵盖快捷键映射、主题设置、代码执行与调试配置,以及自动缩进、括号匹配等功能,旨在优化Vim的使用体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

"文件:.vimrc
"--------v20201230-----------
"—注意首次运行如果出错
"—在vim命令行:
":PluginInstall
":UpdateRemotePlugins
"----------------------------
"去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限
set nocompatible
set shortmess=atI " 启动的时候不显示那个援助乌干达儿童的提示
" 语法高亮
syntax on
set showcmd " 输入的命令显示出来,看的清楚些
set wildmenu

" 设置包括vundle和初始化相关的runtime path
set rtp+=~/.vim/bundle/vundle
call vundle#begin()
" 另一种选择, 指定一个vundle安装插件的路径
"call vundle#begin(’~/some/path/here’)

" 让vundle管理插件版本,必须
Plugin ‘VundleVim/Vundle.vim’

Plugin ‘scrooloose/nerdtree’

"好看的状态栏
Plugin ‘vim-airline/vim-airline’
Plugin ‘vim-airline/vim-airline-themes’

" 括号匹配
Plugin ‘jiangmiao/auto-pairs’

" 主要为vimspector提供调试模板文件列表(.vim/vimspector_json/):cpp.json python.json shell.json
" File navigation
Plugin ‘junegunn/fzf’, { ‘dir’: ‘~/.fzf’, ‘do’: ‘./install --all’ }
Plugin ‘junegunn/fzf.vim’

Plugin ‘puremourning/vimspector’,{‘do’:’./install_gadget.py --force-enable-rust -enable-python --enable-go --enable-bash --enable-c’}

Plugin ‘ycm-core/YouCompleteMe’

" 你的所有插件需要在下面这行之前
call vundle#end() " 必须
filetype plugin indent on " 必须 加载vim自带和插件相应的语法和文件类型相关脚本

let &t_TI = “”
let &t_TE = “”
let g:airline#extensions#hunks#enabled = 0
"vim 与 系统共享粘贴板
set clipboard=unnamedplus

" 主题
"colorscheme gruvbox
"set background=dark " 或者 set background=light
map ,q :call CompileRunGcc()
"map ,q :call CompileRunGcc()
" 一键执行
func! CompileRunGcc()
exec “w”
if &filetype == ‘c’
exec ‘!g++ % -g -o %<’
exec ‘!time ./%<’
elseif &filetype == ‘cpp’
exec ‘!g++ % -g -o %<’
exec ‘!time ./%<’
elseif &filetype == ‘python’
exec ‘!python %’
elseif &filetype == ‘sh’
:!time bash %
endif
endfunc

func! AddWatch()
let wordUnderCursor = expand("")
"exec ‘echo "add:"wordUnderCursor’
call vimspector#AddWatch(wordUnderCursor)
endfunc
map ,a :call AddWatch()
func! AddWatch2()
let var1=input(‘Enter watch expression:’,’’)

call vimspector#AddWatch(var1)

endfunc
map ,w :call AddWatch2()
map ,m :call Make()
func! Make()
if filereadable(“build/Makefile”)
exec “w”
exec ‘!cd %:p:h/build && make’
elseif filereadable(“Makefile”)
exec “w”
exec ‘!cd %:p:h && make’
endif
endfunc

" 键位的映射
" refresh .vimrc
noremap ,r :source ~/.vimrc
noremap ,n :call ShowNumberToggle()
func! ShowNumberToggle()
if &nu
set nonu
set mouse=v
else
set nu
set mouse=a
endif
endfunc
noremap :NERDTreeToggle
noremap :q
noremap :w
inoremap :q
inoremap :w
noremap ,l :spj:term ipython i %run

"noremap ,v :vsplit
"inoremap ,v :vspliti

"noremap ,h :split
"inoremap ,h :spliti

" ESC 与 CapsLk 功能互换
au VimEnter * silent! !xmodmap -e ‘clear Lock’ -e ‘keycode 0x42 = Escape’
au VimLeave * silent! !xmodmap -e ‘clear Lock’ -e ‘keycode 0x42 = Caps_Lock’

"cf 删除到
"ci 删除被包裹的内容
"cw 删除整个单词
"c6->向右删除6个字母
"c删除 d删除 y复制

"+i++ 块每行插入输入内容
"+r+ 块每行替换为输入内容
"l 左侧窗口
"r 右侧窗口

set guifont=Courier/20
set foldenable " 允许折叠

" 自动缩进
set autoindent
set cindent

" Tab键的宽度
set tabstop=2
set shiftwidth=2
" 匹配括号高亮的时间(单位是十分之一秒)
set matchtime=1

"设置编码
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8
" 括号匹配
set showmatch
" 鼠标
set mouse=a
set selection=exclusive
set selectmode=mouse,key
" 显示行号
set number
" 高亮当前行
set cursorline
highlight CursorLine cterm=NONE ctermbg=black ctermfg=green guibg=NONE guifg=NONE
highlight CursorColumn cterm=NONE ctermbg=black ctermfg=green guibg=NONE guifg=NONE
" 设置空白字符的视觉提示
set list listchars=extends:❯,precedes:❮,tab:▸\ ,trail:˽
"autocmd vimenter * NERDTree "启动时打开插件
"退出编辑窗口就直接关闭目录树窗口
autocmd BufEnter * if 0 == len(filter(range(1, winnr(’$’)), ‘empty(getbufvar(winbufnr(v:val), “&bt”))’)) | qa! | endif

" ===
" === vimspector
" ===
let g:vimspector_enable_mappings = ‘HUMAN’
function! s:read_template_into_buffer(template)
" has to be a function to avoid the extra space fzf#run insers otherwise
execute ‘0r ~/.vim/vimspector_json/’.a:template
endfunction
command! -bang -nargs=* LoadVimSpectorJsonTemplate call fzf#run({
\ ‘source’: ‘ls -1 ~/.vim/vimspector_json’,
\ ‘down’: 20,
\ ‘sink’: function(‘read_template_into_buffer’)
\ })
" %:p:h返回当前调试源文件所在的目录
" 如果没有%:p:h时.vimspector.json会被默认存到vim/nvim启动目录
" ~$nvim test/main.cpp 没有%:p:h时则返回~/.vimspector.json 如果有 %:p:h/.vimspector.json返回~/test/.vimspector.json
noremap vs :tabe %:p:h/.vimspector.json:LoadVimSpectorJsonTemplate
sign define vimspectorBP text=🛑 texthl=Normal
sign define vimspectorBPDisabled text=🚫 texthl=Normal
sign define vimspectorPC text=👉 texthl=SpellBad

".ycm_extra_conf.py 是否提示加载1确认 0不需要确认
let g:ycm_confirm_extra_conf = 0

" 除/Documents/目录之外拒绝加载/目录内的.ycm_extra_conf.py文件
" 在例表前面的优先级高
let g:ycm_extra_conf_globlist = [’/Documents/*’,’!/*’]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值