自己用的Vim配置(千万注意安装ycm不要用anaconda的Python要用Python官网下载的Python【usr/local/bin】)

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"""""新文件标题
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"新建.c,.h,.sh,.java文件,自动插入文件头
autocmd BufNewFile *.cpp,*.[ch],*.sh,*.py,*.java exec ":call SetTitle()"
""定义函数SetTitle,自动插入文件头
func SetTitle() "如果文件类型为.sh文件 if &filetype == 'sh' call setline(1,"\#!/bin/bash") call append(line("."),"\#########################################################################") call append(line(".")+1, "\# File Name:".expand("%"))call append(line(".")+2, "\# Author:Donny")call append(line(".")+3, "\# Email:wdm666666@gmail.com")call append(line(".")+4, "\# Created Time: ".strftime("%c"))call append(line(".")+5, "\#########################################################################")call append(line(".")+6, "")elseif &filetype == 'py'call setline(1,"\#!/usr/bin/env python")call append(line("."),"\#########################################################################")call append(line(".")+1, "\# File Name: ".expand("%"))call append(line(".")+2, "\# Author:Donny")call append(line(".")+3, "\# Email:wdm666666@gmail.com")call append(line(".")+4, "\# Created Time: ".strftime("%c"))call append(line(".")+5, "\#########################################################################")call append(line(".")+6, "")elsecall setline(1, "/*#########################################################################") call append(line("."), "\# File Name: ".expand("%")) call append(line(".")+1, "\# Author:Donny")call append(line(".")+2, "\# Email:wdm666666@gmail.com")call append(line(".")+3, "\# Created Time: ".strftime("%c"))call append(line(".")+4, "#########################################################################*/")call append(line(".")+5, "")endifif &filetype == 'cpp'call append(line(".")+6, "#include <bits/stdc++.h>")call append(line(".")+7, "using namespace std;")call append(line(".")+8, "")endifif &filetype == 'c'call append(line(".")+6, "#include<stdio.h>")call append(line(".")+7, "")endif"新建文件后,自动定位到文件末尾
endfunc
autocmd BufNewFile * normal G" ===
" === Auto load for first time uses
" ===
if empty(glob('~/.vim/autoload/plug.vim'))silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs\ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vimautocmd VimEnter * PlugInstall --sync | source $MYVIMRC
endif"按r编译运行
map r :call CompileRunGcc()<CR>
func! CompileRunGcc()exec "w"if &filetype == 'c'exec "!g++ % -o %<"exec "!time ./%<"elseif &filetype == 'cpp'exec "!g++ % -o %<"exec "!time ./%<"elseif &filetype == 'java'exec "!javac %"exec "!time java %<"elseif &filetype == 'sh':!time sh %elseif &filetype == 'python'silent! exec "!clear"exec "!time python %"elseif &filetype == 'html'exec "!firefox % &"elseif &filetype == 'markdown'exec "MarkdownPreview"elseif &filetype == 'vimwiki'exec "MarkdownPreview"endif
endfunc
"C,C++的调试map <F8> :call Rungdb()<CR>func! Rungdb()exec "w"exec "!g++ % -g -o %<"exec "!gdb ./%<"endfunc
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
""实用设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"设置LEADER键为空格
let mapleader=" "
"插件旧版本的一个东西
set nocompatible
"智能大小写
set smartcase
"自动切换工作目录
set autochdir
"打开文件恢复到原来打开的位置
au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
" 设置当文件被改动时自动载入
set autoread
"显示行尾有多余的空格(包括 Tab 键)
set listchars=tab:»■,trail:■
set list
"代码补全
set completeopt=preview,menu
"允许插件
filetype plugin on
"共享剪贴板
set clipboard=unnamed
"在底部显示,当前键入的指令
set showcmd
"从不备份
"set nobackup
"make 运行
:set makeprg=g++\ -Wall\ \ %
"自动保存
set autowrite
set ruler                   " 打开状态栏标尺
set cursorline              " 突出显示当前行
set magic                   " 设置魔术
" 设置在状态行显示的信息
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 spell spelllang=en_us
" 历史记录数
set history=1000
"禁止生成临时文件
set nobackup
set noswapfile
"搜索忽略大小写
set ignorecase
"搜索逐字符高亮
set hlsearch
set incsearch
"取消搜索高亮快捷键"
noremap <LEADER><CR> :nohlsearch<CR>
"行内替换
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
" 载入文件类型插件
filetype plugin on
" 为特定文件类型载入相关缩进文件
filetype indent on
filetype plugin 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"设置分屏快捷键
"禁用s快捷键"
map s <nop>
"sl:右sh:左sk:上sj:下"
map sl :set splitright<CR>:vsplit<CR>
map sh :set nosplitright<CR>:vsplit<CR>
map sk :set nosplitbelow<CR>:split<CR>
map sj :set splitbelow<CR>:split<CR>"设置分屏后光标移到方向
map . <C-w><C-w>"设置上下左右移动分屏大小
"map <up> :res +5<CR>
"map <down> :res -5<CR>
"map <left> :vertical resize-5<CR>
"map <right> :vertical resize+5<CR>
map <LEADER>k :res +5<CR>
map <LEADER>j :res -5<CR>
map <LEADER>h :vertical resize-5<CR>
map <LEADER>l :vertical resize+5<CR>"自动补全
:inoremap ( ()<ESC>i
:inoremap ) <c-r>=ClosePair(')')<CR>
:inoremap { {<CR>}<ESC>O
:inoremap } <c-r>=ClosePair('}')<CR>
":inoremap [ []<ESC>i
":inoremap ] <c-r>=ClosePair(']')<CR>
:inoremap " ""<ESC>i
:inoremap ' ''<ESC>i
function! ClosePair(char)if getline('.')[col('.') - 1] == a:charreturn "\<Right>"elsereturn a:charendif
endfunction
filetype plugin indent on
"打开文件类型检测, 加了这句才可以用智能补全
set completeopt=longest,menu
"自动补全命令时候使用菜单式匹配列表
set wildmenu
autocmd FileType ruby,eruby set omnifunc=rubycomplete#Complete
autocmd FileType python set omnifunc=pythoncomplete#Complete
autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
autocmd FileType html set omnifunc=htmlcomplete#CompleteTags
autocmd FileType css set omnifunc=csscomplete#CompleteCSS
autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
call plug#begin('~/.vim/plugged')Plug 'vim-airline/vim-airline'
Plug 'connorholyday/vim-snazzy'" Undo Tree
Plug 'mbbill/undotree/'" File navigation
Plug 'preservim/nerdtree'
Plug 'Xuyuanp/nerdtree-git-plugin'" Auto Complete
Plug 'ycm-core/YouCompleteMe'
"Plug 'neoclide/coc.nvim', {'branch': 'release'}" Other visual enhancement
Plug 'nathanaelkane/vim-indent-guides'
Plug 'itchyny/vim-cursorword'" Python
Plug 'vim-scripts/indentpython.vim'" Java Complete
Plug 'artur-shaik/vim-javacomplete2'call plug#end()" ===
" === UNDOTree
" ===
map ut :UndotreeToggle<CR>" ===
" === NERDTree
" ===
map tt :NERDTreeToggle<CR>
let NERDTreeMapOpenExpl = ""
let NERDTreeMapUpdir = ""
let NERDTreeMapUpdirKeepOpen = "l"
let NERDTreeMapOpenSplit = ""
let NERDTreeOpenVSplit = ""
let NERDTreeMapActivateNode = "i"
let NERDTreeMapOpenInTab = "o"
let NERDTreeMapPreview = ""
let NERDTreeMapCloseDir = "n"
let NERDTreeMapChangeRoot = "y"" ==
" == NERDTree-git
" ==
let g:NERDTreeGitStatusIndicatorMapCustom = {\ "Modified"  : "✹",\ "Staged"    : "✚",\ "Untracked" : "✭",\ "Renamed"   : "➜",\ "Unmerged"  : "═",\ "Deleted"   : "✖",\ "Dirty"     : "✗",\ "Clean"     : "✔︎",\ "Unknown"   : "?"\ }" ===
" === You Complete ME
" ===
nnoremap gd :YcmCompleter GoToDefinitionElseDeclaration<CR>
nnoremap g/ :YcmCompleter GetDoc<CR>
nnoremap gt :YcmCompleter GetType<CR>
nnoremap gr :YcmCompleter GoToReferences<CR>"javacomplete2 java自动补全
autocmd FileType java setlocal omnifunc=javacomplete#Complete" ===
" === Python-syntax
" ===
let g:python_highlight_all = 1
" let g:python_slow_sync = 0

Vim配置文件以及Vim插件相关推荐

  1. Vim配置文件vimrc入门介绍

    本文转载自:vim教程网 Vim入门级基础配置-Vim入门教程(1) 介绍Vim配置文件.vimrc,配置Vim显示行号.支持utf8中文不乱码.突出显示Vim当前行,设置高亮显示括号匹配和tab缩进 ...

  2. java vim ide_把VIM配置成IDE开发环境 | 学步园

    VIM常用命令 VIM命令图 VIM键盘布局图 VIM键盘布局英文 VIM键盘布局中文 将VIM配置成IDE(通过 VIM基本插件 和VIM配置文件) Ubuntu14下我的VIM IDE配置的效果图 ...

  3. 最好的vim配置文件 不需要下载插件(转)

    不好意思没找到原作者(转) 配置文件和所有插件下载: http://www.mediafire.com/?kgjy0dbdsxn 目地: 当初之所以发布此史上最强vim配置文件的更新版,是因为我要在好 ...

  4. vim配置文件收集(作为c/c++和脚本开发的环境)

    vim配置文件收集(作为c/c++和脚本开发的环境) - StamHe的专栏 - 博客频道 - CSDN.NET vim配置文件收集(作为c/c++和脚本开发的环境) 分类: Linux系统配置 20 ...

  5. 转载~vim配置文件

    转载-vim配置文件 转载自:小码哥的博客 花了很长时间整理的,感觉用起来很方便,共享一下. 我的vim配置主要有以下优点: 1.按F5可以直接编译并执行C.C++.java代码以及执行shell脚本 ...

  6. 强大的vim配置文件,让编程更随意

    花了很长时间整理的,感觉用起来很方便,共享一下. 我的vim配置主要有以下优点: 1.按F5可以直接编译并执行C.C++.java代码以及执行shell脚本,按"F8"可进行C.C ...

  7. 【转】强大的vim配置文件,让编程更随意

    原文地址:http://www.cnblogs.com/ma6174/archive/2011/12/10/2283393.html 花了很长时间整理的,感觉用起来很方便,共享一下. 我的vim配置主 ...

  8. vim学习、各类插件配置与安装

    vim学习.各类插件配置与安装 vim 插件 配置 1. vim学习 vim基础学习:根据网上流行基础文章<简明Vim练级攻略>,进阶书籍<vim实用技巧>.注:进阶书籍可以在 ...

  9. Vim 中文件目录浏览插件——NERD tree

    说明 :vim的插件NERDTree用于使得vim窗口分左右窗口显示的用法说明.其中,左侧为目录的树形界面,简称为NERDTree界面,右则为vim界面. 一.配置步骤 下载地址: http://ww ...

最新文章

  1. IBATIS错误汇总
  2. console 程序随系统启动及隐藏当前程序窗口
  3. 如何基于 Notadd 构建 API (Laravel 写 API)
  4. php imap配置,怎么为PHP编译imap扩展?
  5. python矩阵操作_Python中的矩阵操作
  6. 博客园编辑器为Markdown时改变图片大小
  7. 史上最全!作为一名Java面试者你应该知道的
  8. CentOS6.5--修改系统语言为中文或英文,文件夹切换语言
  9. oracle character set mismatch,EntityFramework查询oracle数据库时报ora-12704: character set mismatch...
  10. 大数据揭秘区块链人才大迁徙:那个你身边悄悄离职的人去哪儿了?
  11. win2003 64 php,win2003 x64 apache php 开发环境配置日志
  12. 常用的大数据技术有哪些?
  13. 003@ uboot第二阶段分析(下)
  14. Jflash 命令行 烧录程序 注意事项
  15. 2013计算机应用基础试题及答案,2013年电大计算机应用基础试题及参考答案
  16. 基于matlab的磁悬浮控制系统,基于MatLab的磁悬浮球控制系统的设计
  17. python爬虫学习笔记2模拟登录与数据库
  18. 两种不同算法的AMSR-2产品下载方法
  19. 银行数字化转型导师坚鹏:银行行长如何进行数字化转型
  20. 用HTML+CSS做一个QQ,老马看到都慌了

热门文章

  1. vivox21升级鸿蒙,vivo X21刷机教程_vivo X21A卡刷升级更新官方系统包
  2. 网站推广-----100个基本推广方法
  3. 广发样样行刷卡5大禁忌
  4. verilog学习 | HDLBits:在线学习答案
  5. 淘宝复制别人店宝贝相关问题
  6. 药用辅料数据查询网站系统-药品辅料数据
  7. Material Design之主题Theme
  8. 三年级学生写数学用计算机算,沪教版三年级数学下册使用计算器计算检测题
  9. 【uni-app】详细总结uni-app基础知识和如何配置项目,运行到模拟器和小程序端,附案例和图(建议收藏)
  10. 电影购票系统(小小影院),SpringBoot+vue 结构启动项目(带源码,不收费)