将vim的UltiSnips的快捷键彻底从tab键中分离
在我之前的<<vim之补全1>>和<<vim之补全2>>中曾经成功的将vim的supertab和UltiSnips共用一个tab键, 这样做的优点的两种补全的触发都变得比较方便, 存在的问题有如下几点:
1. supertab不能使用最新版本, 必须使用vim.org中出现的2.0版.
2. UltiSnips虽然可以和supertab正常的共用的tab键, 但由于两个插件的共同作用导致tab键在正常的supertab(保持默认的<ctrl+p>模式)触发后是上选功能但在其他补全方式中却神奇的变成的下选功能. 重点是shift+tab键也变成的下选功能.
3. 两者共用的tab键有时候还是会出现相互误用的问题.
综合上面的问题, 现在决定两二者的tab键功能模式取消, 保持supertab的tab键功能. 将UltiSnips的快捷键从tab中彻底分离.
通过阅读UltiSnips的帮助文档最终实现了这个想法, 具体配置和说明如下:
"UltiSnips
"插入模式下直接通过ii键来触发UltiSnips的代码块补全
let g:UltiSnipsExpandTrigger="ii"
"iI弹出UltiSnips的可用列表,不常用的, 所以这里设置成了特殊的iI映射
let g:UltiSnipsListSnippets="iI"
"II跳转的到下一个代码块可编辑区
let g:UltiSnipsJumpForwardTrigger="II"
"OO跳转到上一个代码块可编辑区
let g:UltiSnipsJumpBackwardTrigger="OO"
之所以用上面的这些特殊的双键映射是因为"ii"是我现在剩下不多的无冲突,易操作,不容易影响正常输入的王牌双键映射了. 这些键集中在i和o键, 易于记忆和操作
更多的原因请参见<<vim之补全1>>和<<vim之补全2>>.
通过上面的设置之后, UltiSnips对tab键就彻底没有影响了, 我们可以正常使用最新版的supertab. 同时tab的所有功能都跟随supertab设置.
将vim的UltiSnips的快捷键彻底从tab键中分离的更多相关文章
- [No000018F]Vim自动缩进配置、原理和tab键替换空格-Vim使用技巧(4)
一.Vim缩进介绍 在没有设置Vim自动缩进的条件下,可以手动使用Vim命令对特定行进行缩进处理.在Vim插入模式下,按下 Tab 键时默认会输入一个制表符,可通过Vim配置项将 Tab 替换为空格, ...
- Ubuntu vim终端常用的快捷键
Ubuntu中常用的快捷键 Ubuntu中的许多操作在终端(Terminal)中十分的快捷,记住一些快捷键的操作更得心应手.在Ubuntu中打开终端的快捷键是Ctrl+Alt+T.其他的一些常用的快捷 ...
- 你想要的sublime、webstorm、vi/vim不得不用的快捷键【简报】【实用】
你想要的sublime.webstorm.vi/vim不得不用的快捷键[简报][实用] 话不多说,马上走起: Sublime Text: ctrl+d alt+f3全选 ctrl+shift+’ ...
- .project sturcture和Project Structure 无论是按快捷键或者是从files中打开都不显示
project sturcture和Project Structure 无论是按快捷键或者是从files中打开都不显示 event log中报:IllegalArgumentException:Mul ...
- sublime插件emmet的配置、使用及快捷键Ctrl+E修改成Tab键操作
一.emmet在sublime中的配置与使用: 1.点击sublime text 3的图标,打开编辑器: 2.按键“ctrl+shift+p”,或者单击菜单->工具->命令面板: 3.打开 ...
- vim的tab键设定
多在windows上编程的童鞋可能习惯于感受tab键为4个空格的长度,不过在linux系统中一般默认设定tab键为8个空格长度来显示.事实上tab也确实是8个空格的长度.不过由于习惯问题,某些童鞋还是 ...
- linux系统下Vi编辑器或者Vim编辑器设置显示行号、自动缩进、调整tab键宽度的技巧?
工作中嫌vim 中一个tab键的宽度太大,linux系统默认,没改之前是一个tab键宽度是8个字符,想改成4个字符, 操作如下:(注意:这是在root用户下)cd ~vim .vimrc添加如下几行: ...
- Linux 下 vim 编辑文件,解决中文乱码,设置Tab键空格数
vim编辑文件的时候,输入中文就出现乱码 解决办法: 以哪个用户登录的就在哪个用户目录下创建文件 vimrc vim .vimrc (.创建的是隐藏文件) 文件内容: set tabsto ...
- vi/vim tab键空格数修改
更改Tap键单位 vi/vim编辑器默认情况下,每按一次Tap相对于8个空格. (1)临时性更改 使用vi打开文件后,输入如下命令: :set tabstop=4 命令释义:更改为相当于四个空格. ( ...
随机推荐
- java 远程调用
1.webservice (soap+http) -aixs -axis2 -xfire—>cxf 2.webservice问题 -基于xml,xml效率,(数据传输效率,xml序列化效率) - ...
- mysql MVCC原理理解
MVCC多版本控制: 指的是一种提高并发的技术.最早的数据库系统,只有读读之间可以并发,读写,写读,写写都要阻塞.引入多版本之后,只有写写之间相互阻塞,其他三种操作都可以并行,这样大幅度提高了Inno ...
- 非常适合新手的jq/zepto源码分析07---ajax的封装
复习下ajax吧! 1.创建XMLHttpRequest对象 xmlhttp=new XMLHttpRequest(); xmlhttp=new ActiveXObject("Microso ...
- NETCore项目报错 An error occurred while starting the application
在发布到IIS的webApi项目中,运行时报出以上错误, 解决方法: 1.打开发布目录文件夹,找到web.config文件 2.打开web.config找到stdoutLogEnabled=" ...
- 如何下载youtube的视频
1 登陆以下网址,输入视频地址,点击Download,然后右下角出现了链接,点击即可下载 http://en.savefrom.net/
- Oracle OCP之硬解析在共享池中获取内存锁的过程
转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/38684819 1.获得library cache Latch (1)在父游标的名柄没有找到 ...
- Python3基础(十) 类的初印象
Python是一种面向对象的脚本语言,所以它也提供了面向对象编程的所有基本特征:允许多继承的类继承机制.派生类可以重写它父类的任何方法.一个方法可以调用父类中同名的方法.对象可以包含任意数量和类型的数 ...
- linux设备驱动程序_hello word 模块编译各种问题集锦
在看楼经典书籍<linux设备驱动程序>后,第一个程序就是编写一个hello word 模块. 原以为非常easy,真正弄起来,发现问题不少啊.前两天编过一次,因为没有记录,今天看的时候又 ...
- Parallel and Perpendicular
题目链接 题意: 输入n,求正n边形中的对角线1和对角线2的个数(对角线1:至少与其它一个对角线平行:对角线2:至少与其它一个对角线垂直).对角线不能是多边形的边 (4 ≤ n ≤ 10e5) 分析: ...
- ubuntu系统jdk安装及环境变量配置
一.安装jdk 1.下载linux版本jdk,我用的是最新版本1.8.0_102 2.打开终端,进入jdk的存放路径 3.解压.tar.gz文件 sudo tar zxvf jdk-8u102-lin ...