学习python时想要在gvim中配置python的编译环境,网上找到一个比较好用的vimrc配置,保存下来以备下次有需要。

  1. set encoding=utf-8
  2. set termencoding=utf-8
  3. set fileencodings=utf-8,chinese,latin-1
  4. if has("win32")
  5. set fileencoding=chinese
  6. else
  7. set fileencoding=utf-8
  8. endif
  9. language messages zh_CN.utf-8
  10. " 设定不与以前版本兼
  11. set nocompatible
  12. " 设置配色方案
  13. colorscheme murphy
  14. " 显示行号
  15. set nu
  16. " 侦测文件类型
  17. filetype on
  18. " 设置当文件被改动时自动载入
  19. set autoread
  20. " 记录历史的行数
  21. set history=100
  22. " 显示语法高亮
  23. syntax enable
  24. syntax on
  25. " 在处理未保存或只读文件的时候,弹出确认
  26. set confirm
  27. " 与windows共享剪贴板
  28. set clipboard+=unnamed
  29. " 载入文件类型插件
  30. filetype plugin on
  31. " 为特定文件类型载入相关缩进文件
  32. filetype indent on
  33. " 保存全局变量
  34. set viminfo+=!
  35. " 带有如下符号的单词不要被换行分割
  36. set iskeyword+=_,$,@,%,#,-
  37. " 设置鼠标一直可用
  38. set mouse=a
  39. " 高亮当前行
  40. set cursorline
  41. " 命令行高度
  42. set cmdheight=1
  43. " 启动的时候不显示那个援助索马里儿童的提示
  44. set shortmess=atI
  45. " 不让vim发出讨厌的滴滴声
  46. set noerrorbells
  47. " 在被分割的窗口间显示空白,便于阅读
  48. set fillchars=vert:\ ,stl:\ ,stlnc:\
  49. """"""""""""""""""""""""""""
  50. " 文件设置
  51. """"""""""""""""""""""""""""
  52. " 不要备份文件(覆盖文件时不备份)
  53. set nobackup
  54. " 不要生成swap文件,当buffer被丢弃的时候隐藏它
  55. setlocal noswapfile
  56. set bufhidden=hide
  57. " 字符间插入的像素行数目
  58. set linespace=0
  59. " 增强模式中的命令行自动完成操作
  60. set wildmenu
  61. " 置粘贴模式,使得粘贴不错位
  62. " set paste
  63.  
  64. " 保存文件,用习惯了Ctrl+S了
  65. " nmap <C-s> <esc>:w<CR>
  66. " imap <C-s> <esc>:w<CR>
  67. noremap <C-S> :update<CR>
  68. vnoremap <C-S> <C-C>:update<CR>
  69. inoremap <C-S> <C-O>:update<CR>
  70.  
  71. """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
  72. " 搜索和匹配
  73. """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
  74. " 高亮显示匹配的括号
  75. set showmatch
  76. " 高亮显示被找到的句子(phrases
  77. "set hlsearch
  78. " 在搜索时,输入的词句的逐字符高亮(类似firefox的搜索),即输入搜索内容时就显示搜索结果
  79. set incsearch
  80. " 搜索时忽略大小写
  81. set ignorecase
  82. " 不要闪烁
  83. set novisualbell
  84.  
  85. """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
  86. " 文本格式和排版
  87. """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
  88. " 自动格式化
  89. set formatoptions=tcrqn
  90. " 继承前一行的缩进方式,特别适用于多行注释
  91. set autoindent
  92. " C程序提供自动缩进
  93. set smartindent
  94. " 使用C样式的缩进
  95. set cindent
  96. " 制表符为4
  97. set tabstop=4
  98. " 统一缩进为4
  99. " 使得按退格键时可以一次删掉 4 个空格
  100. set softtabstop=4
  101. " 设定 << 和 >> 命令移动时的宽度为 4
  102. set shiftwidth=4
  103. " 不要用空格代替制表符
  104. set noexpandtab
  105. " 设置每行120个字符自动换行
  106. set textwidth=120
  107.  
  108. " 自动切换当前目录为当前文件所在的目录
  109. set autochdir
  110. " 折叠代码
  111. set foldmethod=syntax
  112. " 文件打开时不折叠
  113. set foldlevel=100
  114.  
  115. """""""""""""""""""""""""""""""""""""""""""
  116. "自动实例括号
  117. """""""""""""""""""""""""""""""""""""""""""
  118. inoremap ( ()<ESC>i
  119. inoremap ) <c-r>=ClosePair(')')<CR>
  120. inoremap { {}<ESC>i
  121. inoremap } <c-r>=ClosePair('}')<CR>
  122. inoremap [ []<ESC>i
  123. inoremap ] <c-r>=ClosePair(']')<CR>
  124. inoremap ' ''<ESC>i
  125. inoremap " ""<ESC>i
  126. function ClosePair(char)
  127. if getline('.')[col('.') - 1] == a:char
  128. return "\<Right>"
  129. else
  130. return a:char
  131. endif
  132. endf
  133.  
  134. """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
  135. """"""""""""""""
  136. " set mapleader
  137. """"""""""""""""
  138. """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
  139. let mapleader = ","
  140. " platform
  141. function! MySys()
  142. if has("win32")
  143. return "windows"
  144. else
  145. return "linux"
  146. endif
  147. endfunction
  148. " if file not opened, create a new tab, or switch to the opened file
  149. function! SwitchToBuf(filename)
  150. " find in current tab
  151. let bufwinnr = bufwinnr(a:filename)
  152. if bufwinnr != -1
  153. exec bufwinnr . "wincmd w"
  154. return
  155. else
  156. " search each tab
  157. tabfirst
  158. let tb = 1
  159. while tb <= tabpagenr("$")
  160. let bufwinnr = bufwinnr(a:filename)
  161. if bufwinnr != -1
  162. exec "normal " . tb . "gt"
  163. exec bufwinnr . "wincmd w"
  164. return
  165. endif
  166. tabnext
  167. let tb = tb +1
  168. endwhile
  169. " not exist, new tab
  170. exec "tabnew " . a:filename
  171. endif
  172. endfunction
  173. " fast edit .vimrc
  174. if MySys() == 'linux'
  175. " fast reloading of the .vimrc
  176. map <silent> <leader>ss :source ~/.vimrc<cr>
  177. " fast editing of the .vimrc
  178. map <silent> <leader>ee :call SwitchToBuf("~/.vimrc")<cr>
  179. " when .vimrc is edited, reload it
  180. autocmd! bufwritepost .vimrc source ~/.vimrc
  181. elseif MySys() == 'windows'
  182. " Set helplang
  183. set helplang=cn
  184. "Fast reloading of the _vimrc
  185. map <silent> <leader>ss :source ~/_vimrc<cr>
  186. "Fast editing of _vimrc
  187. map <silent> <leader>ee :call SwitchToBuf("~/_vimrc")<cr>
  188. "When _vimrc is edited, reload it
  189. autocmd! bufwritepost _vimrc source ~/_vimrc
  190. endif
  191. if MySys() == 'windows'
  192. source $VIMRUNTIME/mswin.vim
  193. behave mswin
  194. endif
  195. """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
  196. """""""""""""""""""""""""""""""""""""""""""""
  197. " 插件
  198. """""""""""""""""""""""""""""""""""""""""""""
  199. """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
  200. """"""""""""""""""""""""""""""
  201. "加入工程使得能够访问ctags
  202. """"""""""""""""""""""""""""""
  203. "project1"
  204. set tags=tags
  205. set autochdir
  206. "后面的工程加在tags变量上
  207. """"""""""""""""""""""""""""""
  208. " 设置Taglist
  209. """"""""""""""""""""""""""""""
  210. " 按照名称排序
  211. let Tlist_Sort_Type = "name"
  212. " 在右侧显示窗口
  213. let Tlist_Use_left_Window = 1
  214. " 如果只有一个bufferkill窗口也killbuffer
  215. let Tlist_Exist_OnlyWindow = 1
  216. " 使taglist只显示当前文件tag,其它文件的tag都被折叠起来(同时显示多个文件中的tag时)
  217. let Tlist_File_Fold_Auto_Close = 1
  218. " 不要显示折叠树
  219. let Tlist_Enable_Fold_Column = 1
  220. "不同时显示多个文件的tag,只显示当前文件的
  221. let Tlist_Show_One_File = 1
  222. " 键盘映射
  223. nmap tl :TlistToggle<cr>
  224. """""""""""""""""""""""""""""""""""""""""""""
  225. "设置 winManager winManager管理netrwTaglist
  226. """""""""""""""""""""""""""""""""""""""""""""
  227. let g:winManagerWindowLayout = "FileExplorer|TagList"
  228. let g:persistentBehaviour = 0
  229. let g:winManagerWidth = 30
  230. let g:defaultExplorer = 0
  231. nmap <C-W><C-F> :FirstExplorerWindow<cr>
  232. nmap <C-W><C-B> :BottomExplorerWindow<cr>
  233. "nmap <silent> <F8> :WMToggle<cr>
  234. nmap wm :WMToggle<cr>
  235. "设置 netrw
  236. """"""""""""""""""""""""""""""
  237. "let g:netrw_winsize = 30
  238. "nmap <silent> <leader>fe :Sexplore!<cr>
  239. "let Tlist_File_Fold_Auto_Close=1
  240. " 快速切换头文件/源文件
  241. "nnoremap <silent><F12>:A<cr>
  242. ""nmap <silent><F12>:A<CR>
  243. "在工程中快速查找
  244. "nnoremap <silent><F3>:Grep<cr>
  245. """"""""""""""""""""""""""""""
  246. "设置 MiniBufExploer
  247. """"""""""""""""""""""""""""""
  248. " quickfix模式
  249. autocmd FileType c,cpp map <buffer> <leader><space> :w<cr>:make<cr>
  250.  
  251. """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
  252. """"""""""""""""""""""""""""""""""""""""""""""""""
  253. "F5编译和运行C++程序
  254. "F6编译和运行C程序
  255. """"""""""""""""""""""""""""""""""""""""""""""""""
  256. """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
  257. " C的编译和运行
  258. map <F6> :call CompileRunGcc()<CR>
  259. func! CompileRunGcc()
  260. exec "w"
  261. exec "!gcc % -o %<"
  262. exec "! ./%<"
  263. endfunc
  264. " C++的编译和运行
  265. map <F5> :call CompileRunGpp()<CR>
  266. func! CompileRunGpp()
  267. exec "w"
  268. exec "!g++ % -o %<"
  269. exec "! ./%<"
  270. endfunc
  271.  
  272. source $VIMRUNTIME/vimrc_example.vim
  273. source $VIMRUNTIME/mswin.vim
  274. behave mswin
  275. set diffexpr=MyDiff()
  276. function MyDiff()
  277. let opt = '-a --binary '
  278. if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
  279. if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
  280. let arg1 = v:fname_in
  281. if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
  282. let arg2 = v:fname_new
  283. if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
  284. let arg3 = v:fname_out
  285. if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
  286. let eq = ''
  287. if $VIMRUNTIME =~ ' '
  288. if &sh =~ '\<cmd'
  289. let cmd = '""' . $VIMRUNTIME . '\diff"'
  290. let eq = '"'
  291. else
  292. let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"'
  293. endif
  294. else
  295. let cmd = $VIMRUNTIME . '\diff'
  296. endif
  297. silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq
  298. endfunction
  299.  
  300. " 自动补全(ctrl-p)时的一些选项: 多于一项时显示菜单,最长选择; 显示当前选择的额外信息
  301. if v:version >= 700
  302. set completeopt=menu,longest,preview
  303. endif
  304.  
  305. """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
  306. """""""""""""""""""""""""""""""""""""""""""""""""
  307. " 状态行相关动作
  308. """""""""""""""""""""""""""""""""""""""""""""""""
  309. """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
  310. " 显示状态栏 (默认值为 1, 无法显示状态栏)
  311. set laststatus=2
  312. " 状态行颜色
  313. highlight StatusLine guifg=SlateBlue guibg=Yellow
  314. highlight StatusLineNC guifg=Gray guibg=White
  315. function! CurDir()
  316. let curdir = substitute(getcwd(), '/Users/amir/', "~/", "g")
  317. return curdir
  318. endfunction
  319. """""""""""""""""""""""""""""""
  320. "状态行显示内容
  321. """""""""""""""""""""""""""""""
  322. " %F 当前文件名
  323. " %m 当前文件修改状态
  324. " %r 当前文件是否只读
  325. " %Y 当前文件类型
  326. " %{&fileformat} 当前文件编码
  327. " %b 当前光标处字符的 ASCII 码值
  328. " %B 当前光标处字符的十六进制值
  329. " %l 当前光标行号
  330. " %c 当前光标列号
  331. " %V 当前光标虚拟列号 (根据字符所占字节数计算)
  332. " %p 当前行占总行数的百分比
  333. " %% 百分号
  334. " %L 当前文件总行数
  335. set statusline=\ %F%m%r%h\ %w\ \ CWD:\ %r%{CurDir()}%h\ \ \ Line:\ %l/%L:%c
  336. " 设置在状态行显示的信息如下:
  337. "
  338.  
  339. set nowrapscan
  340. "Highlight current
  341. if has("gui_running")
  342. set cursorline
  343. hi cursorline guibg=#333333
  344. hi CursorColumn guibg=#333333
  345. endif
  346. """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
  347. " => VIM userinterface
  348. """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
  349. "Set 7 lines to the curors - when moving vertical..
  350. set so=7
  351. "Do not redraw, when running macros.. lazyredraw
  352. set lz
  353. "Change buffer - without saving
  354. set hid
  355. "Set magic on
  356. set magic
  357. "How many tenths of a second to blink
  358. set mat=2
  359. set lines=40
  360. set columns=100
  361. """""""""""""""""""""""""""""""""""""""""""""""""""
  362. "菜单栏、工具栏显示与隐藏的切换
  363. """""""""""""""""""""""""""""""""""""""""""""""""""
  364. set guioptions-=T
  365. set guioptions-=m
  366. map <silent> <F4> :if &guioptions =~# 'T' <Bar>
  367. \set guioptions-=T <Bar>
  368. \set guioptions-=m <bar>
  369. \else <Bar>
  370. \set guioptions+=T <Bar>
  371. \set guioptions+=m <Bar>
  372. \endif<CR>
  373. """"""""""""""""""""""""""""""""""""""""""""""""""""
  374. " 日历插件设置
  375. """"""""""""""""""""""""""""""""""""""""""""""""""""
  376. " let g:calendar_diary = /calendar
  377. " map ca :Calendar<cr>
  378.  
  379. " gvim 支持 Alt+n 来切换标签页
  380. function! BufPos_ActivateBuffer(num)
  381. let l:count = 1
  382. for i in range(1, bufnr("$"))
  383. if buflisted(i) && getbufvar(i, "&modifiable")
  384. if l:count == a:num
  385. exe "buffer " . i
  386. return
  387. endif
  388. let l:count = l:count + 1
  389. endif
  390. endfor
  391. echo "No buffer!"
  392. endfunction
  393. function! BufPos_Initialize()
  394. for i in range(1, 9)
  395. exe "map <M-" . i . "> :call BufPos_ActivateBuffer(" . i . ")<CR>"
  396. endfor
  397. exe "map <M-0> :call BufPos_ActivateBuffer(10)<CR>"
  398. endfunction
  399. autocmd VimEnter * call BufPos_Initialize()
  400. " 按F11键让VIM全屏
  401. if has('gui_running') && has("win32")
  402. map <F11> <Esc>:call libcallnr("gvimfullscreen.dll", "ToggleFullScreen", 0)<CR>
  403. endif
  404. " 自动载入_vimrc
  405. autocmd! bufwritepost _vimrc source %

  

