我的vim配置

本文介绍了作者的vim配置,包括关闭兼容模式、开启文件类型识别、安装并配置Vundle管理插件、设置vim-airline增强界面、映射快捷键以及自定义文件头插入。此外,还涉及了NERDTree、ctags、python-mode等多个实用插件的配置。
部署运行你感兴趣的模型镜像

set nocompatible
“关闭兼容模式 和 老版的vi不兼容”
filetype on
""识别不同的文件 比如java python就会语法高亮

set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

" 这里根据自己需要的插件来设置,以下是我的配置 "
"
" YouCompleteMe:语句补全插件

" github 仓库中的插件 "
Plugin ‘VundleVim/Vundle.vim’

Plugin ‘vim-airline/vim-airline’
“vim-airline配置:优化vim界面”
"let g:airline#extensions#tabline#enabled = 1
" airline设置
" 显示颜色
set t_Co=256
set laststatus=2
" 使用powerline打过补丁的字体
let g:airline_powerline_fonts = 1
" 开启tabline
let g:airline#extensions#tabline#enabled = 1
" tabline中当前buffer两端的分隔字符
let g:airline#extensions#tabline#left_sep = ’ ’
" tabline中未激活buffer两端的分隔字符
let g:airline#extensions#tabline#left_alt_sep = ’ ’
" tabline中buffer显示编号
let g:airline#extensions#tabline#buffer_nr_show = 1
" 映射切换buffer的mT
nnoremap ]b :bp
nnoremap [b :bn
" 映射num到num buffer
map ,1 :b 1
map ,2 :b 2
map ,3 :b 3
map ,4 :b 4
map ,5 :b 5
map ,6 :b 6
map ,7 :b 7
map ,8 :b 8
map ,9 :b 9
“关闭指定的buffer”
map ,d1 :bd 1
map ,d2 :bd 2
map ,d3 :bd 3
map ,d4 :bd 4
map ,d5 :bd 5
map ,d6 :bd 6
map ,d8 :bd 8
map ,d7 :bd 7
map ,d9 :bd 9
“关闭当前的buffer”
map bd :bdelect

" vim-scripts 中的插件 "
Plugin ‘ctags.vim’
"Plugin ‘taglist.vim’
"ctags 配置:F3快捷键显示程序中的各种tags,包括变量和函数等。
"map :TlistToggle
"let Tlist_Use_Right_Window=1
"let Tlist_Show_One_File=1
"let Tlist_Exit_OnlyWindow=1
"let Tlist_WinWidt=25暂时用不了等以后来解决

Plugin ‘The-NERD-tree’
"NERDTree 配置:F4快捷键显示当前目录树
map :NERDTreeToggle
let NERDTreeWinSize=25

Plugin ‘indentLine.vim’

Plugin ‘delimitMate.vim’

Plugin ‘w0ng/vim-hybrid’

"启动界面 改变
Plugin ‘mhinz/vim-startify’

"python -mode
Plugin ‘klen/python-mode’

" 非 github 仓库的插件"
" Plugin ‘git://git.wincent.com/command-t.git’
" 本地仓库的插件 "

call vundle#end()

“”"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
“”""“新文件标题
“””"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
“新建.c,.h,.sh,.java文件,自动插入文件头
autocmd BufNewFile .cpp,.[ch],.sh,.java exec “:call SetTitle()”
““定义函数SetTitle,自动插入文件头
func SetTitle()
“如果文件类型为.sh文件
if &filetype == ‘sh’
call setline(1, “##########################################################################”)
call append(line(”.”), “# File Name: “.expand(”%”))
call append(line(”.”)+1, “# Author: ligouhai”)
call append(line(".")+2, “# mail: amoscykl980629@163.com”)
call append(line(".")+3, “# Created Time: “.strftime(”%c”))
call append(line(".")+4, “#########################################################################”)
call append(line(".")+5, “#!/bin/zsh”)
call append(line(".")+6, “PATH=/home/edison/bin:/home/edison/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/work/tools/gcc-3.4.5-glibc-2.3.6/bin”)
call append(line(".")+7, “export PATH”)
call append(line(".")+8, “”)
else
call setline(1, “/*************************************************************************”)
call append(line("."), " > File Name: “.expand(”%"))
call append(line(".")+1, " > Author: amoscykl")
call append(line(".")+2, " > Mail: amoscykl@163.com “)
call append(line(”.")+3, " > Created Time: “.strftime(”%c"))
call append(line(".")+4, " ************************************************************************/")
call append(line(".")+5, “”)
endif
if &filetype == ‘cpp’
call append(line(".")+6, “#include”)
call append(line(".")+7, “using namespace std;”)
call append(line(".")+8, “”)
endif
if &filetype == ‘c’
call append(line(".")+6, “#include<stdio.h>”)
call append(line(".")+7, “”)
endif
if &filetype == ‘java’
call append(line(".")+6,“public class “.expand(”%”))
call append(line(".")+7,"{")
call append(line(".")+8," public static void main(String[] args)")
call append(line(".")+9," {")
call append(line(".")+10,"")
call append(line(".")+11,"")
call append(line(".")+12,"")
call append(line(".")+13," }")
call append(line(".")+14,"}")

	endif
"新建文件后,自动定位到文件末尾
autocmd BufNewFile * normal G

endfunc
“”""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
“键盘命令
“””"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
:command! -nargs=1 Rename let tpname = expand(’%:t’) | saveas | edit | call delete(expand(tpname))

"实现使用Rename filename 来重命名文件
"实现快速的保存和查找 leader 可以通过 let mapleader = “,”
let mapleader = “,”
nmap w :w!

" 映射全选+复制 ctrl+a
map ggVGY
map! ggVGY
map gg=G
" 下面这个想实现的在v模式下 选择需要复制的文本用ctrl进行复制
" 然后可以实现在系统中进行粘贴 但所不知道为什么没有成功 应该是 那个插件冲突了
"暂时还不知道是什么阿:
" ---------------------------------------------------------------------------------------------------------
" 选中状态下 Ctrl+c 复制
vmap "+y

" 插入模式下实现光标移动
inoremap o
inoremap
inoremap
inoremap
inoremap
inoremap
inoremap

nmap wk :resize +3
nmap wj :resize -3
nmap wh :vertical resize -3
nmap wl :vertical resize +3

“”"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Quickly Run
“”"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
map :call CompileRunGcc()

func! CompileRunGcc()
exec “w”
if &filetype == ‘c’
exec ‘!g++ % -o %<’
exec ‘!time ./%<’
elseif &filetype == ‘cpp’
exec ‘!g++ % -o %<’
exec ‘!time ./%<’
elseif &filetype == ‘python’
exec ‘!time python3 %’
elseif &filetype == ‘sh’
:!time bash %
elseif &filetype == ‘java’
exec “!javac %”
exec “!java %<”
endif
endfunc

“”""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
““实用设置
“”””"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 设置当文件被改动时自动载入
set autoread
" quickfix模式
autocmd FileType c,cpp map :w:make
"代码补全
set completeopt=preview,menu
"允许插件
filetype plugin on
"共享剪贴板
set clipboard=unnamed
"从不备份
set nobackup
"make 运行
:set makeprg=g++\ -Wall\ \ %
"自动保存
set autowrite
set ruler " 打开状态栏标尺
set cursorline " 突出显示当前行
set magic " 设置魔术
set guioptions-=T " 隐藏工具栏
set guioptions-=m " 隐藏菜单栏
"set statusline=\ %<%F[%1*%M%%n%R%H]%=\ %y\ %0(%{&fileformat}\ %{&encoding}\ %c:%l/%L%)
" 设置在状态行显示的信息
set foldcolumn=0
set foldmethod=indent
set foldlevel=3
set foldenable " 开始折叠
" 不要使用vi的键盘模式,而是vim自己的
set nocompatible
" 语法高亮
set syntax=on
" 去掉输入错误的提示声音
set noeb
" 在处理未保存或只读文件的时候,弹出确认
set confirm
" 自动缩进
set autoindent
set cindent
" Tab键的宽度
set tabstop=4
" 统一缩进为4
set softtabstop=4
set shiftwidth=4
" 不要用空格代替制表符
set noexpandtab
" 在行和段开始处使用制表符
set smarttab
" 显示行号
set number
" 历史记录数
set history=1000
"禁止生成临时文件
set nobackup
set noswapfile
"搜索忽略大小写
set ignorecase
"搜索逐字符高亮
set hlsearch
set incsearch
"行内替换
set gdefault
“编码设置
set enc=utf-8
set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
“语言设置
set langmenu=zh_CN.UTF-8
set helplang=cn
" 我的状态行显示的内容(包括文件类型和解码)
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(”%d/%m/%y\ -\ %H:%M”)}
set statusline=[%F]%y%r%m%
%=[Line:%l/%L,Column:%c][%p%%]
" 总是显示状态行
set laststatus=2
" 命令行(在状态行下)的高度,默认为1,这里是2
set cmdheight=2
" 侦测文件类型
filetype on
" 载入文件类型插件

syntax enable
set background=dark
:colorscheme hybrid
" 修改配色

filetype plugin on
" 为特定文件类型载入相关缩进文件
filetype indent on
" 保存全局变量
set viminfo+=!
" 带有如下符号的单词不要被换行分割
set iskeyword+=_,$,@,%,#,-
" 字符间插入的像素行数目
set linespace=0
" 增强模式中的命令行自动完成操作
set wildmenu
" 使回格键(backspace)正常处理indent, eol, start等
set backspace=2
" 允许backspace和光标键跨越行边界
set whichwrap+=<,>,h,l
" 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)
set mouse=a
set selection=exclusive
set selectmode=mouse,key
" 通过使用: commands命令,告诉我们文件的哪一行被改变过
set report=0
" 在被分割的窗口间显示空白,便于阅读
set fillchars=vert:\ ,stl:\ ,stlnc:
" 高亮显示匹配的括号
set showmatch
" 匹配括号高亮的时间(单位是十分之一秒)
set matchtime=1
" 光标移动到buffer的顶部和底部时保持3行距离
set scrolloff=3
" 为C程序提供自动缩进
set smartindent
" 高亮显示普通txt文件(需要txt.vim脚本)
au BufRead,BufNewFile * setfiletype txt
"自动补全
:inoremap ( ()i
:inoremap ) =ClosePair(’)’)
":inoremap { {}O
":inoremap } =ClosePair(’}’)
:inoremap [ []i
:inoremap ] =ClosePair(’]’)
:inoremap " ""i
:inoremap ’ ‘‘i
function! ClosePair(char)
if getline(’.’)[col(’.’) - 1] == a:char
return “<Right>”
else
return a:char
endif
endfunction
filetype plugin indent on
"打开文件类型检测, 加了这句才可以用智能补全
set completeopt=longest,menu

hi Normal ctermfg=252 ctermbg=none
“”"""""""""""""""""""""""""""""""""""""""""""

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值