linux下的.vimrc

为了能够复制粘贴到外面,需要下载gvim,可以自行下载。

我的插件管理是用vim-plug来管理的

下载命令

curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

然后在vimrc中添加如下代码段

call plug#begin()
"""""中间放插件""""

call plug#end()

在中间放置需要的插件就可以了.

vim-plug管理插件时,只需要加入上面在代码段中加入需要的插件命(如下),然后打开终端输入vim,在按:输入,PlugInstall,就可以完成插件安装。

我自己在使用的一些插件。

 neadtree  管理目录用,我把快捷键设置成F3,可以让它开启或关闭

    Plug 'scrooloose/nerdtree'

 nerdcommenter  代码多行注释用的,还是挺不错的,按住 \+c+space 就可以注释与反注释了

    Plug 'ddollar/nerdcommenter'

 airline以及主题

    Plug 'vim-airline/vim-airline'
    Plug 'vim-airline/vim-airline-themes'

 airline使用前需要安装powerline字体

安装方法如下

# clone
git clone https://github.com/powerline/fonts.git --depth=1
# install
cd fonts
./install.sh
# clean-up a bit
cd ..
rm -rf fonts

airline的主题目录如下,可以选择自己想要的主题

~/.vim/plugged/vim-airline-themes/autoload/airline/themes

以下是我的觉得比较好看的主题。

aurora.vim         base16_eighties.vim  dracula.vim     onedark.vim     silver.vim 
badcat.vim         base16_isotope.vim   hybridline.vim  papercolor.vim  term.vim
badwolf.vim        base16_pop.vim       minimalist.vim  peaksea.vim     understated.vim
base16_colors.vim  bubblegum.vim        molokai.vim     ravenpower.vim  vice.vim
base16color.vim    deus.vim             night_owl.vim   raven.vim       wombat.vim

其他的主题就被我删了。

现在我再用的vice和tomorrow主题,我认为还是蛮好看的。

只要在.vimrc中添加

let g:airline_theme="vice"

就可以了。

最后是完整的.vimrc,我分成了有插件和没有插件两份

(无插件)

"不要使用vi的键盘模式,而是vim自己的
set nocompatible
"共享剪贴板  
set clipboard =unnamed,unnamedplus
" 语法高亮
syntax on
hi Normal     cterm=NONE ctermfg=White             gui=bold guifg=#ffffff
hi Constant   cterm=NONE ctermfg=LightCyan       gui=NONE guifg=#00ffff
inoremap ' ''<ESC>i
inoremap " ""<ESC>i
inoremap ( ()<ESC>i
inoremap [ []<ESC>i
inoremap { {<CR>}<ESC>O
inoremap ) <c-r>=ClosePair(')')<CR>
inoremap } <c-r>=ClosePair('}')<CR>
inoremap ] <c-r>=ClosePair(']')<CR>
function! ClosePair(char)
    if getline('.')[col('.') - 1] == a:char
        return "\<Right>"
    else
        return a:char
    endif