windows下GVIM的配置(vimrc)的更多相关文章

  1. Windows下gvim配置

    Windows下gvim配置原作地:http://hi.baidu.com/leemoncc/blog/item/a6be15cf40d7ab31b600c806.html 0.准备软件及插件. (a ...

  2. windows下gvim中文乱码解决方案

    网罗了一些网上的解决windows下gvim中文乱码的解决方案,都试了一遍,可惜都不能完全解决我的所有问题,最后我综合一下网上的两种方案,得到了最后完全解决我的中文乱码问题的方案,配置很简单,就是把下 ...

  3. Windows下python的配置

    Windows下python的配置 希望这是最后一次写关于python的配置博客了,已经被python的安装烦的不行了.一开始我希望安装python.手动配置pip并使用pip安装numpy,然而发现 ...

  4. Windows 下用 gogs 配置局域网 git server

    大道曙光 Windows 下用 gogs 配置局域网 git server 最近要用 C# 开发一个新的项目,所以需要在 Windows 局域网环境下构建一个 git server. 在 Window ...

  5. Windows 下如何安装配置Snort视频教程

    Windows 下如何安装配置Snort视频教程: 第一步: http://www.tudou.com/programs/view/UUbIQCng360/ 第二部: http://www.tudou ...

  6. PHP学习之-Mongodb在Windows下安装及配置

    Mongodb在Windows下安装及配置 1.下载 下载地址:http://www.mongodb.org/ 建议下载zip版本. 2.安装 下载windows版本安装就和普通的软件一样,直接下一步 ...

  7. Windows下caffe的配置和调用caffe库(一)

    一.Windows下caffe的配置: 1. 下载caffe官网提供的开发包,https://github.com/microsoft/caffe 2. 将caffe-master目录下的Window ...

  8. windows下安装和配置redis

    1.windows下安装和配置redis 1.1 下载: 官网(linux下载地址):https://redis.io/ Windows系统下载地址:https://github.com/MSOpen ...

  9. Windows下为 Eclipse 配置 C/C++ 编译环境(转)

    1.Eclipse及CDT的安装 CDT的全称是C/C++ DevelopmentTools,CDT使得Eclipse能够支持C/C++的开发.直接下载 eclipse CDT 集成版 下载地址:ht ...

