Vim 下模拟 Emacs 键绑定

Vimer 需要 Emacs 键绑定?看上去很蛋疼的需求吧。其实不然,大部分的 Shell / Readline 默认绑定的是 Emacs 键位绑定(处于输入状态下,Emacs 的键位很好用)。Vim 的模式切换很牛逼,但是 Insert 模式下面,只有寥寥几个快捷键,我修改了配置文件,绑定需要的 Emcas 按键到 Vim 中来。 Github 中搜索关键字 Vim Emcas key bind,出来一些结果,不是很完美,我又慢慢调教了几个星期,放出我的 .vimrc。 " 模拟 Emacs 键绑定 " Move inoremap <C-a> <Home> inoremap <C-e> <End> "inoremap <C-p> <Up> "inoremap <C-n> <Down> inoremap <C-b> <Left> inoremap <C-f> <Right> inoremap <M-b> <C-o>b inoremap <M-f> <C-o>w " Rubout word / line and enter insert mode " use <Esc><Right> instead of <C-o> inoremap <C-w> <Esc>dbcl " delete inoremap <C-u> <Esc>d0cl inoremap <C-k> <Esc><Right>C inoremap <C-d> <Esc><Right>s inoremap <M-d> <C-o>de 需要的朋友请取用,我的 Vim 配置文件和插件在 https://github.com/alswl/.oOo. 。 ...

2012-04-20 · alswl

使用 Vundle 管理 Vim 插件

Thumbnail

早在这个月初,我就在 Vim 的邮件列表看到了一封关于 Vim 插件管理的 邮件。 才惊呼原来有这么强大的插件可以用来管理我那一坨插件, 今天细细阅读并查了一些资料,变开始配置自己的 Vim。 几种管理插件 Vim 的插件管理工具有蛮多,比如: Vundle vim-addon-manager vpathogen.vim vvundle vvimana 一位同学自己写的 Vim-addon-manager 和 vimana 的对比,参见 Vim的插件管理工具 我最会选择了 Vundle,通过子目录管理插件,支持 Git 更新。 我其实不太喜欢子目录,觉得目录太多看着烦,但是考虑到在没有一个良好的 PKG 包描述文件的前提下,分子目录是一种简单有效的方法。 Vundle 通过 git 来对插件进行更新,有三种源可以添加: ...

2012-04-14 · alswl

Vimperator的Pass through

作为 vim 的拥护者,我同时也喜欢使用 Vimperator 这款 Firefox 下面的插件,这款插件可以帮助实现 Firefox 的纯键盘操作。 我同时也是 GMail / Google Reader 的深度用户,他们在网页端也支持纯键盘操作,这样就和 Vimperator 产生了冲突。键盘按键事件被 Vimperator 拦截了,导致键盘操作在这些应用上面不起作用。 还好,Vimperator 提供了一种名为 Pass through 的模式,按 CTRL+Z 进入这种模式,在这种模式下面,Vimperator 将不响应键盘操作,全部放行到 Web 页面。 在某一次版本更新之后, Pass through 的快捷键 CTRL+Z 似乎不起作用了,我翻遍了用户手册也没有找到解决办法。 ...

2011-07-19 · alswl

一个mako.vim

给Vim找了一个Mako的语法高亮,发现着色居然有问题。查看更新记录后发现作者Armin Ronacher只更新到08年9月份。之后Mako更新了一些少许细节,我修改了一下mako.vim,放在这里供下载。 其实我只改了57/58行,增加一个block语法。 点击这里下载:mako.vim 使用方法,放入vimfiles/syntax 相关链接: 原始mako.vim:http://www.vim.org/scripts/script.php?script_id=1858 另外一个mako.vim是缩进用的,放入vimfiles/syntax:http://www.vim.org/scripts/script.php?script_id=2663 ps:Mako是一个Python下面的Template框架。 ...

2011-06-09 · alswl

正则表达式抓捕替换

问题情境 需要将RDL报表里的GetComment( Parameters!F0001.Value , Parameters!F0002.Value ,“total”, Parameters!Language.Value)函数修改为GetCommentForComment( Parameters!F0001.Value , Parameters!F0002.Value ,“total”, Parameters!Language.Value, “ReportConnection0107”)。 思路 使用正则表达式里面的分组进行抓获,再用1将中间固定的参数取出,组成新的字符串。 Vim实现 %s/GetComment(((sw+!w+.w+s,){2}s*“w+“s*,sw+!w+.w+s))/GetCommentForReport(1 , “ReportConnection0107”)/gc 解释:%为全局替换,s为替换。后面则是表达式,和正则表达式差不多,注意是*不需要转义,+ 和 .需要转义,最后的g代表当前行替换,c代表每次替换需要确认。 ...

2011-01-19 · alswl

将VisualStudio打造成Vim

Thumbnail

背景:Vim in VisualStudio? 最近痴迷于Vim,尝试着在.net环境中(70%C#+20%ASPX+10%JS)使用Vim进行开发。但是似乎现成的Vim插件不太适应.net开发平台,在进 行调试、编译以及ASPX页面调整时候还是需要切换到VS。 内事不决问老婆,外事不决问Google,我以关键词"Vim C#“向G神询问,很可惜一圈一圈找下来,都没有什么有价值的答案。在StackOverlow上找到 了一些相关资源,其中几位资深人士(使用Vi/Vim大约20年)提到了一款叫做ViEmu的软件,就好奇的跑去看看。 ...

2010-09-03 · alswl

Vim中缩进和空格的使用

原文链接:WindStorm的技术空间: vim中缩进与空格的设置介绍(Blog Spot) 对于使用vim的程序员来说,shiftwidth,tabstop,softtabstop绝对是经常接触的三个缩进因素。能否有方便美观的,整体化的 缩进,主要是由他们相互间的配合决定。在经过一段时间试用后,总结一下我的设置经验。 1 shiftwidth 这个是用于程序中自动缩进所使用的空白长度指示的。一般来说为了保持程序的美观,和下面的参数最好一致。同时它也是符号移位长度的制定者。 ...

2010-03-09 · alswl