我的vim 自动实例括号函数

不废话,直接上代码:

 1 """""""""""""""""""""""""""""""""""""""""""
 2 "自动实例括号
 3 """""""""""""""""""""""""""""""""""""""""""
 4 ""inoremap ( ()<ESC>i
 5 inoremap ( <c-r>=OpenPair(‘(‘,‘)‘)<CR>
 6 inoremap ) <c-r>=ClosePair(‘)‘)<CR>
 7 inoremap { {}<ESC>i
 8 inoremap } <c-r>=ClosePair(‘}‘)<CR>
 9 inoremap [ []<ESC>i
10 inoremap ] <c-r>=ClosePair(‘]‘)<CR>
11 inoremap " <c-r>=QuoteDelim(‘"‘)<CR>
12 inoremap ‘ <c-r>=QuoteDelim("‘")<CR>
13
14 function! OpenPair(char1,char2)
15     let line = getline(‘.‘)
16     let col = col(‘.‘)
17     if col(‘$‘) == col
18         return a:char1 . a:char2. "\<Left>"
19     else
20         return a:char1
21     endif
22 endfunction
23
24 function! ClosePair(char)
25     if getline(‘.‘)[col(‘.‘) - 1] == a:char
26         return "\<Right>"
27     else
28         return a:char
29     endif
30 endfunction
31
32 function! QuoteDelim(char)
33     let line = getline(‘.‘)
34     let col = col(‘.‘)
35     if line[col - 2] == "\\"
36         "Inserting a quoted quotation mark into the string
37         return a:char
38     elseif line[col - 1] == a:char
39         "Escaping out of the string
40         return "\<Right>"
41     else
42         "Starting a string
43         return a:char.a:char."\<Esc>i"
44     endif
45 endf
时间: 2024-08-29 18:48:15

我的vim 自动实例括号函数的相关文章

php 自动加载函数、自动加载方法、自动加载类

在PHP开发过程中,如果希望从 外部引入一个class,通常会使用include和require方法,去把定义这个class的文件包含进来.这个在小规模开发的时候,没什么大问 题.但在大型的开发项目中,这么做会产生大量的require或者include方法调用,这样不因降低效率,而且使得代码难以维护,况且 require_once的代价很大. 在PHP5之前,各个PHP框架如果要实现类的自动加载,一般都是按照某种约定自己实现一个遍历 目录,自动加载所有符合约定规则的文件的类或函数. 当然,PHP

vim自动缩进配置

1.配置文件的位置    在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效.而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:".vimrc".例如,/root目录下,通常已经存在一个.vimrc文件.2.设置语法高亮显示1) 打开vimrc,添加以下语句来使得语法高亮显示:    syntax on2) 如果此时语法还是没有高亮显示,那么在/etc目录下的profile文件中添加以下语句:    export TERM=

Vim自动补全神器–YouCompleteMe

YouCompleteMe的特别之处 基于语义补全 总所周知,Vim是一款文本编辑器.也就是说,其最基础的工作就是编辑文本,而不管该文本的内容是什么.在Vim被程序员所使用后,其慢慢的被肩负了与IDE一样的工作,文本自动补全(ie.acp,omnicppcompleter),代码检查(Syntastic)等等工作. 针对文本自动补全这个功能来说,主要有两种实现方式. 基于文本 我们常用的omnicppcompleter,acp,vim自带的c-x, c-n的实现方式就是基于文本.更通俗的说法,其

Vim自动补全插件----YouCompleteMe安装与配置

Vim自动补全插件----YouCompleteMe安装与配置 使用Vim编写程序少不了使用自动补全插件,在Linux下有没有类似VS中的Visual Assist X这么方便快捷的补全插件呢?以前用的是neocomplcache+code_complete+omnicppcomplete,但效果还是不是很好.看到有YCM后前面的插件可以说拜拜了. YouCompleteMe:一个随键而全的.支持模糊搜索的.高速补全的插件.YCM 由 google 公司搜索项目组的软件工程师 Strahinja

【转】Vim自动补全插件----YouCompleteMe安装与配置

原文网址:http://www.cnblogs.com/zhongcq/p/3630047.html 使用Vim编写程序少不了使用自动补全插件,在Linux下有没有类似VS中的Visual Assist X这么方便快捷的补全插件呢?以前用的是neocomplcache+code_complete+omnicppcomplete,但效果还是不是很好.看到有YCM后前面的插件可以说拜拜了. YouCompleteMe:一个随键而全的.支持模糊搜索的.高速补全的插件.YCM 由 google 公司搜索

扩展一个字符自动长度自动检测的函数

/** * 扩展一个字符自动长度自动检测的函数 * @param {[type]} max [description] * @param {Function} callback [description] * @return {[type]} [description] */ jQuery.fn.maxLength = function(max, callback) { this.each(function(){ var type = this.tagName.toLowerCase(); va

vim自动补全

vim自动补齐脚本及软件包,见附件

Effective C++ 之 Item 6 : 若不想使用编译器自动生成的函数,就该明确拒绝

Effective C++ chapter 2. 构造 / 析构 / 赋值运算 (Constructors, Destructors, and Assignment Operators) Item 6. 若不想使用编译器自动生成的函数,就该明确拒绝 (Explicitly disallow the use of compiler-generated functions you do not want) 地产中介商卖的是房子,一个中介软件系统自然而然想必有个 class 用来描述待售房屋: cla

SQL Network Interfaces, error: 50 - 发生了 Local Database Runtime 错误。无法创建自动实例。

今天在用VS2013自带的LocalDB调整数据库时出错,在网上也搜到许多方案,如卸载SQLServer LocalDB的程序.重新创建实例等都没有解决我的问题,也重新修改以及修复Vs,问题依旧存在,仔细思索研究后找到了解决方案: 1.先贴问题(注:我这里是LocalDB V11.0不能使用): Microsoft Visual Studio --------------------------- 尝试附加到数据库失败并出现以下信息: 在与 SQL Server 建立连接时出现与网络相关的或特定