set nu
set tabstop=4
syntax on
"set mouse=a
set mouse=nic
"set mouse=nich
"set t_Co=256
set cursorline "将当前行显示高亮,红底白字
"hi CursorColumn cterm=NONE ctermbg=red ctermfg=white guibg=NONE guifg=NONE
"hi CursorLine cterm=NONE ctermbg=black ctermfg=green
"let mapleader=',' "使用,cc和,cu来进行注释和取消注释操作
"set foldmethod=marker"
"代码折叠
"set foldmethod=syntax
"set foldmethod=indent
"set foldlevel=0 "启动vim时不自动折叠代码,foldlevel数值越大折叠越多
set foldcolumn=4 "设置折叠栏宽度
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
autocmd FileType java set omnifunc=javacomplete#Complet
"常用命令
"za 打开/关闭在光标下的折叠
"zA 循环地打开/关闭光标下的折叠
"zo 打开 (open) 在光标下的折叠
"zO 循环打开 (Open) 光标下的折叠
"zc 关闭 (close) 在光标下的折叠
"zC 循环关闭 (Close) 在光标下的所有折叠
"zM 关闭所有折叠
"zR 打开所有的折叠
"set autoindent
"set smartindent
set nowrap
"colorscheme ron " elflord ron peachpuff default 设置配色方案,vim自带的配色方案保存在/usr/share/vim/vim72/colors目录下
set autoindent " 设置自动对齐(缩进):即每行的缩进值与上一行相等;使用 noautoindent 取消设置
set cindent " 使用 C/C++ 语言的自动缩进方式
set showmatch " 设置匹配模式,显示匹配的括号
set whichwrap=b,s,<,>,[,] " 光标从行首和行末时可以跳到另一行去
imap () ()<Left>
imap [] []<Left>
imap {} {}<Left>
imap "" ""<Left>
imap '' ''<Left>
"共享剪贴板
set clipboard+=unnamed
nmap w= :resize +3<CR> "定义w=作为窗口行数增加快捷键
nmap w- :resize -3<CR> "定义w-作为窗口行数减少快捷键
nmap w, :vertical resize -3<CR> "定义w,作为窗口宽度减少快捷键
nmap w. :vertical resize +3<CR> "定义w.作为窗口宽度增加快捷键
let Tlist_Ctags_Cmd='/usr/bin/ctags'
let Tlist_Show_One_File=1
let Tlist_Show_One_File=0 "让taglist可以同时展示多个文件的函数列表
let Tlist_File_Fold_Auto_Close=1 "非当前文件,函数列表折叠隐藏
let Tlist_Exit_OnlyWindow=1 "当taglist是最后一个分割窗口时,自动推出vim
let Tlist_Auto_Open=1
let Tlist_Process_File_Always=1
noremap <F8> :TlistToggle<CR>
let &termencoding=&encoding
set fileencodings=utf-8,gb2312,gbk,gb18030,ucs-bom,cp936
let &titlestring = expand("%:p")
if &term == "screen"
set t_ts=^[k
set t_fs=^[\
endif
if &term == "screen" || &term == "xterm"
set title
endif
"set tags+=./tags
"set tags=/home/liq10198965/tags
"set autochdir
nmap <silent> <F1> :WMToggle<cr> "定义F1作为winmanager打开关闭的快捷键
let g:AutoOpenWinManager = 0 "默认不自动打开winmanager
" let g:winManagerWindowLayout = "TagList|FileExplorer" "设置winManager与Taglist列表重合,目前关闭
"function! AutoLoadCTagsAndCScope()
" let max = 10
" let dir = './'
" let i = 0
" let break = 0
" while isdirectory(dir) && i < max
" if filereadable(dir . 'cscope.out')
" execute 'cs add ' . dir . 'cscope.out'
" let break = 1
" endif
" if filereadable(dir . 'tags')
" execute 'set tags =' . dir . 'tags'
" let break = 1
" endif
" if break == 1
" execute 'lcd ' . dir
" break
" endif
" let dir = dir . '../'
" let i = i + 1
" endwhile
"endf
"nmap <F9> :call AutoLoadCTagsAndCScope()<CR>
""---------- Cscope setting -------------------------
"if has("cscope")
" set csprg=/usr/bin/cscope " 指定用来执行cscope的命令
" set csto=0 " 设置cstag命令查找次序:0先找cscope数据库再找标签文件;1先找标签文件再找cscope数据库
" set cst " 同时搜索cscope数据库和标签文件
" set cscopequickfix=s-,c-,d-,i-,t-,e- " 使用QuickFix窗口来显示cscope查找结果
" set nocsverb
" if filereadable("cscope.out") " 若当前目录下存在cscope数据库,添加该数据库到vim
" cs add /home/liq10198965/code_121_r2_12_5/cscope.out
" cs add /home/liq10198965/CODE/cscope.out
"elseif $CSCOPE_DB != "" " 否则只要环境变量CSCOPE_DB不为空,则添加其指定的数据库到vim
" cs add $CSCOPE_DB
" endif
" set csverb
"endif
"cscope搜索设置,设置为动态加载,自动加载当前目录的cscope.out,如果没有向上级目录搜索,直到找到加载
if has("cscope")
set csprg=/usr/bin/cscope
set csto=0
set cst
set cscopequickfix=s-,c-,d-,i-,t-,e- " 使用QuickFix窗口来显示cscope查找结果
set csverb
set cspc=3
if filereadable("cscope.out")
else
let cscope_file=findfile("cscope.out", ".;")
let cscope_pre=matchstr(cscope_file, ".*/")
if !empty(cscope_file) && filereadable(cscope_file)
exe "cs add" cscope_file cscope_pre
endif
endif
endif
"map <F4> :cs add ./cscope.out .<CR><CR><CR> :cs reset<CR>
"imap <F4> <ESC>:cs add ./cscope.out .<CR><CR><CR> :cs reset<CR>
"将:cs find c等Cscope查找命令映射为<C-_>c等快捷键
nmap fs :cs find s <C-R>=expand("<cword>")<CR><CR> :copen<CR><CR>
nmap fg :cs find g <C-R>=expand("<cword>")<CR><CR>
nmap fd :cs find d <C-R>=expand("<cword>")<CR><CR> :copen<CR><CR>
nmap fc :cs find c <C-R>=expand("<cword>")<CR><CR> :copen<CR><CR>
nmap ft :cs find t <C-R>=expand("<cword>")<CR><CR> :copen<CR><CR>
nmap fe :cs find e <C-R>=expand("<cword>")<CR><CR> :copen<CR><CR>
nmap ff :cs find f <C-R>=expand("<cword>")<CR><CR>
nmap fi :cs find i <C-R>=expand("<cword>")<CR><CR> :copen<CR><CR>
"s: 查找C语言符号,即查找函数名、宏、枚举值等出现的地方(包括头文件)
"g:查找函数、宏、枚举等定义的位置,类似ctags所提供的功能(比如有可能只在头文件处)
"d: 查找本函数调用的函数
"c: 查找调用本函数的函数
"t: 查找指定的字符串
"e: 查找egrep模式,相当于egrep功能,但查找速度快多了
"f: 查找并打开文件,类似vim的find功能
"i: 查找包含本文件的文件
"其他功能可输入:help cscope查看
".........................................................................................................
".............................目前没有使用,以后编译程序时使用............................................
".........................................................................................................
"quickfix命令集
"通过quickfix命令集,你可在 Vim 内编译程序并直接跳转到出错位置进行修正。你可以接着重新编译并做修正,直到不再出错为止。
"在vim配置文件/home/user/.vimrc中加入如下的配置:
"-- QuickFix setting --
"" 按下F6,执行make clean
"map <F6> :make clean<CR><CR><CR>
" 按下F7,执行make编译程序,并打开quickfix窗口,显示编译信息
" map <F7> :make<CR><CR><CR> :copen<CR><CR>
" " 按下F8,光标移到上一个错误所在的行
" map <F8> :cp<CR>
" " 按下F9,光标移到下一个错误所在的行
" map <F9> :cn<CR>
" " 以上的映射是使上面的快捷键在插入模式下也能用
" imap <F6> <ESC>:make clean<CR><CR><CR>
" imap <F7> <ESC>:make<CR><CR><CR> :copen<CR><CR>
" imap <F8> <ESC>:cp<CR>
" imap <F9> <ESC>:cn<CR>
".......................................帮助文档......................
" :help usr_30
" :help quickfix
" 下面的命令运行 "make" (包括你所给出的参数) 程序并捕捉其运行结果: >
" :make {arguments}
" 如果编译时出现错误,按
" <Enter>,回到vim界面,看不到出错信息了!这时,可以运行以下命令
" :cw[indow]
" 打开quickfix窗口来查看出错信息,它会自动跳到第一处出错的地方。然后,你可以双击出错某一条出错信息,vim就会自动跳转到相应的出错位置
" :cn[ext] 光标移到下一个错误所在的行
" :cp[revious] 光标移到上一个错误所在的行
" :cfirst 到第一处错误
" :clast 到最后一处错误
" :cc 空间不够时,Vim 会缩短出错信息。如果你想查看详细信息,可以使用此命令
" :cl[ist]
" 列出所有出错信息的概览(只有那些含有文件名或行数的错误信息会被显示,需要查看那些并不含文件名或行数的信息可用“:cl[ist]!”命令)
"
"
"
"----------------Linux终端操作快捷键-------------------------------------------------
"Ctrl+a:光标回到命令行首。 (a:ahead)
"Ctrl+e:光标回到命令行尾。 (e:end)
"Ctrl+b:光标向行首移动一个字符。 (b:backwards)
"Ctrl+f:光标向行尾移动一个字符。 (f:forwards)
"Ctrl+w: 删除光标处到行首的单词。
"Ctrl+k:删除光标处到行尾的单词。
"Ctrl+u:删除整个命令行文本字符。
"Ctrl+h:向行首删除一个字符。
"Ctrl+d:向行尾删除一个字符。
"Ctrl+y:粘贴Ctrl+u,Ctrl+k,Ctrl+w删除的文本。
"Ctrl+p: 上一个使用的历史命令。 (p:previous)
"Ctrl+n:下一个使用的历史命令。(n:next )
"Ctrl+r:快速检索历史命令。(r:retrieve)
"Ctrl+t:交换光标所在字符和其前的字符。
"Ctrl+i:相当于Tab键
"Ctrl+o:相当于Ctrl+m
"Ctrl+m:相当Enter键
"Ctrl+s: 使终端发呆,静止,可以使快速输出的终端屏幕停下来。
"Ctrl+q:退出Ctrl+s引起的发呆。
"Ctrl+z:使正在运行在终端的任务,运行于后台。 (可用fg恢复)
"Ctrl+c:中断终端中正在执行的任务。
"Ctrl+d: 在空命令行的情况下可以退出终端。
"Ctrl+[:相当于Esc键
"
"
" -----------------------------------vim常用快捷键----------------------------------
" % 跳转到配对的括号去
" [[
" 跳转到当前或者上一代码块(函数定义、类定义等)的开头去(但要求代码块中'{'必须单独占一行)
" ][
" 跳转到当前代码块(函数定义、类定义等)的结尾去(但要求代码块中'{'必须单独占一行)
" ]]
" 跳转到下一代码块(函数定义、类定义等)的开头去(但要求代码块中'{'必须单独占一行)
" [/ 跳到注释开头(只对/* */注释有效)
" ]/ 跳到注释结尾(只对/* */注释有效)
" gD
" 跳转到当前文件内标识符首次出现的位置,可用于跳转到全部变量的定义处;查找局部变量时,要是多个函数中定义了该局部变量,使用gD进行查找,找到的变量定义可能不是你需要的
" gd 跳转到当前函数内标识符首次出现的位置,可用于跳转到局部变量的定义处
" '' 跳转到光标上次停靠的地方, 是两个', 而不是一个"
" mx 设置书签,x只能是a-z的26个字母
" `x 跳转到书签处("`"是1左边的键)
" > 增加缩进,"x>"表示增加以下x行的缩进
" < 减少缩进,"x<"表示减少以下x行的缩进