`
isiqi
  • 浏览: 16453339 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

我的vimrc文件配置

阅读更多
“============================
”任何system通用
“============================

" 显示中文帮助
if version >= 603
set helplang=cn
set encoding=utf-8
endif

" 设定默认解码
"set fenc =utf-8
"set fenc =utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936

" 设定不与以前版本兼
set nocompatible

" 设置配色方案
colorscheme murphy

" 显示行号
set nu

" 侦测文件类型
filetype on

" 设置当文件被改动时自动载入
set autoread

"设置字体类型和大小 在窗口下使用 set guifont? 可以看到该命令
set gfn=Monospace\ 10

" 记录历史的行数
set history=100

" 显示语法高亮
syntax enable
syntax on

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

" 与windows共享剪贴板
set clipboard+=unnamed

" 载入文件类型插件
filetype plugin on
filetype indent on

" 为特定文件类型载入相关缩进文件
filetype indent on

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

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

" 设置鼠标一直可用
set mouse=a

" 高亮当前行
set cursorline

" 命令行高度
set cmdheight=1

" 启动的时候不显示那个援助索马里儿童的提示
set shortmess=atI

" 不让vim发出讨厌的滴滴声
set noerrorbells

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

""""""""""""""""""""""""""""
" 文件设置
""""""""""""""""""""""""""""
" 不要备份文件(覆盖文件时不备份)
set nobackup

" 不要生成swap文件,当buffer被丢弃的时候隐藏它
setlocal noswapfile
set bufhidden=hide

" 字符间插入的像素行数目
set linespace=0

" 增强模式中的命令行自动完成操作
set wildmenu

" 置粘贴模式,使得粘贴不错位
" set paste


" 保存文件,用习惯了Ctrl+S了
" nmap <C-s> <esc>:w<CR>
" imap <C-s> <esc>:w<CR>
noremap <C-S> :update<CR>
vnoremap <C-S> <C-C>:update<CR>
inoremap <C-S> <C-O>:update<CR>
imap jj <esc>
imap JJ <esc>

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 搜索和匹配
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 高亮显示匹配的括号
set showmatch

" 高亮显示被找到的句子(phrases)
"set hlsearch

" 在搜索时,输入的词句的逐字符高亮(类似firefox的搜索),即输入搜索内容时就显示搜索结果
set incsearch

" 搜索时忽略大小写
set ignorecase

" 不要闪烁
set novisualbell


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 文本格式和排版
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 自动格式化
set formatoptions=tcrqn

" 继承前一行的缩进方式,特别适用于多行注释
set autoindent

" 为C程序提供自动缩进
set smartindent

" 使用C样式的缩进
set cindent

" 制表符为4
set tabstop=4

" 统一缩进为4
" 使得按退格键时可以一次删掉 4 个空格
set softtabstop=4
" 设定 << 和 >> 命令移动时的宽度为 4
set shiftwidth=4

" 不要用空格代替制表符
set noexpandtab

" 设置每行120个字符自动换行
set textwidth=120

" 自动切换当前目录为当前文件所在的目录
set autochdir

" 折叠代码
set foldmethod=syntax
" 文件打开时不折叠
set foldlevel=100

"""""""""""""""""""""""""""""""""""""""""""
"自动实例括号
"""""""""""""""""""""""""""""""""""""""""""
inoremap ( ()<ESC>i
inoremap ) <c-r>=ClosePair(')')<CR>
inoremap { {}<ESC>i
inoremap } <c-r>=ClosePair('}')<CR>
inoremap [ []<ESC>i
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:char
return "\<Right>"
else
return a:char
endif
endf

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
""""""""""""""""
" set mapleader
""""""""""""""""
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
let mapleader = ","

" platform
function! MySys()
if has("win32")
return "windows"
else
return "linux"
endif
endfunction

" if file not opened, create a new tab, or switch to the opened file
function! SwitchToBuf(filename)
" find in current tab
let bufwinnr = bufwinnr(a:filename)
if bufwinnr != -1
exec bufwinnr . "wincmd w"
return
else
" search each tab
tabfirst
let tb = 1
while tb <= tabpagenr("$")
let bufwinnr = bufwinnr(a:filename)
if bufwinnr != -1
exec "normal " . tb . "gt"
exec bufwinnr . "wincmd w"
return
endif
tabnext
let tb = tb +1
endwhile
" not exist, new tab
exec "tabnew " . a:filename
endif
endfunction
" fast edit .vimrc
if MySys() == 'linux'
" fast reloading of the .vimrc
map <silent> <leader>ss :source ~/.vimrc<cr>
" fast editing of the .vimrc
map <silent> <leader>ee :call SwitchToBuf("~/.vimrc")<cr>
" when .vimrc is edited, reload it
autocmd! bufwritepost .vimrc source ~/.vimrc
elseif MySys() == 'windows'
" Set helplang
set helplang=cn
"Fast reloading of the _vimrc
map <silent> <leader>ss :source ~/_vimrc<cr>
"Fast editing of _vimrc
map <silent> <leader>ee :call SwitchToBuf("~/_vimrc")<cr>
"When _vimrc is edited, reload it
autocmd! bufwritepost _vimrc source ~/_vimrc
endif
if MySys() == 'windows'
source $VIMRUNTIME/mswin.vim
behave mswin
endif

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"""""""""""""""""""""""""""""""""""""""""""""
" 插件
"""""""""""""""""""""""""""""""""""""""""""""
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

""""""""""""""""""""""""""""""
"加入工程使得能够访问ctags
""""""""""""""""""""""""""""""
"project1"
set tags =~/prog/tags
"project2"
set tags +=~/kernelearn/tags
"后面的工程加在tags变量上

""""""""""""""""""""""""""""""
" 设置Taglist
""""""""""""""""""""""""""""""
" 按照名称排序
let Tlist_Sort_Type = "name"
" 在右侧显示窗口
let Tlist_Use_left_Window = 1
" 如果只有一个buffer,kill窗口也kill掉buffer
let Tlist_Exist_OnlyWindow = 1
" 使taglist只显示当前文件tag,其它文件的tag都被折叠起来(同时显示多个文件中的tag时)
let Tlist_File_Fold_Auto_Close = 1
" 不要显示折叠树
let Tlist_Enable_Fold_Column = 1
"不同时显示多个文件的tag,只显示当前文件的
let Tlist_Show_One_File = 1
" 键盘映射
nmap tl :TlistToggle<cr>

"""""""""""""""""""""""""""""""""""""""""""""
"设置 winManager winManager管理netrw和Taglist。
"""""""""""""""""""""""""""""""""""""""""""""
let g:winManagerWindowLayout = "BufExplorer,FileExplorer|TagList"
let g:persistentBehaviour = 0
let g:winManagerWidth = 30
let g:defaultExplorer = 0
nmap <C-W><C-F> :FirstExplorerWindow<cr>
nmap <C-W><C-B> :BottomExplorerWindow<cr>
"nmap <silent> <F8> :WMToggle<cr>
nmap wm :WMToggle<cr>
"设置 netrw
""""""""""""""""""""""""""""""
"let g:netrw_winsize = 30
"nmap <silent> <leader>fe :Sexplore!<cr>
"let Tlist_File_Fold_Auto_Close=1

""""""""""""""""""""""""""""""
"设置 MiniBufExploer
""""""""""""""""""""""""""""""

" quickfix模式
autocmd FileType c,cpp map <buffer> <leader><space> :w<cr>:make<cr>


""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
""""""""""""""""""""""""""""""""""""""""""""""""""
"F5编译和运行C++程序
"F6编译和运行C程序
""""""""""""""""""""""""""""""""""""""""""""""""""
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" C的编译和运行
map <F6> :call CompileRunGcc()<CR>
func! CompileRunGcc()
exec "w"
exec "!gcc % -o %<"
exec "! ./%<"
endfunc

" C++的编译和运行
map <F5> :call CompileRunGpp()<CR>
func! CompileRunGpp()
exec "w"
exec "!g++ % -o %<"
exec "! ./%<"
endfunc



source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswin

set diffexpr=MyDiff()
function MyDiff()
let opt = '-a --binary '
if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
let arg1 = v:fname_in
if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
let arg2 = v:fname_new
if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
let arg3 = v:fname_out
if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
let eq = ''
if $VIMRUNTIME =~ ' '
if &sh =~ '\<cmd'
let cmd = '""' . $VIMRUNTIME . '\diff"'
let eq = '"'
else
let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"'
endif
else
let cmd = $VIMRUNTIME . '\diff'
endif
silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq
endfunction


" 自动补全(ctrl-p)时的一些选项: 多于一项时显示菜单,最长选择; 显示当前选择的额外信息
if v:version >= 700
set completeopt=menu,longest,preview
endif


""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"""""""""""""""""""""""""""""""""""""""""""""""""
" 状态行相关动作
"""""""""""""""""""""""""""""""""""""""""""""""""
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

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

" 状态行颜色
highlight StatusLine guifg=#FFFFFF guibg=#00008B
highlight StatusLineNC guifg=#FFFFFF guibg=#00008B

function! CurDir()
let curdir = substitute(getcwd(), '/Users/amir/', "~/", "g")
return curdir
endfunction

"""""""""""""""""""""""""""""""
"状态行显示内容
"""""""""""""""""""""""""""""""
" %F 当前文件名
" %m 当前文件修改状态
" %r 当前文件是否只读
" %Y 当前文件类型
" %{&fileformat} 当前文件编码
" %b 当前光标处字符的 ASCII 码值
" %B 当前光标处字符的十六进制值
" %l 当前光标行号
" %c 当前光标列号
" %V 当前光标虚拟列号 (根据字符所占字节数计算)
" %p 当前行占总行数的百分比
" %% 百分号
" %L 当前文件总行数
set statusline=\ %F%m%r%h\ %w\ \ CWD:\ %r%{CurDir()}%h\ \ \ Line:\ %l/%L:%c
" 设置在状态行显示的信息如下:
"




set nowrapscan

"Highlight current
if has("gui_running")
set cursorline
hi cursorline guibg=#333333
hi CursorColumn guibg=#333333
endif

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => VIM userinterface
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"Set 7 lines to the curors - when moving vertical..
set so=7

"Do not redraw, when running macros.. lazyredraw
set lz

"Change buffer - without saving
set hid

"Set magic on
set magic

"How many tenths of a second to blink
set mat=2

set lines=40
set columns=100

"""""""""""""""""""""""""""""""""""""""""""""""""""
"菜单栏、工具栏显示与隐藏的切换
"""""""""""""""""""""""""""""""""""""""""""""""""""
"set guioptions-=T
"set guioptions-=m
map <silent> <F4> :if &guioptions =~# 'T' <Bar>
\set guioptions-=T <Bar>
\set guioptions-=m <bar>
\else <Bar>
\set guioptions+=T <Bar>
\set guioptions+=m <Bar>
\endif<CR>

""""""""""""""""""""""""""""""""""""""""""""""""""""
" 日历插件设置
""""""""""""""""""""""""""""""""""""""""""""""""""""
" let g:calendar_diary = /calendar
" map ca :Calendar<cr>


" 让 gvim 支持 Alt+n 来切换标签页
function! BufPos_ActivateBuffer(num)
let l:count = 1
for i in range(1, bufnr("$"))
if buflisted(i) && getbufvar(i, "&modifiable")
if l:count == a:num
exe "buffer " . i
return
endif
let l:count = l:count + 1
endif
endfor
echo "No buffer!"
endfunction
function! BufPos_Initialize()
for i in range(1, 9)
exe "map <M-" . i . "> :call BufPos_ActivateBuffer(" . i . ")<CR>"
endfor
exe "map <M-0> :call BufPos_ActivateBuffer(10)<CR>"
endfunction
autocmd VimEnter * call BufPos_Initialize()

" 按F11键让VIM全屏
if has('gui_running') && has("win32")
map <F11> <Esc>:call libcallnr("gvimfullscreen.dll", "ToggleFullScreen", 0)<CR>
endif



==============================华丽的分割线===========================
"以下用于MS
set nocompatible
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswin

set diffexpr=MyDiff()
function MyDiff()
let opt = '-a --binary '
if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
let arg1 = v:fname_in
if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
let arg2 = v:fname_new
if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
let arg3 = v:fname_out
if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
let eq = ''
let g:html_tag_case = "lowercase"
if $VIMRUNTIME =~ ' '
if &sh =~ '\<cmd'
let cmd = '""' . $VIMRUNTIME . '\diff"'
let eq = '"'
else
let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"'
endif
else
let cmd = $VIMRUNTIME . '\diff'
endif
silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq
endfunction

let g:html_tag_case = "lowercase"
colo murphy
set helplang=cn
set enc=utf-8
set fileencodings=ucs-bom,utf-8,chinese
set langmenu=zh_CN.UTF-8
set nu
set nobackup
language message zh_CN.UTF-8
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
set termencoding=gbk
set ambiwidth=double
set guifont=NSimSun:h12
syntax on "语法高亮度显示

"下面直到结束是文库使用的配置定义

iab tb <table id="">
iab img <img src="">

"下面是录入时用的缩写

iab he <h1></h1>
iab h2e <h2></h2>
iab be <b></b>
iab fe <footnote> </footnote>
iab ee <endnote> </endnote>
iab qe <quote> </quote>
iab hle <headline> </headline>
iab pe <pre> </pre>

"以下是校对时用的缩写,请特别注意</endnote>缩写为/e

iab h <h1>
iab eh </h1>
iab h2 <h2>
iab eh2 </h2>
iab b <b>
iab eb </b>
iab f <footnote>
iab ef </footnote>
iab e <endnote>
iab /e </endnote>
iab p <pre>
iab ep </pre>
iab q <quote>
iab eq </quote>
iab hl <headline>
iab ehl </headline>

filetype plugin on "打开插件

inoremap ? ??<ESC>i
inoremap ? <c-r>=ClosePair('?')<CR>

inoremap ( ()<ESC>i
inoremap ) <c-r>=ClosePair(')')<CR>
inoremap { {}<ESC>i
inoremap } <c-r>=ClosePair('}')<CR>
inoremap [ []<ESC>i
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:char
return "\<Right>"
else
return a:char
endif
endf
分享到:
评论

相关推荐

    .vimrc配置文件

    - **vimrc文件快速加载**:使用`map &lt;leader&gt;ss :source $HOME/.vimrc&lt;cr&gt;`来创建一个快捷键,使得用户可以通过按下`Ctrl`+`,`再按`s`然后按`s`来重新加载`.vimrc`配置。 - **编辑vimrc文件**:`map &lt;silent&gt;&lt;leader...

    vimrc的配置文件

    vimrc的配置文件,对应博客“linux服务器中安装vimrc的一二三”中的内容

    vimrc vim 配置文件

    `vimrc` 文件和 `.vim` 目录就是 Vim 自定义配置的核心部分。 `.vimrc` 文件,全称是 `vim runtime configuration`,是Vim启动时读取的配置脚本,用于设置编辑器的行为、快捷键映射、插件设置等。通过编辑这个文件...

    vimrc配置文件

    vimrc文件还可以加载局部配置文件,例如/etc/vim/vimrc.local文件。可以通过`source`命令加载该文件,以便在局部环境中进行配置。 vimrc配置文件是一个功能强大且灵活的配置文件,它可以根据不同的需求进行修改和...

    vim配置文件.vimrc完美配置

    vim配置文件.vimrc完美配置

    _vimrc配置文件

    ### _vimrc配置文件:深度解析与应用 #### 概述 _vimrc配置文件是Vim文本编辑器用户自定义设置的核心文件,用于优化编辑体验、提高编码效率及个性化编辑环境。本篇将深入解析给定的_vimrc配置文件内容,涵盖从基本...

    我正在使用的_vimrc文件、字体和配色方案

    在这个主题中,我们主要关注的是用户个人配置的`.vimrc`文件、使用的字体以及配色方案。这些元素极大地提升了Vim的使用体验和工作效率。 首先,`.vimrc`文件是Vim的配置文件,它位于用户的主目录下(在Windows系统...

    我vimrc配置文件

    我的vimrc配置文件,配置了常用的一些插件,如winmanager,taglist和lookupfiles等

    经典的vimrc配置文件

    `vimrc`文件就是vim的配置文件,它允许用户根据自己的需求定制编辑器的行为,提高工作效率。本资源提供的是三个不同版本的`vimrc`配置文件,适用于不同场景和需求。 首先,让我们来看看`版本2-vimrc.Learn1-equal-...

    vimrc 配置文件

    vimrc 配置文件

    vim编辑器配置文件.vimrc

    使用方法是直接把该文件拷贝到你的Linux的~目录中,替换掉原来的.vimrc文件即可。具体说明可以参考我的文章《【Linux成长之路基础篇:玩转vim(vi)编辑器】三大模式及命令介绍、如何通过配置文件.vimrc配置vim》第三...

    vim 配置文件 vimrc

    1. **vimrc文件的基本结构** `vimrc`文件通常位于用户的家目录下,如`~/.vimrc`(在Unix/Linux系统中)或`%USERPROFILE%\_vimrc`(在Windows系统中)。它由一系列的命令行指令组成,每行代表一个设置或配置项。例如...

    vimrc vim配置文件

    vimrc vim配置文件,绝对好用 使你的vim更加丰富多彩

    VIM简单实用的vimrc配置文件——NEW

    vim编译器需要一个实用的vimrc的配置文件,可以帮助您在写代码的时候,如虎添翼。这个是最新的,建议下载这个。

    .vimrc【配置文件】

    改配置文件参考网络经典配置,供大家下载。

    .vimrc vim配置文件

    .vimrc 文件 vim配置文件 字体、颜色 各类插件 ------------ 具体配置步骤找寻相关博客 仅供参考

    linux vimrc 自动配置文件

    linux vimrc 自动配置文件

    .vimrc文件的配置

    ### .vimrc 文件配置详解 #### 一、前言与编码设置 在开始之前,我们需要了解`.vimrc`文件的基本作用。`.vimrc`文件是 Vim 编辑器的配置文件,通过它我们可以定制 Vim 的行为,使得编辑更加高效、舒适。本篇将详细...

Global site tag (gtag.js) - Google Analytics