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 ...
随机推荐
- 刚子扯谈:源于Chanel的图片描述
文/刚子 2013年8月9日 北京晴 猴晒猴晒 开片语:真心不知道今天该分享点啥?先扯几句牢骚,我个人认为对朋友也够意思,虽然他们有的时候挺操蛋的,虽然还简称哥们儿,虽然还一起交流,但已经变成了无谓的 ...
- Emoji字符检查与替换
当文本包含Emoji字符的时候,存储到数据库或读取的时候需要进行编码和解码(如UTF_8),否则MySQL的存储可能有异常. 当有的文本不允许输入Emoji字符,或者显示时需要将Emoji替换为指定字 ...
- TreeSet类的排序问题
http://www.cnblogs.com/lixiaolun/archive/2012/12/25/2832775.html TreeSet支持两种排序方法:自然排序和定制排序.TreeSet默 ...
- CCF计算机认证——字符串匹配问题(运行都正确,为什么提交后只给50分?)
我的程序: #include<iostream> #include<cctype> #include<string> #include<vector> ...
- Java学习之Comparable与Comparator的区别
Comparable & Comparator 都是用来实现集合中元素的比较.排序的,只是 Comparable 是在集合内部定义的方法实现的排序,Comparator 是在集合外部实现的排序 ...
- Java提高学习之Object类详解(1)
转自:http://www.importnew.com/10304.html 问:什么是Object类? 答:Object类存储在java.lang包中,是所有java类(Object类除外)的终极父 ...
- Eclipse用法和技巧二十五:eclipse图标的含义
用了eclipse很久,在使用断点调试的时候才开始关注图标的含义.这才发现eclipse的图标还是很丰富的,熟悉的知道每个图标的含义还是蛮不错的,尤其是在断点调试中.eclipse自带了详细的图标说明 ...
- Android存储小结
转自:http://www.liaohuqiu.net/cn/posts/storage-in-android/ android系统自身自带有存储,另外也可以通过sd卡来扩充存储空间.前者好比pc中的 ...
- [原创]obj-c编程15[Cocoa实例02]:KVC和KVO的实际运用
原文链接:obj-c编程15[Cocoa实例02]:KVC和KVO的实际运用 我们在第16和第17篇中分别介绍了obj-c的KVC与KVO特性,当时举的例子比较fun,太抽象,貌似和实际不沾边哦.那么 ...
- getchar()与EOF
大师级经典的著作,要字斟句酌的去读,去理解.以前在看K&R的The C Programming Language(Second Edition)中第1.5节的字符输入/输出,很迷惑getcha ...