快捷键:唯快不破
2012-11-27
编程环境为windows,部分配置不相同,未安装Bundle插件,配置中颜色方案设置为torte(colorscheme torte),字体设置为Consolas(set guifont=Consolas:h10)以及注释掉关闭菜单和工具的配置,另外给eclipse颜色设置为黑色风格(在help–>eclispe Marketplace下安装eclispe color theme插件).
几个插入模式下的快捷键:
CTRL+D 减少缩进
CTRL+T 增加缩进
CTRL+Y 复制上一行的相同列的字符
CTRL+W 删除光标左侧的单词
命令模式下的快捷键:
. 可以重复上一次的命令
N<command> 重复某个命令N次
% 匹配括号移动,包括 (, {, [.
*和# 配光标当前所在的单词,移动光标到下一个(或上一个)匹配单词
gU 变大写
gu 变小写
t, 到逗号前的第一个字符。逗号可以变成其它字符
3fa 在当前行查找第三个出现的a
0 <C-v> <C-d> I-- [ESC]
qa 把你的操作记录在寄存器 a
@a replay被录制的宏
@@ 是一个快捷键用来replay最新录制的宏
J 把所有的行连接起来(变成一行)
< 或 > 左右缩进
= 自动给缩进
在所有被选择的行后加上点东西:
<C-v>
选中相关的行 (可使用 j 或 <C-d> 或是 /pattern 或是 % 等……)
$ 到行最后
A, 输入字符串,按 ESC
nmap <c-enter> <End>A<cr> " 正常模式下的换行并新建一行
imap <c-enter> <End><cr> " 插入模式下的换行并新建一行
模式区别和切换, Normal, Visual, Insert, Command (i, c, esc, C-c, v, V, C-v...)
移动的各种技法,基本(h, j, k, l),object移动(w,W, b, B, f, F...)
搜索和替换的各种技法,/, ?, :s//
eclipse的几个快捷键:
ctrl+shift+r:打开资源
ctrl+o:快速outline
ctrl+d: 删除当前行
alt+shift+r:重命名
alt+shift+j:添加注释
alt+shift+l以及alt+shift+m:提取本地变量及方法
alt+shift+c: 修改函数结构(比较实用,有n个函数调用了这个方法,修改一次搞定)
alt+shift+f: 把class中的local变量变为field变量
alt+shift+i: 合并变量
alt+shift+v: 移动函数和变量(不怎么常用)
alt+shift+z: 重构的后悔药(undo)
shift+enter:在当前行之下创建一个空白行
ctrl+shift+enter:则在当前行之前插入空白行
alt+方向键:将当前行的内容往上或下移动
ctrl+m:编辑器窗口最大化。
ctrl+.及ctrl+1:下一个错误及快速修改
ctrl+q: 回到最后一次编辑的地方
ctrl+t:查看一个类的继承关系树
ctrl+shift+m:添加单个import
ctrl+shift+o:组织多个import
ctrl+shift+x:把当前选中的文本全部变味小写
ctrl+shift+y:把当前选中的文本全部变为小写
ctrl+shift+p:定位到对于的匹配符
更多快捷键组合可在eclipse按下ctrl+shift+l查看
notepad++快捷键:
ctrl+d 复制并粘贴当行
ctrl+l 删除当前行
ctrl+t 当行向上移动一行
ctrl+u 转换为小写
ctrl+shift+u 转换为大写
ctrl+b 转至匹配的括号
alt+鼠标左键 单击列选择
sublime快捷键:
ctrl+l:选择整行(按住-继续选择下行)
ctrl+kk:从光标处删除至行尾
ctrl+shift+k:删除整行
ctrl+shift+d:复制光标所在整行,插入在该行之前
ctrl+j:合并行(已选择需要合并的多行时)
ctrl+ku:改为大写
ctrl+kl:改为小写
ctrl+d:选词(按住-继续选择下个相同的字符串)
ctrl+m:光标移动至括号内开始或结束的位置
ctrl+shift+m:选择括号内的内容(按住-继续选择父括号)
ctrl+/:注释整行(如已选择内容,同“ctrl+shift+/”效果)
ctrl+shift+/:注释已选择内容
ctrl+space:自动完成(win与系统快捷键冲突,需修改)
ctrl+z:撤销
ctrl+y:恢复撤销
ctrl+shift+v:粘贴并自动缩进(其它兄弟写的,实测win系统自动缩进无效)
ctrl+m:光标跳至对应的括号
alt+.:闭合当前标签
ctrl+shift+a:选择光标位置父标签对儿
ctrl+shift+[:折叠代码
ctrl+shift+]:展开代码
ctrl+kt:折叠属性
ctrl+k0:展开所有
ctrl+u:软撤销
ctrl+t:词互换
ctrl+enter:插入行后
ctrl+shift enter:插入行前
ctrl+k backspace:从光标处删除至行首
ctrl+shift+up:与上行互换
ctrl+shift+down:与下行互换
shift+tab:去除缩进
f9:行排序(按a-z)
##原文转载自
Git-Vim-Tutorial,Git时代的VIM不完全使用教程
最近整理了VIM的配置,换上插件管理的神器—–Vundle,由他引发的VIM生态环境的改善,堪称完美。遂打算写一份简单的教程,分享Git时代VIM新世界的美丽动人之处。对VIM有基础的同学,可直接跳至插件管理部分。
##VIM的模式 第一次使用VIM,会觉得无所适从,他并不像记事本,你敲什么键就显示什么,理解VIM的需要明白他的两种模式:
- 命令模式 (Command Mode)
- 编辑模式 (Insert Mode)
命令模式下,可以做移动、编辑操作;编辑模式则用来输入。键入i
,o
,s
,a
等即可进入编辑模式,后面解释原因。
模式的设计是VIM和其他编辑器最不同的地方,优势和劣势也全基于此而生。
##基本操作 以下介绍的键盘操作,都是大小写敏感的,并且要在命令模式下完成,需注意:
###以字为单位的移动
h
向左移动一个字j
向下移动一行k
向上l
向右
这四个键在右手最容易碰到几个位置,最为常用。
###以词为单位的移动
w
下一個word w(ord)W
下一個word(跳过标点)b
前一個word b(ackward)B
前一个word(跳过标点)e
跳到当前word的尾端 e(nd)
###行移动
0
跳到当前行的开头^
跳到当前行第一个非空字符$
跳到行尾
助记:0(第0个字符),^
和$
含义同正则表达式
###段落移动
{
上一段(以空白行分隔)}
下一段(以空白行分隔)%
跳到当前对应的括号上(适用各种配对符号)
###跳跃移动
/xxxx
搜索xxxx,然后可以用n
下一个,N
上一个移动#
向前搜索光标当前所在的字*
向后搜索光标当前所在的字fx
在当前行移动到光标之后第一个字符x的位置 f(ind)xgd
跳到光标所在位置词(word)的定义位置 g(o)d(efine)gg
到文档顶部G
到文档底部:x
跳到第x行(x是行号)ctrl+d
向下翻页 d(down)ctrl+u
向上翻页 u(p)
###基本编辑 ####修改
i
在光标当前位置向前插入 i(nsert)I
在本行第一个字符前插入a
在光标当前位置向后插入 a(fter)A
在本行末尾插入o
向下插入一行O
向上插入一行:w
保存:q
退出:wq
保存并退出
####删除
x
删除当前字符dd
删除当前行 d(elete)dw
删除当前光标下的词 d(elete)w(ord)
####复制粘贴
yy
复制当前行 y(ank)yw
复制当前光标下的词 y(ank)w(ord)p
粘贴 p(aste)P
粘贴在当前位置之前
##进阶操作
限于篇幅,在这里我仅介绍下我非常常用的几个操作。
###重复操作 因为VIM所有的操作都是原子化的,所以把这些操作程序化就非常简单了:
5w
相当于按五次w
键;6j
下移6行,相当于按六次j;3J
大写J,本来是将下一行与当前行合并,加上数量,就是重复操作3次;6dw
和d6w
结果是一样,就是删除6个word;- 剩下的无数情况,自己类推吧。
###高效编辑
di"
光标在”“之间,则删除”“之间的内容yi(
光标在()之间,则复制()之间的内容vi[
光标在[]之间,则选中[]之间的内容- 以上三种可以自由组合搭配,效率奇高,i(nner)
dtx
删除字符直到遇见光标之后的第一个x
字符ytx
复制字符直到遇见光标之后的第一个x
字符
###标记和宏(macro)
ma
将当前位置标记为a,26个字母均可做标记,mb
、mc
等等;'a
跳转到a标记的位置;- 这是一组很好的文档内标记方法,在文档中跳跃编辑时很有用;
qa
将之后的所有键盘操作录制下来,直到再次在命令模式按下q
,并存储在a
中;@a
执行刚刚记录在a
里面的键盘操作;@@
执行上一次的macro操作;- 宏操作是VIM最为神奇的操作之一,需要慢慢体会其强大之处;
VIM的基本操作,可以挖掘的东西非常多,不仅仅需要记忆,更需要自己去探索总结,熟练之后,效率会大幅度提升。后面会给出一些参考链接。
##插件管理 ###Vundle 终于到这篇Blog我最想讨论的部分了。VIM的强大不仅仅体现在操作的高效率,更有强大而充沛的插件做支援,插件丰富了之后,就面临查找和管理的问题。
在遇见Vundle之前,我用Pathogen管理插件。Pathogen还算方便,只需要把相应插件,放在bundle
目录下即可,不需要再像以前那样逐个放置单独的文件到相应目录,大大节省了劳动力,管理起来也一目了然,觉得还不错,至少比vimball那种需要执行命令安装的方式好一些。
我真希望我早些遇见Vundle。Vundle受到Pathogen和Vimball的启发,于是有了现在的模样。Vundle的逻辑是这样的:
- 在Vim Script选好你想要的插件;
- 在VIM的配置文件中写一句
Bundle plugin_name
; - 执行一下Vundle的初始化命令,插件就装好了;
- 升级和卸载也是同样的简单;
完美的世界!
###Vundle的配置 Vundle的安装很简单:
git clone http://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
然后写配置文件.vimrc
:
set nocompatible " be iMproved
filetype off " required!
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()
" let Vundle manage Vundle
" required!
Bundle 'gmarik/vundle'
" vim-scripts repos
Bundle 'vim-plugin-foo'
Bundle 'vim-plugin-bar'
filetype plugin indent on " required!
其中Bundle
后面的内容,就是插件的名字,插件维护在Vim-Script.org。
然后,打开VIM之后,可以输入以下命令:
"安装插件:
:BundleInstall
"更新插件:
:BundleInstall!
"卸载不在列表中的插件:
:BundleClean
现在大部分的插件都已经从Vim.org迁移到了Vim-Script.org,而且很多作者也认领了自己的插件,直接在这个Github的项目下更新,一个比Vim.org更科学更有效的生态环境,就这样完美的形成了。
在此非常严重的感谢vim-scripts.org的创建者Scott Bronson,和Vundle的作者gmarik。他们的创新和分享精神,让这个世界又美好了一些。
也感谢业界良心Github。Vim-Scripts.org整站就是用Github Pages建立维护的,对于个人来说,这是很好的选择,有兴趣的同学可以参看我之前的博客:使用Github Pages建独立博客。
##插件介绍 有了Vundle,再装插件就是件享受的事情了。我常用的插件有:
#相较于Command-T等查找文件的插件,ctrlp.vim最大的好处在于没有依赖,干净利落
Bundle 'ctrlp.vim'
#在输入(),""等需要配对的符号时,自动帮你补全剩余半个
Bundle 'AutoClose'
#神级插件,ZenCoding可以让你以一种神奇而无比爽快的感觉写HTML、CSS
Bundle 'ZenCoding.vim'
#在()、""、甚至HTML标签之间快速跳转;
Bundle 'matchit.zip'
#显示行末的空格;
Bundle 'ShowTrailingWhitespace'
#JS代码格式化插件;
Bundle '_jsbeautify'
#用全新的方式在文档中高效的移动光标,革命性的突破
Bundle 'EasyMotion'
#自动识别文件编码;
Bundle 'FencView.vim'
#必不可少,在VIM的编辑窗口树状显示文件目录
Bundle 'The-NERD-tree'
#NERD出品的快速给代码加注释插件,选中,`ctrl+h`即可注释多种语言代码;
Bundle 'The-NERD-Commenter'
#解放生产力的神器,简单配置,就可以按照自己的风格快速输入大段代码。
Bundle 'UltiSnips'
#让代码更加易于纵向排版,以=或,符号对齐
Bundle 'Tabular'
#迄今位置最好的自动VIM自动补全插件了吧
#Vundle的这个写法,是直接取该插件在Github上的repo
Bundle 'Valloric/YouCompleteMe'
以上插件可以在vim-script.org找到源码和文档,ZenCoding和EasyMotion演示点链接,你会心动的。
##.vimrc配置 因为配置不断在更新,所以放上我的配置的链接:.vimrc配置
关于VIM的使用,这篇博客仅仅介绍了很小的一部分,网络上还有大量朋友总结的心得,常学常有收获:
- CoolShell,简明 Vim 练级攻略
- Practical Vim,强烈推荐的一本系统介绍VIM的书籍
- Vim Cheat Sheet,有VIM的各种助记图,可以作为桌面
- Vimer的程序世界,不错的站,博主持续钻研VIM各种技巧
- 网友狂人收集的vim资料链接
- Best of Vim Tips
- 面向前端开发者和TextMate粉丝的vim配置
- Vim代码折叠简介
- 挑選 Vim 顏色(Color Scheme)
- vimium,用VIM的操作习惯来控制Chrome的插件