vsvim _vsvimrc 设置(转)
c_joewang的专栏 (转)
vsvim安装到vs2010后可以使用绝大部分原生vim的编辑功能,包括宏录制,也可以通过配置设置键盘映射,关于支持的编辑功能等可以参考上面链接去查看相关文档。
Vim通过使用前置键来扩展键盘映射,vsvim也支持前置键来做vim键盘命令扩展。Vsvim的好处是跟vs2010的功能结合起来,通过键盘映射可以直接通过命令来调用vs的功能。
最简单的比如保存文件,在vsvim的配置文件中加上:
nmap <Leader>w :w<CR>
当用vim模式编辑好代码文件时,(我使用分号做为Leader键盘)在normal模式下直接键入 ;w 就可以保存文件,非常方便和快速,这个比使用ctrl+s要优雅得多。
还有例如关闭文件等:
nmap <Leader>q :q<CR>
以上列出的功能原生vim本身也同样支持。在vs中这个功能得到扩展,例如我还可以通过命令启动编译,启动调试这样的功能。
在vsvim的配置文件中添加:
nmap <Leader>vb :vsc Build.BuildOnlyProject<CR>
nmap <Leader>vc :vsc Build.Compile<CR>
以上命令是在normal下直接键入 ;vb(分号+vb字母)就可以调用编译生成命令,
直接键入 ;vc 可以启动编译
在上面的配置中以 :vsc 开头的命令可以调用vs键盘方案中设置的功能,在vs的tool->environment->KeyBoard中:
Vs这个选项也是非常强大的,几乎把所以在vs上可视化操作都列在表里,包括vs和其插件的各种功能,并且可以自定义各种键盘快捷键。这个功能被vsvim插件应用到,并且可以很自由的通过上面那种:vsc 的格式通过vsvim的键盘命令来调用。
例如我们常用的va插件的功能,在键盘快捷键列表中也能找到:
这个是va插件常用的在导航栏列出(搜索)函数的功能,正常情况操作一般是用鼠标去点导航栏的下拉列表或用鼠标激活列表编辑窗口再输入关键来过滤函数列表,使用以下添加到配置文件中的命令:
nmap <Leader>l :vsc VAssistX.ListMethodsInCurrentFile<CR>
即在 normal下直接键入 ;l 就可以直接列出函数列表并激活函数列表过江编辑框,这个比使用鼠标操作就要流畅得多。
从以上演示看出,只要在vs键盘列表中能找到的各种操作的键盘方案,都可以映射成vsvim的命令,对于在windows上使用vim插件如虎添翼。
以下是我常用的一些vsvim配置(_vsvimrc):vimrcpaths="C:\Users\Administrator;C:\Users\Administrator\vimfiles;C:\Users\Administrator"
"定义转义符
let mapleader = ";" "显示行号
set number "高亮搜索的关键字
set hlsearch "搜索忽略大小写
set ignorecase " 随着键入即时搜索
set incsearch " 有一个或以上大写字母时仍大小写敏感
set smartcase " 定义快捷键到行首和行尾 nmap <Leader>v <C-Q> " 定义快捷键保存当前窗口内容 nmap <Leader>w :w<CR> imap <Leader>w<ESC>:w<CR> nmap <Leader>q :q<CR> imap <Leader>d <ESC> vmap <Leader>d <ESC> nmap <Leader>d <ESC> nmap <Leader>s zz vmap <Leader>s zz imap <Leader>s<ESC>zz<Insert><Right> set vsvim_useeditordefaults "backspace有几种工作方式,默认是vi兼容的。对新手来说很不习惯。对老vi 不那么熟悉的人也都挺困扰的。可以用
"set backspace=indent,eol,start来解决。
" indent: 如果用了:set indent,:set ai 等自动缩进,想用退格键将字段缩进的删掉,必须设置这个选项。否则不响应。
"eol:如果插入模式下在行开头,想通过退格键合并两行,需要设置eol。start:要想删除此次插入前的输入,需设置这个。
set backspace=indent,eol,start nmap <C-O> :vsc View.NavigateBackward<CR> nmap <C-I> :vsc View.NavigateForward<CR> "nmap <C-]> :vsc Edit.GoToDefinition<CR> nmap <C-]> :vsc VAssistX.GotoImplementation<CR> imap <C-]> :vsc VAssistX.GotoImplementation<CR> nmap <Leader>t :vsc VAssistX.GotoImplementation<CR> imap <Leader>t :vsc VAssistX.GotoImplementation<CR> nmap <Leader>t :vsc VAssistX.GotoImplementation<CR> imap <Leader>t :vsc VAssistX.GotoImplementation<CR> map<Space> 5j "map<S-Space> 5k map<S-Enter> - map<Leader><Enter> ^ nmap<Leader>y yiw nmap<Leader>p diw<ESC>"0P set so= set hi set hls nmap<Leader>xh :noh<CR> nmap <Leader>vb :vsc Build.BuildOnlyProject<CR> "调试运行F5
nmap <Leader>mb :vsc Debug.Start<CR> "编译CTRL+F7
nmap <Leader>ma :vsc Build.Compile<CR> "编译运行CTRL+F5
nmap <Leader>mr :vsc Debug.StartWithoutDebugging<CR> nmap <Leader>vf :vsc Edit.FindinFiles<CR> nmap <Leader>vr :vsc Edit.ReplaceinFiles<CR> nmap <Leader>vp :vsc File.OpenContainingFolder<CR> nmap <Leader>vws :vsc Window.NewVerticalTabGroup<CR> nmap <Leader>vwh :vsc Window.NewHorizontalTabGroup<CR> nmap <Leader>l :vsc VAssistX.ListMethodsInCurrentFile<CR> nmap <Leader>o :vsc VAssistX.OpenFileInSolutionDialog<CR> imap <Leader>l <ESC>:vsc VAssistX.ListMethodsInCurrentFile<CR> imap <Leader>o <ESC>:vsc VAssistX.OpenFileInSolutionDialog<CR> "头文件切换
nmap <Leader>a :vsc VAssistX.OpenCorrespondingFile<CR> imap <Leader>a :vsc VAssistX.OpenCorrespondingFile<CR> " 使用 va 查找符号 nmap <Leader>vs :vsc VAssistX.FindSymbolDialog<CR> " ve 查找所有引用位置 nmap <Leader>ve :vsc VAssistX.FindReferences<CR>
vsvim _vsvimrc 设置(转)的更多相关文章
- vs vsvim viemu vax 备忘
使用gt和gT往返标签 gd:到达光标所在处函数或者变量的定义处. *:读取光标处的字符串,并且移动光标到它再次出现的地方. #:和上面的类似,但是是往反方向寻找. /text:从当前光标处开始搜索字 ...
- Linux命令总结大全,包含所有linux命令
使用说明:此文档包含所有的Linux命令,只有你想不到的没有你看不到的,此文档共计10万余字,有8400多行,预计阅读时间差不多需要3个小时左右,所以要给大家说一说如何阅读此文档 为了方便大家阅读,我 ...
- VsVim的快捷键
VsVim - Shortcut Key (快捷键) Enable / Disable 还可以通过 Ctrl+Shift+F12 在 Visual Studio 中实现 Enable / Disabl ...
- VS 一些配置设置
/************************************************************************ * VS 一些配置设置 * 说明: * 最近要用到C ...
- VS 一些用法设置
/************************************************************************ * VS 一些用法设置 * 说明: * 最近要用到C ...
- VS下使用VIM, Visual Studio 安装 VSvim插件 配置 及使用
简介 VIM是一款很高效的编辑工具,所幸的是VS2012以后支持VIM的插件:VsVim.下面介绍插件的安装.配置及简单使用. 1. 下载安装 去官网下载,双击直接安装后,重新打开VS. https: ...
- 【.net 深呼吸】设置序列化中的最大数据量
欢迎收看本期的<老周吹牛>节目,由于剧组严重缺钱,故本节目无视频无声音.好,先看下面一个类声明. [DataContract] public class DemoObject { [Dat ...
- LINUX篇,设置MYSQL远程访问实用版
每次设置root和远程访问都容易出现问题, 总结了个通用方法, 关键在于实用 step1: # mysql -u root mysql mysql> Grant all privileges o ...
- Visual Studio Code 代理设置
Visual Studio Code (简称 VS Code)是由微软研发的一款免费.开源的跨平台文本(代码)编辑器,在十多年的编程经历中,我使用过非常多的的代码编辑器(包括 IDE),例如 Fron ...
随机推荐
- linux内核函数库文件的寻找
linux内核函数的so库文件怎么找呢? 首先还是要产生一个进程的coredump文件的 linux有一个lib-gdb.so库,这个进程的coredump文件中所有load段的最后一个load段中, ...
- 泛型、注解、log4j
泛型.注解.log4j 泛型:将运行阶段的类型错误提前到编译阶段. 声明泛型必须两端的一致,要么左面有,要么右边有,两边都有的两边必须一致. 泛型方法: static 之后 返回类型之前进行声明 泛型 ...
- C++中使用class和structkeyword的不同
类能够在它的第一个訪问说明符之前定义成员,对这样的成员的訪问权限依赖于类定义的方式.假设我们使用structkeyword,则定义在第一个訪问说明符之前的成员是public的,相反,假设使用class ...
- Sizzle一步步实现所有功能(层级选择)
第二步:实现Sizzle("el,el,el..."),Sizzle("el > el"),Sizzle("el el"),Sizzl ...
- iOS协议
ios中的协议:大家猛一看 感觉挺高深的 其实ios中的协议就是c#,java中的接口 只是变了一个形式: 自我感觉ios中的协议没有c#中的接口好 人家的接口就是固定你的程序内容的 而ios中 ...
- list去重 转载
http://blog.csdn.net/huaishuming/article/details/47778319 1. 单个List 去重: 如果用的是Set集合就不用怕重复的问题了,如果用的Lis ...
- C++, const:
问题: const成员函数和普通成员函数可以是同名同参数吗? 可以,这是一种函数的重载. const成员函数可不可以修改对象的成员变量的值? 不可以修改.//error C3490: ...
- EC读书笔记系列之5:条款9、条款10
条款9 绝不在构造和析构过程中调用virtual函数 记住: ★在构造和析构期间不要调用virtual函数,∵这类调用从不下降至derived class ---------------------- ...
- light oj 1027 A Dangerous Maze
一道数学期望题,唉唉,概率论学的不好啊~~ 求走出迷宫的期望时间. 由于有的门会回到起点,所以有可能会走很多遍,设能走出去的门的个数为n1,总的个数为n,那么一次走出去的概率为n1/n,走一次的用的平 ...
- char str[] 与 char *str的区别详细解析
char* get_str(void) { char str[] = {"abcd"}; return str; } char str[] = {"abcd"} ...