随机推荐

  1. 虚拟机VMware12.0安装centos 6.5+VMware中虚拟机网络模式区分

    之前的步骤一路next,有设置内存大小的根据机器的配置设置一下即可. 需要注意的地方, 下面是对于简化版进行设置的步骤 虚拟机网络模式 1.桥接模式 在桥接模式下,VMware虚拟机里的系统就像是 局 ...

  2. vue -model

    1. v-model:监听表单(input,textarea,selector)value. 2. label不知道你有没有这样的体验,我明明没有点用户名输入框,而仅仅是点了“用户名”三个字,然后就直 ...

  3. hadoop权威指南(第四版)要点翻译(4)——Chapter 3. The HDFS(1-4)

    Filesystems that manage the storage across a network of machines are called distributed filesystems. ...

  4. MYSQL AND OR的联用

    MYSQL中"AND"和"OR"都是条件控制符."AND"是求交集,而"OR"则是求并集,非常多情况下,须要联用它们两个 ...

  5. Linux程序员福利 - 追女友神奇(Linux终端运行炫酷程序)

    概述 作为IT人员,给同事的感觉呆板,不会会浪漫,不懂情趣.其实不然,我们可以用我们的技能创造出IT人员独有的浪漫.girlLove脚本就可以实现IT人员的浪漫.girlLove本质上是一个简易的问答 ...

  6. css-id选择器

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  7. IIS7如何部署asp.net网站 (asp.net mvc 5 , asp.net 4.5 , asp.net 4.0 都可以 )

      第一步:发布网站 右键asp.net web项目,选择发布, 然后新建配置文件名称并选择 "文件系统" 发布方法. 目标位置选择本地新建的文件夹如: IISWebSite 第二 ...

  8. python 高级语法

    #coding:utf-8 #定义一个装饰器函数 def doc_func(func): #包裹函数(闭包) def warpfunc(): #做一些额外的事情 print "%s call ...

  9. 详解Struts1中的struts-config.xml配置文件【一】

    搞清楚struts-config.xml中各项元素的作用,对于我们构建web项目有莫大的好处.<struts-config>是struts的根元素,它主要有8个子元素,DTD定义如下: & ...

  10. CENTOS 下安装APK反编译工具 APKTOOL

    转于:http://www.qiansw.com/centos-apk-apktool.html 我使用的是CentOS6.4 64位的系统.首先需要下载两个包.这里下载:https://code.g ...