0
点赞
收藏
分享

微信扫一扫

vimrc的一些配置

浮游图灵 2022-04-26 阅读 229
vim

gvim 的配置记录

"" Source your .vimrc set scrolloff=5
" 搜索相关 
 
colors desert
" set guifontwide=Fixedsys:h18
set encoding=utf-8
" set guifontset=  
" set guifont=Consolas:h12
" set guifontwide=Microsoft\ Yahei:h12
" set guifont=YaHei\ Consolas\ Hybrid\ 18
set lbr " 

set guifont=Consolas:h16 " 设置字体颜色
au GUIEnter * simalt ~x          "启动时窗口最大化

" 开启实时搜索
set incsearch
" 搜索时大小写不敏感
set ignorecase
syntax enable


" 设置 tab缩进"
set encoding=utf-8



"支持使用 退格键删除"
set backspace=indent,eol,start



set tabstop=4 " 设置Tab长度为4空格
set shiftwidth=4 " 设置自动缩进长度为4空格
set autoindent " 继承前一行的缩进方式,适用于多行注释
set smartindent
set laststatus=2

"显示命令"
set showcmd

set number
syntax enable
set ignorecase
set incsearch


" set timeoutlen=350


" show match 
set showmatch

" set timeoutlen=500


set clipboard+=unnamed

set whichwrap=h,l,b,s,<,>,[,]


"关闭讨厌的铃声

set vb t_vb=

 


filetype plugin indent on

cnoremap X x
cnoremap QQ  x

cnoremap qq  x
" 按下 l 会自动切换为! 
cnoremap q; q!
cnoremap q' q!
cnoremap ql q!
cnoremap ww wq
" inoremap <C-l> <Right>
" inoremap <C-h> <Left>
" inoremap <C-j> <Down>
" inoremap <C-K> <Up>
" ctrl b 删除
" inoremap <C-b> <backspace>
" 行首行尾
" inoremap <C-a> <Home>
" inoremap <C-e> <END>
		


" inoremap <cr><space><cr>  ,,,,<esc>

" f 自带其他功能,就不覆盖这个键了
" noremap f 0
" noremap t $
" noremap - 0
" noremap = $
" noremap + g_

"按caplock 容易删行,重复两次自动撤销
" noremap JJ u
" noremap K u


" noremap <C-l> <Right>
" noremap <C-h> <Left>
" noremap <C-j> <Down>
" noremap <C-K> <Up>

" noremap i $a
" noremap a $i


" 编译代码命令

func! CompileCodeFile() 
	exec "w"
	if &filetype == 'c'
		exec "!g++ % -o %<"
	elseif &filetype == 'cpp'
		 exec "!g++ % -o %<"
	endif    
		exec "!echo '-----------compile OK---------------'"
endfunc

func! RunCodeFile()
	exec "silent !echo '------------- runCode -------------------'"
	if &filetype == 'cpp'
		exec "!%:r"

	elseif &filetype == 'go'
		exec "go run !%:r"

	endif
endfunc

map <F8>  :call CompileCodeFile() <CR>
map <F9>  :call RunCodeFile()<CR>
map <F10> :call CompileCodeFile()<CR> :call  RunCodeFile()<CR>

" f10 运行 ,f9编译




" ctrl+n 可以代码补全"

filetype on



" js文件 设置Tab长度为2空格 
	
" if &filetype == 'js'
autocmd BufNewFile,BufRead *.js   set tabstop=2 
autocmd BufNewFile,BufRead *.js   set shiftwidth=2  " 设置自动缩进长度为4空格



" let g:python3_host_prog = expand('~/Miniconda/envs/neovim/bin/python3.7')


wsl 下的vim 的一些配置


let g:vimfiler_tre_opened_icon = get(g:, 'vimfiler_tree_opened_icon', '-')
let g:vimfiler_tree_closed_icon = get(g:, 'vimfiler_tree_closed_icon', '+')

set nu


"开启相关插件"
"侦测文件类型"
filetype on
"载入文件类型插件"
filetype plugin on
"为特定文件类型载入相关缩进文件"
filetype indent on

"当文件在外部被修改时,自动更新该文件"
set autoread

"激活鼠标的使用"
set mouse=a
set selection=exclusive
set selectmode=mouse,key

"保存全局变量"
set viminfo+=!

"带有如下符号的单词不要被换行分割"
set iskeyword+=_,$,@,%,#,-

"通过使用: commands命令,告诉我们文件的哪一行被改变过"
set report=0

"被分割的窗口间显示空白,便于阅读"
set fillchars=vert:\ ,stl:\ ,stlnc:\

"""""""""""""""""""""""""""""""""
"""=>字体和颜色<="""
"""""""""""""""""""""""""""""""""
"自动开启语法高亮"
syntax enable

"设置字体"
"set guifont=dejaVu\ Sans\ MONO\ 10
set guifont=Courier_New:h10:cANSI

"设置颜色"
"colorscheme desert

"高亮显示当前行"
set cursorline
hi cursorline guibg=#00ff00
hi CursorColumn guibg=#00ff00

"高亮显示普通txt文件(需要txt.vim脚本)"
au BufRead,BufNewFile *  setfiletype txt

