windows下的gvim配置

首要任务是下载安装Gvim7.3 。

安装完后,gvim菜单中文出现乱码,在_vimrcset文件中增加:

" 配置多语言环境,解决中文乱码问题

if has("multi_byte") 
    " UTF-8 编码 
    set encoding=utf-8 
    set termencoding=utf-8 
    set formatoptions+=mM 
    set fencs=utf-8,gbk 
    if v:lang =~? '^/(zh/)/|/(ja/)/|/(ko/)' 
        set ambiwidth=double 
    endif 
    if has("win32") 
        source $VIMRUNTIME/delmenu.vim 
        source $VIMRUNTIME/menu.vim 
        language messages zh_CN.utf-8 
    endif 
else 
    echoerr "Sorry, this version of (g)vim was not compiled with +multi_byte" 
endif

3、设置语法高亮

编辑安装目录下的_vimrc文件(例如:我的在D:\Program Files\Vim)

     加入以下内容:

     set nu!

     colorscheme desert 
     syntax enable 
     syntax on

用 taglist 实现代码导航
解决了目录和文件导航问题,我们还要为代码之间的跳转提供辅助手段,taglist 就是这样一个插件。taglist 可以列出已打开文件中定义的类、函数、常量,甚至变量。

下载地址: http://www.vim.org/scripts/script.php?script_id=273
下载文件:taglist_45.zip

压缩包需要完整解压缩到 $VIMvimfiles 目录,并且用 :helptags $VIMvimfilesdoc 命令索引 taglist 插件的帮助文档。taglist 插件需要依赖 ctags 程序才能工作。目前常用的 ctags 版本是 Exuberant Ctags。

下载地址: http://ctags.sourceforge.net/
下载文件:ec57w32.zip

只需要把压缩包中的 ctags.exe 复制到 $VIMvim72 目录中即可。ctags.exe 应该和 gvim.exe 在一个目录。  
最后在 _vimrc 添加下列内容,设置好 taglist 插件:

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => Plugin configuration
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" taglist

let Tlist_Show_One_File=1 
let Tlist_Exit_OnlyWindow=1

let Tlist_Auto_Highlight_Tag = 1
let Tlist_Auto_Open = 1
let Tlist_Auto_Update = 1
let Tlist_Close_On_Select = 0
let Tlist_Compact_Format = 0
let Tlist_Display_Prototype = 0
let Tlist_Display_Tag_Scope = 1
let Tlist_Enable_Fold_Column = 0
let Tlist_Exit_OnlyWindow = 0
let Tlist_File_Fold_Auto_Close = 0
let Tlist_GainFocus_On_ToggleOpen = 1
let Tlist_Hightlight_Tag_On_BufEnter = 1
let Tlist_Inc_Winwidth = 0
let Tlist_Max_Submenu_Items = 1
let Tlist_Max_Tag_Length = 30
let Tlist_Process_File_Always = 0
let Tlist_Show_Menu = 0
let Tlist_Show_One_File = 0
let Tlist_Sort_Type = "order"
let Tlist_Use_Horiz_Window = 0
let Tlist_Use_Right_Window = 1
let Tlist_WinWidth = 40let Tlist_Show_One_File=1 
let Tlist_Exit_OnlyWindow=1
let tlist_php_settings = 'php;c:class;i:interfaces;d:constant;f:function'

gvim 代码自动提示 插件

插件名:AutoComplPop 

下载地址:http://www.vim.org/scripts/script.php?script_id=1879

gvim 代码模板补全 插件

插件名:snipMate 

下载地址:http://www.vim.org/scripts/script.php?script_id=2540

 

通过vim字典补全,实现php函数名自动补全 字典到网上搜索下载

将下面内容加入.vimrc文件中即可

au FileType php call AddPHPFuncList()

function AddPHPFuncList()

    set dictionary-=$VIM/vimfiles/extra/php_funclist.txt dictionary+=$VIM/vimfiles/extra/php_funclist.txt

    set complete-=k complete+=k

endfunction