endfunction
filetype plugin indent on 
""""""""""""""""""""""""""""""""""键盘设置""""""""""""""""""""""""""""""""""""
" F2 行号开关,用于鼠标复制代码用
" 为方便复制,用<F2>开启/关闭行号显示:
function! HideNumber()
  if(&relativenumber == &number)
    set relativenumber! number!
  elseif(&number)
    set number!
  else
    set relativenumber!
  endif
  set number?
endfunc
nnoremap <F2> :call HideNumber()<CR>

"F9编译"
let g:syntastic_cpp_compiler_options = ' -std=c++11 -stdlib=libc++'
map <F9> :call CR()<CR>
func! CR()
exec "w"
exec "!g++ % -o %<"
exec "! ./%<"
endfunc
""""""""""""""""""""""""""""""""""显示""""""""""""""""""""""""""""""""""""
"设置编码"
set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8
set fileencodings=ucs-bom,utf-8,cp936
set fileencoding=utf-8
" 允许backspace和光标键跨越行边界
set whichwrap=<,>,[,],h,l
"显示行号"
set nu
"当前行"
set cursorline
"使用鼠标"
set mouse=a
set selection=exclusive
set selectmode=mouse,key
set listchars=tab:>-,trail:-
" 显示中文帮助
if version >= 603
    set helplang=cn
    set encoding=utf-8
endif
set magic                   " 设置魔术
set guioptions-=T           " 隐藏工具栏
set guioptions-=m           " 隐藏菜单栏
"总是显示状态栏"
set laststatus=2
" 高亮显示匹配的括号
set showmatch
" 匹配括号高亮的时间(单位是十分之一秒)
hi MatchParen ctermbg=blue guibg=lightblue
set matchtime=5
"显示光标当前位置"
set ruler
" 我的状态行显示的内容(包括文件类型和解码)
set statusline=[%F]%y%r%m%*%=[Line:%l/%L,Column:%c][%p%%]
set cmdheight=2
""""""""""""""""""""""""""""""""""使用""""""""""""""""""""""""""""""""""""
"自动缩进
set autoindent     ""自动缩进
set cindent        ""以C语言的方式缩进
set shiftwidth=4   ""设置自动缩进的空格数量
set softtabstop=4  ""tab键的实际占有空格数,统一缩进
set tabstop=4      ""设置tab键的空格数
set smarttab       ""在行和段开始处使用制表符
"代码补全 
set completeopt=preview,menu 
"从不备份  
set nobackup
"允许插件  
" 侦测文件类型
filetype on
" 载入文件类型插件
filetype plugin on
" 保存全局变量
set viminfo+=!
" 带有如下符号的单词不要被换行分割
set iskeyword+=_,$,@,%,#,-
" 字符间插入的像素行数目
set linespace=0
" 增强模式中的命令行自动完成操作
set wildmenu
" 使回格键(backspace)正常处理indent, eol, start等
set backspace=2
" 通过使用: commands命令,告诉我们文件的哪一行被改变过
set report=0
" 在被分割的窗口间显示空白,便于阅读
set fillchars=vert:\ ,stl:\ ,stlnc:\
" 光标移动到buffer的顶部和底部时保持3行距离
set scrolloff=3
"禁止生成临时文件
set nobackup
set noswapfile
" 设置当文件被改动时自动载入
set autoread
"自动保存
set autowrite
"允许插件  
filetype plugin on
" 历史记录数
set history=1000
" 在处理未保存或只读文件的时候,弹出确认
set confirm
"搜索忽略大小写
set ignorecase
"搜索逐字符高亮
set hlsearch
set incsearch
"行内替换
set gdefault
" 相对行号: 行号变成相对,可以用 nj/nk 进行跳转
set relativenumber number
au FocusLost * :set norelativenumber number
au FocusGained * :set relativenumber
" 插入模式下用绝对行号, 普通模式下用相对
autocmd InsertEnter * :set norelativenumber number
autocmd InsertLeave * :set relativenumber
" 复制选中区到系统剪切板中
vnoremap <leader>y "+y
" 打开自动定位到最后编辑的位置, 需要确认 .viminfo 当前用户可写
if has("autocmd")
  au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
endif
"""""""""""""""""""""""""""""""""新文件标题""""""""""""""""""""""""""""""""""""
"新建.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       : Jiaaaaaaaqi") 
        call append(line(".")+2, "\# Created Time : ".strftime("%c")) 
        call append(line(".")+3, "\###############################################################") 
        call append(line(".")+4, "\#!/bin/bash") 
    else 
        call setline(1, "/***************************************************************") 
        call append(line("."), "    > File Name    : ".expand("%")) 
        call append(line(".")+1, "    > Author       : Jiaaaaaaaqi") 
        call append(line(".")+2, "    > Created Time : ".strftime("%c")) 
        call append(line(".")+3, " ***************************************************************/") 
        call append(line(".")+4, "")
    endif
    if &filetype == 'cpp'
        call append(line(".")+5, "#include <map>")
        call append(line(".")+6, "#include <set>")
        call append(line(".")+7, "#include <list>")
        call append(line(".")+8, "#include <ctime>")
        call append(line(".")+9, "#include <cmath>")
        call append(line(".")+10, "#include <stack>")
        call append(line(".")+11, "#include <queue>")
        call append(line(".")+12, "#include <cfloat>")
        call append(line(".")+13, "#include <string>")
        call append(line(".")+14, "#include <vector>")
        call append(line(".")+15, "#include <cstdio>")
        call append(line(".")+16, "#include <bitset>")
        call append(line(".")+17, "#include <cstdlib>")
        call append(line(".")+18, "#include <cstring>")
        call append(line(".")+19, "#include <iostream>")
        call append(line(".")+20, "#include <algorithm>")
        call append(line(".")+21, "#define  lowbit(x)  x & (-x)")
        call append(line(".")+22, "#define  mes(a, b)  memset(a, b, sizeof a)")
        call append(line(".")+23, "#define  fi         first")
        call append(line(".")+24, "#define  se         second")
        call append(line(".")+25, "#define  pii        pair<int, int>")
        call append(line(".")+26, "")
        call append(line(".")+27, "typedef unsigned long long int ull;")
        call append(line(".")+28, "typedef long long int ll;")
        call append(line(".")+29, "const int    maxn = 1e5 + 10;")
        call append(line(".")+30, "const int    maxm = 1e5 + 10;")
        call append(line(".")+31, "const ll     mod  = 1e9 + 7;")
        call append(line(".")+32, "const ll     INF  = 1e18 + 100;")
        call append(line(".")+33, "const int    inf  = 0x3f3f3f3f;")
        call append(line(".")+34, "const double pi   = acos(-1.0);")
        call append(line(".")+35, "const double eps  = 1e-8;")
        call append(line(".")+36, "using namespace std;")
        call append(line(".")+37, "")
        call append(line(".")+38, "int n, m;")
        call append(line(".")+39, "int cas, tol, T;")
        call append(line(".")+40, "")
        call append(line(".")+41, "int main() {")
        call append(line(".")+42, "")
        call append(line(".")+43, "    return 0;")
        call append(line(".")+44, "}")
        call append(line(".")+45, "")
    endif