"""""""""""""""""""""""""""""""
"""=>代码折叠功能<="""
"""""""""""""""""""""""""""""""
"激活折叠功能"
set foldenable
"set nofen(这个是关闭折叠功能)"

"设置按照语法方式折叠(可简写set fdm=XX)"
"有6种折叠方法:
"manual   手工定义折叠"
"indent   更多的缩进表示更高级别的折叠"
"expr     用表达式来定义折叠"
"syntax   用语法高亮来定义折叠"
"diff     对没有更改的文本进行折叠"
"marker   对文中的标志进行折叠"
set foldmethod=manual
"set fdl=0(这个是不选用任何折叠方法)"

"设置折叠区域的宽度"
"如果不为0,则在屏幕左侧显示一个折叠标识列
"分别用“-”和“+”来表示打开和关闭的折叠
set foldcolumn=0

"设置折叠层数为3"
setlocal foldlevel=3

"设置为自动关闭折叠"
set foldclose=all

"用空格键来代替zo和zc快捷键实现开关折叠"
"zo O-pen a fold (打开折叠)
"zc C-lose a fold (关闭折叠)
"zf F-old creation (创建折叠)
"nnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR>

"""""""""""""""""""""""""""""""""""
"""=>文字处理<="""
"""""""""""""""""""""""""""""""""""
"使用空格来替换Tab"
set expandtab

"设置所有的Tab和缩进为4个空格"
set tabstop=4

"设定<<和>>命令移动时的宽度为4"
set shiftwidth=4

"使得按退格键时可以一次删除4个空格"
set softtabstop=4
set smarttab

"缩进,自动缩进(继承前一行的缩进)"
"set autoindent 命令打开自动缩进,是下面配置的缩写
"可使用autoindent命令的简写,即“:set ai”和“:set noai”
"还可以使用“:set ai sw=4”在一个命令中打开缩进并设置缩进级别
set ai
set cindent

"智能缩进"
set si

"自动换行”
set wrap

"设置软宽度"
set sw=4

"行内替换"
set gdefault

""""""""""""""""""""""""""""""""""
"""=>Vim 界面<="""
""""""""""""""""""""""""""""""""""
"增强模式中的命令行自动完成操作"
set wildmenu

"显示标尺"
set ruler

"设置命令行的高度"
set cmdheight=1

"显示行数"
set nu

"不要图形按钮"
set go=

"在执行宏命令时,不进行显示重绘;在宏命令执行完成后,一次性重绘,以便提高性能"
set lz

"使回格键(backspace)正常处理indent, eol, start等"
set backspace=eol,start,indent

"允许空格键和光标键跨越行边界"
set whichwrap+=<,>,h,l

"设置魔术"
set magic

"关闭遇到错误时的声音提示"
"关闭错误信息响铃"
set noerrorbells

"关闭使用可视响铃代替呼叫"
set novisualbell

"高亮显示匹配的括号([{和}])"
set showmatch

"匹配括号高亮的时间(单位是十分之一秒)"
set mat=2

"光标移动到buffer的顶部和底部时保持3行距离"
set scrolloff=3

"搜索逐字符高亮"
set hlsearch
set incsearch

"搜索时不区分大小写"
"还可以使用简写(“:set ic”和“:set noic”)"
set ignorecase

"用浅色高亮显示当前行"
autocmd InsertLeave * se nocul
autocmd InsertEnter * se cul

"输入的命令显示出来,看的清楚"
set showcmd

""""""""""""""""""""""""""""""""""""
"""=>编码设置<="""
""""""""""""""""""""""""""""""""""""
"设置编码"
set encoding=utf-8
set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936

"设置文件编码"
set fileencodings=utf-8

"设置终端编码"
set termencoding=utf-8

"设置语言编码"
set langmenu=zh_CN.UTF-8
set helplang=cn

"""""""""""""""""""""""""""""
"""=>其他设置<="""
"""""""""""""""""""""""""""""
"开启新行时使用智能自动缩进"
set smartindent
set cin
set showmatch

"在处理未保存或只读文件的时候,弹出确认"
set confirm

"隐藏工具栏"
set guioptions-=T

"隐藏菜单栏"
set guioptions-=m

"置空错误铃声的终端代码"
set vb t_vb=

"显示状态栏(默认值为1,表示无法显示状态栏)"
set laststatus=2

"状态行显示的内容"
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}

"粘贴不换行问题的解决方法"
set pastetoggle=<F9>

"设置背景颜色"
set background=dark

"文件类型自动检测,代码智能补全"
set completeopt=longest,preview,menu

"共享剪切板"
set clipboard+=unnamed
" set clipboard=unnamedplus



"从不备份"
set nobackup
set noswapfile

"自动保存"
set autowrite


"wsl vim settings


" WSL yank support
let s:clip = '/mnt/c/Windows/System32/clip.exe'  " change this path according to your mount point
if executable(s:clip)
    augroup WSLYank
        autocmd!
        autocmd TextYankPost * if v:event.operator ==# 'y' | call system(s:clip, @0) | endif
    augroup END
endif





举报

相关推荐

0 条评论