使用方式(关键字+<tab>

 

"代码自动补全  (按快捷键Ctrl+X+O

set autoindent

autocmd FileType python set omnifunc=pythoncomplete#Complete

autocmd FileType javascrīpt set omnifunc=javascrīptcomplete#CompleteJS

autocmd FileType html set omnifunc=htmlcomplete#CompleteTags

autocmd FileType css set omnifunc=csscomplete#CompleteCSS

autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags

autocmd FileType php set omnifunc=phpcomplete#CompletePHP

autocmd FileType c set omnifunc=ccomplete#Complete

 

关键字补全 (快捷键 Ctrl+P

 

vim中实现括号和引号自动补全

将下面内容加入.vimrc文件中即可

 

inoremap ( ()<Esc>i

inoremap [ []<Esc>i

inoremap { {<CR>}<Esc>O

autocmd Syntax html,vim inoremap < <lt>><Esc>i| inoremap > <c-r>=ClosePair('>')<CR>

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

inoremap ] <c-r>=ClosePair(']')<CR>

inoremap } <c-r>=CloseBracket()<CR>

inoremap " <c-r>=QuoteDelim('"')<CR>

inoremap ' <c-r>=QuoteDelim("'")<CR>

 

function ClosePair(char)

 if getline('.')[col('.') - 1] == a:char

 return "\<Right>"

 else

 return a:char

 endif

endf

 

function CloseBracket()

 if match(getline(line('.') + 1), '\s*}') < 0

 return "\<CR>}"

 else

 return "\<Esc>j0f}a"

 endif

endf

 

function QuoteDelim(char)

 let line = getline('.')

 let col = col('.')

 if line[col - 2] == "\\"

 "Inserting a quoted quotation mark into the string

 return a:char

 elseif line[col - 1] == a:char

 "Escaping out of the string

 return "\<Right>"

 else

 "Starting a string

 return a:char.a:char."\<Esc>i"

 endif

endf


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/444905.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leetcode104 二叉树的最大深度

给定一个二叉树&#xff0c;找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例&#xff1a; 给定二叉树 [3,9,20,null,null,15,7]&#xff0c; 3 / \ 9 20 / \ 15 7 返回它的最大深度…

C++的安全类型转换的讨论

关于强制类型转换的问题,很多书都讨论过,写的最详细的是C++ 之父的《C++的设计和演化》。最好的解决方法就是不要使用C风格的强制类型转换,而是使用标准C++的类型转换符:static_cast, dynamic_cast。标准C++中有四个类型转换符:static_cast、dynamic_cast、reinterpret_ca…

PaperNotes(10)-Maximum Entropy Generators for Energy-Based Models

Maximum Entropy Generators for Energy-Based ModelsAbstract1 Introduction2 Background3 Maximum Entropy Generators for Energy-Based Models4 Experiments5 Related Work6 Conclusion7 AcknowledgementsAbstract 由于对数似然梯度的难以计算&#xff0c;能量模型的最大似…

leetcode105 前序中序遍历序列构造二叉树

根据一棵树的前序遍历与中序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 例如&#xff0c;给出 前序遍历 preorder [3,9,20,15,7] 中序遍历 inorder [9,3,15,20,7] 返回如下的二叉树&#xff1a; 3 / \ 9 20 / \ 15 7 思路&#xff1a; 1、…

c++的虚拟继承 的一些思考吧

虚拟继承是多重继承中特有的概念。虚拟基类是为解决多重继承而出现的。如:类D继承自类B1、B2,而类B1、B2都继承自类A,因此在类D中两次出现类A中的变量和函数。为了节省内存空间,可以将B1、B2对A的继承定义为虚拟继承,而A就成了虚拟基类。实现的代码如下: class A class …

对于linux socket与epoll配合相关的一些心得记录

对于linux socket与epoll配合相关的一些心得记录 没有多少高深的东西&#xff0c;全当记录&#xff0c;虽然简单&#xff0c;但是没有做过测试还是挺容易让人糊涂的int nRecvBuf32*1024;//设置为32Ksetsockopt(s,SOL_SOCKET,SO_RCVBUF,(const char*)&nRecvBuf,sizeof(int))…

leetcode144 二叉树的前序遍历

给定一个二叉树&#xff0c;返回它的 前序 遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3] 进阶: 递归算法很简单&#xff0c;你可以通过迭代算法完成吗&#xff1f; 思路&#xff1a;模仿递归的思路压栈即可。 /*** Definition for a bi…

AJAX大总结

1、AJAX概述 1.1 什么是AJAX AJAX&#xff08;Asynchronous Javascript And XML&#xff09;翻译成中文就是“异步Javascript和XML”。即使用Javascript语言与服务器进行异步交互&#xff0c;传输的数据为XML&#xff08;当然&#xff0c;传输的数据不只是XML&#xff09;。 …

我对STL的一些看法(一)初步认识STL

后面一段时间我将会给大家分享我自己学到STL以及应用的时候遇到的问题还有他的一些精髓,可能开始的逻辑会有些乱吧,不过后面还会不断的整理和优化,让自己看明白也让更多的读者看的清楚。 最近刚闲下来,先说说什么是STL: 不知道你是否有过这样的经历。在大学,你准备着手完…

PaperNotes(12)-Autoregressive Quantile networks for generative modeling

Autoregressive Quantile networks for generative modeling3 autoregressive implicit quantiles3 autoregressive implicit quantiles autoregressive&#xff1a;自身做回归变量&#xff0c;用之前若干时刻的随机变量 来建模 之后某些时刻 随机变量的模型。 N维随机变量的…

我对STL的一些看法(二)认识vector容器

先说vector吧。 C++ Vector(向量容器) 是一个线性顺序结构。相当于数组,但其大小可以不预先指定,并且自动扩展。它可以像数组一样被操作,由于它的特性我们完全可以将vector 看作动态数组。 vector 的数据安排以及操作方式,与 array 非常像似。两者的唯㆒差别在于空间的…

git大总结

git init 在本地新建一个repo,进入一个项目目录,执行git init,会初始化一个repo,并在当前文件夹下创建一个.git文件夹. git clone 获取一个url对应的远程Git repo, 创建一个local copy. 一般的格式是git clone [url]. clone下来的repo会以url最后一个斜线后面的名称命名,创…

我对STL的一些看法(三)认识list容器

C++ List(双向链表) 是一个线性链表结构,它的数据由若干个节点构成,每一个节点都包括一个信息块(即实际存储的数据)、一个前驱指针和一个后驱指针。它无需分配指定的内存大小且可以任意伸缩,这是因为它存储在非连续的内存空间中,并且由指针将有序的元素链接起来。由于…

C++(4)--初识变量、数据类型

C变量1.C 命名规则2.C 命名规范3.C 数据类型sizeof ()4.声明和使用变量4.1使用整型变量4.2使用单精度浮点型变量4.3使用双精度浮点型变量5.附送-cout 设置宽度&#xff0c;对齐方式6.算术运算符和表达式6.1除法、取余6.2自加、自减7.强制类型转换《老九学堂C课程》《C primer》…

我对STL的一些看法(四)认识deque容器

Deque(双向队列) 是一种优化了的、对序列两端元素进行添加和删除操作的基本序列容器。它允许较为快速地随机访问,但它不像vector 把所有的对象保存在一块连续的内存块,而是采用多个连续的存储块,并且在一个映射结构中保存对这些块及其顺序的跟踪。向deque 两端添加或删除元…

我对STL的一些看法(五)初识关联容器

3关联容器 pair类型 这个是一个简单的标准库类型,该类型在utility头文件中定义,我们来看看他主要的操作: pair<T1 ,T2> p1; 创建一个空的pair对象 pair<T1,T2> p1(v1,v2);创建一个pair对象,他的两个元素分别为T1类型的v1,T2类型的v2 make_pair(v1,v2…

关系数据库——mysql数据类型大总结

整数类型&#xff1a; 实数类型&#xff1a; 定点数&#xff1a;DECIMAL和NUMERIC类型在MySQL中视为相同的类型。它们用于保存必须为确切精度的值。 DECIMAL(M,D)&#xff0c;其中M表示十进制数字总的个数&#xff0c;D表示小数点后面数字的位数。 如果存储时&#xff0c;整…

学点数学(5)--线性规划对偶形式的理解

线性规划对偶问题的理解1.弱对偶2.强对偶曾在上课的时候多次遇到这个求一个问题的对偶形式&#xff0c;大多是硬套公式。记一次&#xff0c;忘一次。后来在苏大佬的博客中看到了相关阐述&#xff0c;感觉豁然开朗&#xff0c;&#xff08;可以记得就一些了&#xff09;遂做笔记…

关系数据库——视图/存储过程/触发器

视图 视图是虚拟的表&#xff0c;与包含数据的表不同&#xff0c;视图只包含使用时动态检索数据的查询,主要是用于查询。 为什么使用视图 重用sql语句简化复杂的sql操作&#xff0c;在编写查询后&#xff0c;可以方便地重用它而不必知道他的基本查询细节。使用表的组成部分而…

C++(5)--运算符、表达式、条件结构(if, switch)

C运算符、表达式 条件结构1.表达式与运算符1.1赋值运算符1.2算术运算符1.3关系运算符1.4逻辑运算符1.5位运算符1.6 sizeof()1.7 三目运算符1.8 运算符的优先级2.条件结构2.1--if2.2 --switch结构2.3 switch 和 多重if 结构的对比条件结构)《老九学堂C课程》《C primer》学习笔记…