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 ...
随机推荐
- 消除“Permission is only granted to system apps”错误
遇见这个问题我百度搜了一大堆说是须要clean项目,可是我每次clean项目的时候我的R文件总是丢失. 如今我给大家介绍一下避免授予系统权限报错更改方法 在AndroidManifest.xml中使用 ...
- Java面试题之Class.forName的作用
按参数中指定的字符串形式的类名去搜索并加载相应的类,如果该类字节码已经被加载过,则返回代表该字节码的Class实例对象,否则,按类加载器的委托机制去搜索和加载该类,如果所有的类加载器都无法加载到该类, ...
- javascript 面向对象的继承的实现
JavaScript 中的面向对象的初步认识 上面这篇简单的记录了我对 JS面向对象实现的一点初步认识和了解,下面继续研究JS面向对象,实现继承和多态. 之前的学习我了解到了 :构造函数加属性,原型p ...
- SqlServer查询数据库所有表
//SqlServer查询数据库所有表SELECT * FROM SYSOBJECTS WHERE TYPE='U' and name like '%dict%'
- 在Linux下如何用Shell脚本读写XML?现有一个config.xml(转)
在Linux下如何用Shell脚本读写XML?现有一个config.xml <?xml version="1.0" encoding="UTF-8"?&g ...
- EC读书笔记系列之11:条款20、21
条款20 宁以pass-by-reference-to-const替换pass-by-value 记住: ★尽量以pass-by-reference-to-const替换pass-by-value.前 ...
- Linux系统管理员不可不知的命令:sudo
对Linux系统管理员或高级用户而言,sudo是必不可少的最重要的命令之一.当我们想要运行重要任务时,sudo提供了安全的提升权限.请耐心读本文,看看sudo能为你做些什么. sudo是个统管一切的命 ...
- Programming C#.Classes and Objects.传递参数
ref 关键字通过引用(而非值)传递参数. 通过引用传递的效果是,对所调用方法中的参数进行的任何更改都反映在调用方法中. 说明: 不要混淆通过引用传递的概念与引用类型的概念. 这两种概念是不同的. 无 ...
- Java数组复制
System提供了一个静态方法arraycopy(),我们可以使用它来实现数组之间的复制.其函数原型是: public static void arraycopy(Object src, int sr ...
- cursor的形状
Example:CSS鼠标手型效果 <a href="#" style="cursor:hand">CSS鼠标手型效果</a> Exam ...