endfunc 
    "新建文件后,自动定位到文件末尾
    autocmd BufNewFile * normal G
View Code

(有插件)

 

"不要使用vi的键盘模式,而是vim自己的
set nocompatible
"共享剪贴板  
set clipboard =unnamed,unnamedplus
" 语法高亮
syntax on
set cursorline
hi Normal     cterm=NONE ctermfg=White             gui=bold guifg=#ffffff
hi Constant   cterm=NONE ctermfg=LightCyan       gui=NONE guifg=#00ffff
inoremap ' ''<ESC>i
inoremap " ""<ESC>i
inoremap ( ()<ESC>i
inoremap [ []<ESC>i
inoremap { {<CR>}<ESC>O
inoremap ) <c-r>=ClosePair(')')<CR>
inoremap } <c-r>=ClosePair('}')<CR>
inoremap ] <c-r>=ClosePair(']')<CR>
function! ClosePair(char)
    if getline('.')[col('.') - 1] == a:char
        return "\<Right>"
    else
        return a:char
    endif
endfunction
filetype plugin indent on 
""""""""""""""""""""""""""""""""""键盘设置""""""""""""""""""""""""""""""""""""
" F2 行号开关,用于鼠标复制代码用
" 为方便复制,用<F2>开启/关闭行号显示:
function! HideNumber()
  if(&relativenumber == &number)
    set relativenumber! number!
  elseif(&number)
    set number!
  else
    set relativenumber!
  endif
  set number?
endfunc
nnoremap <F2> :call HideNumber()<CR>

"F9编译"
let g:syntastic_cpp_compiler_options = ' -std=c++11 -stdlib=libc++'
map <F9> :call CR()<CR>
func! CR()
exec "w"
exec "!g++ % -o %<"
exec "! ./%<"
endfunc
""""""""""""""""""""""""""""""""""显示""""""""""""""""""""""""""""""""""""
"设置编码"
set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8
set fileencodings=ucs-bom,utf-8,cp936
set fileencoding=utf-8
" 允许backspace和光标键跨越行边界
set whichwrap=<,>,[,],h,l
"显示行号"
set nu"使用鼠标"
set mouse=a
set selection=exclusive
set selectmode=mouse,key
set listchars=tab:>-,trail:-
" 显示中文帮助
if version >= 603
    set helplang=cn
    set encoding=utf-8
endif
set magic                   " 设置魔术
set guioptions-=T           " 隐藏工具栏
set guioptions-=m           " 隐藏菜单栏
"总是显示状态栏"
set laststatus=2
" 高亮显示匹配的括号
set showmatch
" 匹配括号高亮的时间(单位是十分之一秒)
hi MatchParen ctermbg=blue guibg=lightblue
set matchtime=5
"显示光标当前位置"
set ruler
" 我的状态行显示的内容(包括文件类型和解码)
set statusline=[%F]%y%r%m%*%=[Line:%l/%L,Column:%c][%p%%]
set cmdheight=2
""""""""""""""""""""""""""""""""""使用""""""""""""""""""""""""""""""""""""
"自动缩进
set autoindent     ""自动缩进
set cindent        ""以C语言的方式缩进
set shiftwidth=4   ""设置自动缩进的空格数量
set softtabstop=4  ""tab键的实际占有空格数,统一缩进
set tabstop=4      ""设置tab键的空格数
set smarttab       ""在行和段开始处使用制表符
"代码补全 
set completeopt=preview,menu 
"从不备份  
set nobackup
"允许插件  
" 侦测文件类型
filetype on
" 载入文件类型插件
filetype plugin on
" 保存全局变量
set viminfo+=!
" 带有如下符号的单词不要被换行分割
set iskeyword+=_,$,@,%,#,-
" 字符间插入的像素行数目
set linespace=0
" 增强模式中的命令行自动完成操作
set wildmenu
" 使回格键(backspace)正常处理indent, eol, start等
set backspace=2
" 通过使用: commands命令,告诉我们文件的哪一行被改变过
set report=0
" 在被分割的窗口间显示空白,便于阅读
set fillchars=vert:\ ,stl:\ ,stlnc:\
" 光标移动到buffer的顶部和底部时保持3行距离
set scrolloff=3
"禁止生成临时文件
set nobackup
set noswapfile
" 设置当文件被改动时自动载入
set autoread
"自动保存
set autowrite
"允许插件  
filetype plugin on
" 历史记录数
set history=1000
" 在处理未保存或只读文件的时候,弹出确认
set confirm
"搜索忽略大小写
set ignorecase
"搜索逐字符高亮
set hlsearch
set incsearch
"行内替换
set gdefault
" 相对行号: 行号变成相对,可以用 nj/nk 进行跳转
set relativenumber number
au FocusLost * :set norelativenumber number
au FocusGained * :set relativenumber
" 插入模式下用绝对行号, 普通模式下用相对
autocmd InsertEnter * :set norelativenumber number
autocmd InsertLeave * :set relativenumber
" 复制选中区到系统剪切板中
vnoremap <leader>y "+y
" 打开自动定位到最后编辑的位置, 需要确认 .viminfo 当前用户可写
if has("autocmd")
  au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
endif
""""""""""""""""""""""""""""""""""vim plug""""""""""""""""""""""""""""""""""""
call plug#begin()
"""""中间放插件""""
    Plug 'scrooloose/nerdtree'
    Plug 'ddollar/nerdcommenter'
    Plug 'vim-airline/vim-airline'
    Plug 'vim-airline/vim-airline-themes'
call plug#end()
""""""""""""""""""""""""""""""""""NERDTree""""""""""""""""""""""""""""""""""""
let NERDChristmasTree=1                            "显示增强
let NERDTreeAutoCenter=1                        "自动调整焦点
let NERDTreeMouseMode=2                            "鼠标模式:目录单击,文件双击
let NERDTreeShowFiles=1                            "显示文件
" let NERDTreeShowHidden=1                        "显示隐藏文件
let NERDTreeHightCursorline=1                    "高亮显示当前文件或目录
let NERDTreeShowLineNumbers=1                    "显示行号
let NERDTreeWinPos='right'                        "窗口位置
let NERDTreeWinSize=31                            "窗口宽度
let g:NERDTreeCaseSensitiveSort = 1
let g:nerdtree_tabs_open_on_console_startup=1
let NERDTreeIgnore=['\.pyc','\~$','\.swp']
let g:NERDTreeIndicatorMapCustom = {
    \ "Modified"  : "",
    \ "Staged"    : "",
    \ "Untracked" : "",
    \ "Renamed"   : "",
    \ "Unmerged"  : "",
    \ "Deleted"   : "",
    \ "Dirty"     : "",
    \ "Clean"     : "✔︎",
    \ 'Ignored'   : '',
    \ "Unknown"   : "?"
    \ }
nnoremap <silent> <F3> :NERDTreeToggle<CR>     "快捷键
set t_Co=256
set laststatus=2
set lazyredraw
let g:airline_theme="vice" 
" let g:airline_powerline_fonts = 1  
"""""""""""""""""""""""""""""""""新文件标题""""""""""""""""""""""""""""""""""""
"新建.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       : Jiaaaaaaaqi") 
        call append(line(".")+2, "\# Created Time : ".strftime("%c")) 
        call append(line(".")+3, "\###############################################################") 
        call append(line(".")+4, "\#!/bin/bash") 
    else 
        call setline(1, "/*************************************************************** ") 
        call append(line("."), "    > File Name    : ".expand("%")) 
        call append(line(".")+1, "    > Author       : Jiaaaaaaaqi") 
        call append(line(".")+2, "    > Created Time : ".strftime("%c")) 
        call append(line(".")+3, " ***************************************************************/") 
        call append(line(".")+4, "")
    endif
    if &filetype == 'cpp'
        call append(line(".")+5, "#include <map>")
        call append(line(".")+6, "#include <set>")
        call append(line(".")+7, "#include <list>")
        call append(line(".")+8, "#include <ctime>")
        call append(line(".")+9, "#include <cmath>")
        call append(line(".")+10, "#include <stack>")
        call append(line(".")+11, "#include <queue>")
        call append(line(".")+12, "#include <cfloat>")
        call append(line(".")+13, "#include <string>")
        call append(line(".")+14, "#include <vector>")
        call append(line(".")+15, "#include <cstdio>")
        call append(line(".")+16, "#include <bitset>")
        call append(line(".")+17, "#include <cstdlib>")
        call append(line(".")+18, "#include <cstring>")
        call append(line(".")+19, "#include <iostream>")
        call append(line(".")+20, "#include <algorithm>")
        call append(line(".")+21, "#define  lowbit(x)  x & (-x)")
        call append(line(".")+22, "#define  mes(a, b)  memset(a, b, sizeof a)")
        call append(line(".")+23, "#define  fi         first")
        call append(line(".")+24, "#define  se         second")
        call append(line(".")+25, "#define  pii        pair<int, int>")
        call append(line(".")+26, "")
        call append(line(".")+27, "typedef unsigned long long int ull;")
        call append(line(".")+28, "typedef long long int ll;")
        call append(line(".")+29, "const int    maxn = 1e5 + 10;")
        call append(line(".")+30, "const int    maxm = 1e5 + 10;")
        call append(line(".")+31, "const ll     mod  = 1e9 + 7;")
        call append(line(".")+32, "const ll     INF  = 1e18 + 100;")
        call append(line(".")+33, "const int    inf  = 0x3f3f3f3f;")
        call append(line(".")+34, "const double pi   = acos(-1.0);")
        call append(line(".")+35, "const double eps  = 1e-8;")
        call append(line(".")+36, "using namespace std;")
        call append(line(".")+37, "")
        call append(line(".")+38, "int n, m;")
        call append(line(".")+39, "int cas, tol, T;")
        call append(line(".")+40, "")
        call append(line(".")+41, "int main() {")
        call append(line(".")+42, '    // freopen("in", "r", stdin);')
        call append(line(".")+43, "")
        call append(line(".")+44, "    return 0;")
        call append(line(".")+45, "}")
        call append(line(".")+46, "")
    endif
endfunc 
    "新建文件后,自动定位到文件末尾
    autocmd BufNewFile * normal G
View Code

 

转载于:https://www.cnblogs.com/Jiaaaaaaaqi/p/10460822.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值