.vvconfig/vimconfig/.vimrc_ljpj

222 lines
8.2 KiB
Plaintext
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"-----------------------------------------------"
" 基础设置 "
"-----------------------------------------------"
set modelines=0 " 禁用模式行(安全措施)
syntax on " 语法高亮
filetype on " 开启文件类型检测
colorscheme desert
set encoding=utf-8 " 编码设置
set number " 显示行号
set relativenumber " 显示相对行号
set smartindent " 智能缩进
set autoindent " 自动对齐
set smarttab
set tabstop=4 " tab缩进
set shiftwidth=4 " 设定自动缩进为4个字符
set expandtab " 用space替代tab的输入
set splitright " 设置左右分割窗口时,新窗口出现在右侧
set splitbelow " 设置水平分割窗口时,新窗口出现在底部
set nobackup " 不需要备份
set noswapfile " 禁止生成临时文件
set autoread " 文件自动检测外部更改
set clipboard=unnamed " 共享剪切板
set nocompatible " 去除vi一致性
set ambiwidth=double " 解决中文标点显示的问题
set nowrap " 不自动折行
set mouse=a " 使用鼠标
set mousehide " 输入时隐藏光标
set sidescroll=10 " 移动到看不见的字符时,自动向右滚动是个字符
set sm! " 高亮显示匹配括号
set hlsearch " 高亮查找匹配
set cursorline " 高亮显示当前行
set termguicolors " 启用终端真色
set showmatch " 显示匹配
set ruler " 显示标尺,在右下角显示光标位置
set novisualbell " 不要闪烁
set showcmd " 显示输入的命令
set laststatus=2 " always show statusline
set showtabline=2 " always show tabline
set vb t_vb=
" 设置代码折叠---------------------------------
" set nofoldenable " 启动 vim 时关闭折叠代码
" set foldmethod=indent " 设置语法折叠
" setlocal foldlevel=99 " 设置折叠层数
" nnoremap <space> za " 用空格键来开关折叠
" 设置光标样式-------------------------------
let &t_SI = "\<Esc>]50;CursorShape=1\x7"
let &t_SR = "\<Esc>]50;CursorShape=2\x7"
let &t_EI = "\<Esc>]50;CursorShape=0\x7"
set completeopt=longest,menu " 自动补全配置让Vim补全菜单行为跟IDE一致
set backspace=indent,eol,start " 允许用退格键删除字符
let g:markdown_fenced_languages =['c', 'cpp', 'python', 'javascript']
set guifont=Hack_Nerd_Font_Mono:h16 " 设置字体和字体大小, 只对gui客户端起作用终端使用需要修改终端字体和大小
" 禁止显示滚动条
set guioptions-=l
set guioptions-=L
set guioptions-=r
set guioptions-=R
" 禁止显示菜单和工具条
set guioptions-=m
set guioptions-=T
" 设置状态行-----------------------------------
" 设置状态行显示常用信息
" %F 完整文件路径名
" %m 当前缓冲被修改标记
" %m 当前缓冲只读标记
" %h 帮助缓冲标记
" %w 预览缓冲标记
" %Y 文件类型
" %b ASCII值
" %B 十六进制值
" %l 行数
" %v 列数
" %p 当前行数占总行数的的百分比
" %L 总行数
" %{...} 评估表达式的值,并用值代替
" %{"[fenc=".(&fenc==""?&enc:&fenc).((exists("+bomb") && &bomb)?"+":"")."]"} 显示文件编码
" %{&ff} 显示文件类型
set statusline=%1*%F%m%r%h%w%=\
set statusline+=%2*\ %Y\ \|\
set statusline+=%3*%{\"\".(\"\"?&enc:&fenc).((exists(\"+bomb\")\ &&\ &bomb)?\"+\":\"\").\"\"}\
set statusline+=%4*[%l:%v]\
set statusline+=%5*%p%%\ \|\
set statusline+=%6*%LL\
hi User1 cterm=none ctermfg=gray ctermbg=darkgray
hi User2 cterm=none ctermfg=darkgrey ctermbg=gray
hi User3 cterm=bold ctermfg=darkgrey ctermbg=gray
hi User4 cterm=bold ctermfg=yellow ctermbg=gray
hi User5 cterm=none ctermfg=darkgrey ctermbg=gray
hi User6 cterm=none ctermfg=darkgrey ctermbg=gray
" 设置tab栏-------------------------------------------------
" 选中的tab颜色
hi SelectTabLine term=Bold cterm=Bold ctermfg=DarkYellow ctermbg=LightGray
hi SelectPageNum cterm=None ctermfg=DarkRed ctermbg=LightGray
hi SelectWindowsNum cterm=None ctermfg=DarkCyan ctermbg=LightGray
" 未选中状态的tab
hi NormalTabLine cterm=None ctermfg=Gray ctermbg=DarkGray
hi NormalPageNum cterm=None ctermfg=Gray ctermbg=DarkGray
hi NormalWindowsNum cterm=None ctermfg=Gray ctermbg=DarkGray
" tab栏背景色
hi TabLineFill term=reverse ctermfg=5 ctermbg=7 guibg=#6c6c6c
function MyTabLine()
let s = ''
for i in range(tabpagenr('$'))
" select the highlighting
let hlTab = ''
let select = 0
if i + 1 == tabpagenr()
let hlTab = '%#SelectTabLine#'
let s ..= hlTab . '⎡%#SelectPageNum#%T' . (i + 1) . hlTab
let select = 1
else
let hlTab = '%#NormalTabLine#'
let s ..= hlTab . "⎡%#NormalTabLine#%T" . (i + 1) . hlTab
endif
" the label is made by MyTabLabel()
let s .= ' %<%{MyTabLabel(' . (i + 1) . ', ' . select . ')} '
"追加窗口数量
let wincount = tabpagewinnr(i + 1, '$')
if wincount > 1
if select == 1
let s .= "%#SelectWindowsNum#" . wincount
else
let s .= "%#NormalWindowsNum#" . wincount
endif
endif
let s .= hlTab . "⎦"
endfor
" after the last tab fill with TabLineFill and reset tab page nr
let s ..= '%#TabLineFill#%T'
" right-align the label to close the current tab page
if tabpagenr('$') > 1
let s ..= '%=%#TabLine#%999X░X'
endif
return s
endfunction
" Now the MyTabLabel() function is called for each tab page to get its label. >
function MyTabLabel(n, select)
let label = ''
let buflist = tabpagebuflist(a:n)
for bufnr in buflist
if getbufvar(bufnr, "&modified")
let label = '+'
break
endif
endfor
let winnr = tabpagewinnr(a:n)
let name = bufname(buflist[winnr - 1])
if name == ''
if &buftype == 'quickfix'
let name = '[Quickfix List]'
else
let name = '[No Name]'
endif
else
let name = fnamemodify(name, ':t')
endif
let label .= name
return label
endfunction
set tabline=%!MyTabLine()
" 设置netrw-------------------------------------
let g:netrw_banner = 0 " 设置是否显示横幅
let g:netrw_liststyle = 3 " 设置目录列表样式:树形
let g:netrw_browse_split = 4 " 在之前的窗口编辑文件
let g:netrw_altv = 1 " 水平分割时,文件浏览器始终显示在左边
let g:netrw_winsize = 20 " 设置文件浏览器窗口宽度为25%
let g:netrw_list_hide= '^\..*' " 不显示隐藏文件 用 a 键就可以显示所有文件、 隐藏匹配文件或只显示匹配文件
" 自动打开文件浏览器
" augroup ProjectDrawer
" autocmd!
" autocmd VimEnter * :Vexplore
" augroup END
nnoremap <SPACE>ft :Lexplore<CR> " 打开或关闭目录树
"-----------------------------------------------"
" 自定义功能 "
"-----------------------------------------------"
" 快捷键绑定-------------------------
let mapleader='\'
" 窗口移动快捷键
noremap <TAB>w <C-w>w
noremap <TAB><left> <C-w><left>
noremap <TAB><right> <C-w><right>
noremap <TAB><up> <C-w><up>
noremap <TAB><down> <C-w><down>
" 使用方向键切换buffer
noremap <Leader><left> :bp<CR>
noremap <Leader><right> :bn<CR>
" 使用方括号切换tab
noremap <Leader>] :tabnext<CR>
noremap <Leader>[ :tabprevious<CR>
" 使用 \ + s 保存, \ + q 退出
noremap <Leader>s :w<CR>
noremap <Leader>q :q<CR>