vimrc
Eqvpkbz's Site
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
" All system-wide defaults are set in $VIMRUNTIME/debian.vim and sourced by
" the call to :runtime you can find below.  If you wish to change any of those
" settings, you should do it in this file (/etc/vim/vimrc), since debian.vim
" will be overwritten everytime an upgrade of the vim packages is performed.
" It is recommended to make changes after sourcing debian.vim since it alters
" the value of the 'compatible' option.

" This line should not be removed as it ensures that various options are
" properly set to work with the Vim-related packages available in Debian.
runtime! debian.vim

" Vim will load $VIMRUNTIME/defaults.vim if the user does not have a vimrc.
" This happens after /etc/vim/vimrc(.local) are loaded, so it will override
" any settings in these files.
" If you don't want that to happen, uncomment the below line to prevent
" defaults.vim from being loaded.
" let g:skip_defaults_vim = 1

" Uncomment the next line to make Vim more Vi-compatible
" NOTE: debian.vim sets 'nocompatible'.  Setting 'compatible' changes numerous
" options, so any other options should be set AFTER setting 'compatible'.
"set compatible

" Vim5 and later versions support syntax highlighting. Uncommenting the next
" line enables syntax highlighting by default.
if has("syntax")
  syntax on
endif

" If using a dark background within the editing area and syntax highlighting
" turn on this option as well
"set background=dark

" Uncomment the following to have Vim jump to the last position when
" reopening a file
"if has("autocmd")
"  au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
"endif

" Uncomment the following to have Vim load indentation rules and plugins
" according to the detected filetype.
"if has("autocmd")
"  filetype plugin indent on
"endif

" The following are commented out as they cause vim to behave a lot
" differently from regular Vi. They are highly recommended though.
"set showcmd        " Show (partial) command in status line.
"set showmatch      " Show matching brackets.
"set ignorecase     " Do case insensitive matching
"set smartcase      " Do smart case matching
"set incsearch      " Incremental search
"set autowrite      " Automatically save before commands like :next and :make
"set hidden     " Hide buffers when they are abandoned
"set mouse=a        " Enable mouse usage (all modes)

if has("syntax")
  syntax on
endif

set     nocompatible    "去掉有关vi一致性模式,避免以前版本的bug和局限
set     ai!             "设置自动缩进
set     tabstop=4       "设置TAB为4格
set     shiftwidth=4    "设定 << 和 >> 命令移动时的宽度为 4
set     softtabstop=4   "使得按退格键时可以一次删掉 4 个空格
set     autoindent      "设置自动缩进
set     smarttab        "在行和段开始处使用制表符
set     nu              "显示行号
set     mouse=a         "激活鼠标
set     cursorline      "突出显示该行
set     nobackup        "覆盖文件时不备份
color   desert          "设置颜色主题为DESERT
set     ruler           "设置显示行号
set     autoread        "设置自动读取文件
set     autowrite       "在切换buffer时自动保存当前文件
set     autochdir       "自动切换当前目录为当前文件所在的目录
set     incsearch       "输入搜索内容时就显示搜索结果
set     hlsearch        "搜索时高亮显示被找到的文本
set     showcmd         "命令模式下,在底部显示,当前键入的指令
set     showmatch       "插入括号时,短暂地跳转到匹配的对应括号
set     matchtime=1     "短暂跳转到匹配括号的时间
set     hidden          "允许在有未保存的修改时切换缓冲区,此时的修改由 vim 负责保存
set     smartindent     "开启新行时使用智能自动缩进
set     guioptions-=T   "隐藏工具栏
set     guioptions-=m   "隐藏菜单栏
set     noerrorbells    "不让vim发出讨厌的滴滴声 
set     t_Co=256        "启用256色
set     undofile        "保留撤销历史
set     history=1000    "Vim 需要记住多少次历史操作
filetype plugin on      "根据文件类型加载对应的插件
filetype indent on      "开启文件类型检查,并且载入与该类型对应的缩进规则

map <F5> <Esc>:w<CR> :!gedit % <CR>
imap <F5> <Esc>:w<CR> :!gedit % <CR>   "按F5使用gedit打开

map <F6> <Esc>:w<CR> :!code % <CR>
imap <F6> <Esc>:w<CR> :!code % <CR>   "按F6使用code打开(需安装VScode)

map <F9> <Esc>:w<CR> :!g++ % -g -Wall -Wextra -o %<  && ./%< <CR>   
imap <F9> <Esc>:w<CR> :!g++ % -g -Wall -Wextra -o %<  && ./%< <CR>   "按F9编译运行

func! YankToClipboard()
    exec "w"
    exec "!cat % |xsel --clipboard"
endfunc

map <F8> :call YankToClipboard() <CR>
imap <F8> :call YankToClipboard() <CR> "按F8将整个文件的内容拷贝到剪贴版内(需安装xsel)

autocmd BufNewFile *.cpp 0r ~/.vim/template/cppconfig.cpp

if filereadable("/etc/vim/vimrc.local")
  source /etc/vim/vimrc.local
endif