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 ...
随机推荐
- C#,json字符串转换成Json对象
将JSON的请求参数转化为C#可序列化对象! JSON请求参数: "{\"id\":1,"name":"张三","dep ...
- C#格式化成小数
datagridview某列格式化成两位小数 ............................................................................. ...
- Mac 任何选项没有了怎么办?
1.如果需要恢复允许"任何来源"的选项,即关闭 Gatekeeper,请打开终端 2.然后使用 spctl 命令: sudo spctl --master-disable
- 《think in python》学习-3
函数 函数是指用于进行某种计算的一系列语句的有名称的组合. type(32) 就是一个函数调用的例子 类型转换函数 python提供了一些可将某个值从一种类型转换为另外一个类型的内置函数 int(32 ...
- js实现弹出窗口、页面变成灰色并不可操作的例子
function show() //显示隐藏层和弹出层 { var hideobj=document.getElementById("hidebg"); hidebg.style. ...
- There is no result type defined for type 'json' mapped with name 'success'. Did you mean 'json'?
错误信息: 严重: Exception starting filter struts2 Unable to load configuration. - action - file:/C:/Users/ ...
- JavaSE复习日记 : 循环终止语句(break/break outerFor/continue)
最近没网,但攒了几天的博客,这次逮到机会发博客,直接三篇走起; /* * 循环终止语句: break/ break outerFor/ continue */ /* * break语句 * 1. 用于 ...
- Python核心编程读笔 9: 异常
第10章 异常一.异常1 检测和处理异常 (1)try-except语句 try: try_suite #监控这里的异常 except Exception[, reason]: except_suit ...
- OpenCV学习(1)OpenCV简介
简介 OpenCV的全称是:Open Source Computer Vision Library,OpenCV是一个开源的跨平台的计算机视觉库,可以运行在Linux.Windows和Mac OS操作 ...
- CSS3弹性盒模型布局模块
原文:http://robertnyman.com/2010/12/02/css3-flexible-box-layout-module-aka-flex-box-introduction-and-d ...