1. 程式人生 > >Package vim is not available, but is referred to by another package及我的vim配置

Package vim is not available, but is referred to by another package及我的vim配置

  1 map <F9> :call SaveInputData()<CR>
  2 func! SaveInputData()
  3     exec "tabnew"
  4     exec 'normal "+gP'
  5     exec "w! /tmp/input_data"
  6 endfunc
  7 "colorscheme torte
  8 "colorscheme murphy
  9 "colorscheme desert 
 10 "colorscheme desert 
 11 "colorscheme elflord
 12 colorscheme ron
13 14 "my setting" 15 16 "tags" 17 ":set tags=/home/jyg/linux-2.6.35.7/tags 18 19 "remember last update or view postion" 20 if has("autocmd") 21 " In text files, always limit the width of text to 78 characters 22 autocmd BufRead *.txt set tw=78 23 " When editing a file, always jump to the last cursor position
24 autocmd BufReadPost * 25 \ if line("'\"") > 0 && line ("'\"") <= line("$") | 26 \ exe "normal g'\"" | 27 \ endif 28 endif 29 30 "end of my setting" 31 32 33 "set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936 34 "set termencoding=utf-8 35 "set encoding=utf-8
36 "set fileencodings=ucs-bom,utf-8,cp936 37 "set fileencoding=utf-8 38 39 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 40 " 顯示相關 41 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 42 "set shortmess=atI " 啟動的時候不顯示那個援助烏干達兒童的提示 43 "winpos 5 5 " 設定視窗位置 44 "set lines=40 columns=155 " 設定視窗大小 45 set go= " 不要圖形按鈕 46 "color asmanian2 " 設定背景主題 47 "set guifont=Courier_New:h10:cANSI " 設定字型 48 "syntax on " 語法高亮 49 autocmd InsertLeave * se nocul " 用淺色高亮當前行 50 autocmd InsertEnter * se cul " 用淺色高亮當前行 51 "set ruler " 顯示標尺 52 set showcmd " 輸入的命令顯示出來,看的清楚些 53 "set cmdheight=1 " 命令列(在狀態行下)的高度,設定為1 54 "set whichwrap+=<,>,h,l " 允許backspace和游標鍵跨越行邊界(不建議) 55 "set scrolloff=3 " 游標移動到buffer的頂部和底部時保持3行距離 56 set novisualbell " 不要閃爍(不明白) 57 set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")} "狀態行顯示的內容 58 set laststatus=1 " 啟動顯示狀態行(1),總是顯示狀態行(2) 59 set foldenable " 允許摺疊 60 set foldmethod=manual " 手動摺疊 61 "set background=dark "背景使用黑色 62 set nocompatible "去掉討厭的有關vi一致性模式,避免以前版本的一些bug和侷限 63 " 顯示中文幫助 64 "if version >= 603 65 set helplang=cn 66 set encoding=utf-8 67 "endif 68 " 設定配色方案 69 "colorscheme murphy 70 "字型 71 "if (has("gui_running")) 72 " set guifont=Bitstream\ Vera\ Sans\ Mono\ 10 73 "endif 74 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 75 """""新檔案標題 76 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 77 "新建.c,.h,.sh,.java檔案,自動插入檔案頭 78 autocmd BufNewFile *.cpp,*.[ch],*.sh,*.java exec ":call SetTitle()" 79 ""定義函式SetTitle,自動插入檔案頭 80 func SetTitle() 81 "如果檔案型別為.sh檔案 82 if &filetype == 'sh' 83 call setline(1,"\#########################################################################") 84 call append(line("."), "\# File Name: ".expand("%")) 85 call append(line(".")+1, "\# Author: jiuyueguang") 86 call append(line(".")+2, "\# mail: [email protected]") 87 call append(line(".")+3, "\# Created Time: ".strftime("%c")) 88 call append(line(".")+4, "\#########################################################################") 89 call append(line(".")+5, "\#!/bin/bash") 90 call append(line(".")+6, "") 91 else 92 call setline(1, "/*************************************************************************") 93 call append(line("."), " > File Name: ".expand("%")) 94 call append(line(".")+1, " > Author: jiuyueguang") 95 call append(line(".")+2, " > Mail: [email protected]") 96 call append(line(".")+3, " > Created Time: ".strftime("%c")) 97 call append(line(".")+4, " ************************************************************************/") 98 call append(line(".")+5, "") 99 endif 100 if &filetype == 'cpp' 101 call append(line(".")+6, "#include<iostream>") 102 call append(line(".")+7, "using namespace std;") 103 call append(line(".")+8, "int main(int argc,char *argv[]){") 104 call append(line(".")+9, " ") 105 call append(line(".")+10," return 0;") 106 call append(line(".")+11, "}") 107 endif 108 if &filetype == 'c' 109 call append(line(".")+6, "#include<stdio.h>") 110 call append(line(".")+7, "int main(int argc,char *argv[]){") 111 call append(line(".")+8, " ") 112 call append(line(".")+9," return 0;") 113 call append(line(".")+10, "}") 114 endif 115 " if &filetype == 'java' 116 " call append(line(".")+6,"public class ".expand("%")) 117 " call append(line(".")+7,"") 118 " endif 119 "新建檔案後,自動定位到檔案末尾 120 autocmd BufNewFile * normal G 121 endfunc 122 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 123 "鍵盤命令 124 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 125 126 nmap <leader>w :w!<cr> 127 nmap <leader>f :find<cr> 128 129 " 對映全選+複製 ctrl+a 130 map <C-A> ggVGY 131 map! <C-A> <Esc>ggVGY 132 map <F12> gg=G 133 " 選中狀態下 Ctrl+c 複製 134 vmap <C-c> "+y 135 "去空行 136 nnoremap <F2> :g/^\s*$/d<CR> 137 "比較檔案 138 nnoremap <C-F2> :vert diffsplit 139 "新建標籤 140 map <M-F2> :tabnew<CR> 141 "列出當前目錄檔案 142 map <F3> :tabnew .<CR> 143 "開啟樹狀檔案目錄 144 map <C-F3> \be 145 "C,C++ 按F5編譯執行 146 map <F5> :call CompileRunGcc()<CR> 147 func! CompileRunGcc() 148 exec "w" 149 if &filetype == 'c' 150 exec "!g++ % -o %<" 151 exec "! ./%<" 152 elseif &filetype == 'cpp' 153 exec "!g++ % -o %<" 154 exec "! ./%<" 155 elseif &filetype == 'java' 156 exec "!javac %" 157 exec "!java %<" 158 elseif &filetype == 'sh' 159 :!./% 160 elseif &filetype == 'py' 161 exec "!python %" 162 exec "!python %<" 163 endif 164 endfunc 165 "C,C++的除錯 166 map <F8> :call Rungdb()<CR> 167 func! Rungdb() 168 exec "w" 169 exec "!g++ % -g -o %<" 170 exec "!gdb ./%<" 171 endfunc 172 175 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 176 ""實用設定 177 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 178 " 設定當檔案被改動時自動載入 179 set autoread 180 " quickfix模式 181 autocmd FileType c,cpp map <buffer> <leader><space> :w<cr>:make<cr> 182 "程式碼補全 183 set completeopt=preview,menu 184 "允許外掛 185 filetype plugin on 186 "共享剪貼簿 187 set clipboard+=unnamed 188 "從不備份 189 set nobackup 190 "make 執行 191 :set makeprg=g++\ -Wall\ \ % 192 "自動儲存 193 set autowrite 194 set ruler " 開啟狀態列標尺 195 set cursorline " 突出顯示當前行 196 set magic " 設定魔術 197 set guioptions-=T " 隱藏工具欄 198 set guioptions-=m " 隱藏選單欄 199 "set statusline=\ %<%F[%1*%M%*%n%R%H]%=\ %y\ %0(%{&fileformat}\ %{&encoding}\ %c:%l/%L%)\ 200 " 設定在狀態行顯示的資訊 201 set foldcolumn=0 202 set foldmethod=indent 203 set foldlevel=3 204 set foldenable " 開始摺疊 205 " 不要使用vi的鍵盤模式,而是vim自己的 206 set nocompatible 207 " 語法高亮 208 set syntax=on 209 " 去掉輸入錯誤的提示聲音 210 set noeb 211 " 在處理未儲存或只讀檔案的時候,彈出確認 212 set confirm 213 " 自動縮排 214 set autoindent 215 set cindent 216 " Tab鍵的寬度 217 set tabstop=4 218 " 統一縮排為4 219 set softtabstop=4 220 set shiftwidth=4 221 " 不要用空格代替製表符 222 set noexpandtab 223 " 在行和段開始處使用製表符 224 set smarttab 225 " 顯示行號 226 set number 227 " 歷史記錄數 228 set history=1000 229 "禁止生成臨時檔案 230 set nobackup 231 set noswapfile 232 "搜尋忽略大小寫 233 set ignorecase 234 "搜尋逐字元高亮 235 set hlsearch 236 set incsearch 237 "行內替換 238 set gdefault 239 "編碼設定 240 set enc=utf-8 241 set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936 242 "語言設定 243 set langmenu=zh_CN.UTF-8 244 set helplang=cn 245 " 我的狀態行顯示的內容(包括檔案型別和解碼) 246 "set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")} 247 "set statusline=[%F]%y%r%m%*%=[Line:%l/%L,Column:%c][%p%%] 248 " 總是顯示狀態行 249 set laststatus=2 250 " 命令列(在狀態行下)的高度,預設為1,這裡是2 251 set cmdheight=2 252 " 偵測檔案型別 253 filetype on 254 " 載入檔案型別外掛 255 filetype plugin on 256 " 為特定檔案型別載入相關縮排檔案 257 filetype indent on 258 " 儲存全域性變數 259 set viminfo+=! 260 " 帶有如下符號的單詞不要被換行分割 261 set iskeyword+=_,$,@,%,#,- 262 " 字元間插入的畫素行數目 263 set linespace=0 264 " 增強模式中的命令列自動完成操作 265 set wildmenu 266 " 使回格鍵(backspace)正常處理indent, eol, start等 267 set backspace=2 268 " 允許backspace和游標鍵跨越行邊界 269 set whichwrap+=<,>,h,l 270 " 可以在buffer的任何地方使用滑鼠(類似office中在工作區雙擊滑鼠定位) 271 set mouse=a 272 set selection=exclusive 273 set selectmode=mouse,key 274 " 通過使用: commands命令,告訴我們檔案的哪一行被改變過 275 set report=0 276 " 在被分割的視窗間顯示空白,便於閱讀 277 set fillchars=vert:\ ,stl:\ ,stlnc:\ 278 " 高亮顯示匹配的括號 279 set showmatch 280 " 匹配括號高亮的時間(單位是十分之一秒) 281 set matchtime=1 282 " 游標移動到buffer的頂部和底部時保持3行距離 283 set scrolloff=3 284 " 為C程式提供自動縮排 285 set smartindent 286 " 高亮顯示普通txt檔案(需要txt.vim指令碼) 287 au BufRead,BufNewFile * setfiletype txt 288 "自動補全成對 289 :inoremap ( ()<ESC>i 290 :inoremap ) <c-r>=ClosePair(')')<CR> 291 :inoremap { {<CR>}<ESC>O 292 :inoremap } <c-r>=ClosePair('}')<CR> 293 :inoremap [ []<ESC>i 294 :inoremap ] <c-r>=ClosePair(']')<CR> 295 :inoremap " ""<ESC>i 296 :inoremap ' ''<ESC>i 297 function! ClosePair(char) 298 if getline('.')[col('.') - 1] == a:char 299 return "\<Right>" 300 else 301 return a:char 302 endif 303 endfunction 304 filetype plugin indent on 305 "開啟檔案型別檢測, 加了這句才可以用智慧補全 306 set completeopt=longest,menu 307 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 308 309 "Taglist 310 let Tlist_Show_One_File=1 311 let Tlist_Exit_OnlyWindow=1 312 313 314 "NERDtee設定 315 let NERDChristmasTree=1 316 let NERDTreeAutoCenter=1 317 let NERDTreeBookmarksFile=$VIM.'\Data\NerdBookmarks.txt' 318 let NERDTreeMouseMode=2 319 let NERDTreeShowBookmarks=1 320 let NERDTreeShowFiles=1 321 let NERDTreeShowHidden=1 322 let NERDTreeShowLineNumbers=1 323 let NERDTreeWinPos='left' 324 let NERDTreeWinSize=31 325 nnoremap f :NERDTreeToggle 326 map <F7> :NERDTree<CR>