分类: LINUX
2015-09-14 10:19:51
ab
命令可以将一长串字符用缩写来定义,这有点象Linux中的alias,比如Linux中的ll
命令就是ls -l
的别名,ab
的语法为:
:ab abbr phrase
abbr就是对phrase的简写,在insert 模式中,输入abbr,再按非字母字符(比如空格,点号等)Vim就自动把phrase插入到光标处位置。此情景一般用在频繁输入的字符中,通常建议abbr选择使用频率很低的字符,比如Eclipse常用的一个快捷键syso,你可以定义成如下:
:ab syso public static void main(String[] args)
这样一来,每次输入syso的时候,整个main方法就自动插入到文本行了。如果你就是想输入'syso'这个原生字符串,那么您可以用下面这个命令取消:
:unab syso
列出当前定义的缩写有哪些可以用命令:
:ab
上图是执行:map
命令显示的内容,我们暂且先不对图做说明,稍后再分析,map的功能比ab更强大,它不仅可以在insert 模式下定义宏(快捷键)而且可以normal,visual等模式下定义。其语法举例说明:(目标:在normal下用lv
选中光标所在行)
:map lv 0v$
解析:0代表光标移至行首,v就是visual模式(该模式下可以通过hjkl来选中文本),$代表行尾,这样一来,在normal模式输入lv
就能选中光标所在行了。
:map 列出所有已定义的映射命令
:unmap lv 取消lv映射的命令
:mapclear 清空所有映射
需要注意的是:
<esc>
是纯粹的5个原始字符,意思是回到normal模式。
:map a b
,然后c 又映射成了a,:map c a
,那么最终c也会自动映射成b,等同于:map c b
,您现在可以试一试a,b,c的效果都是光标向前移动一个单词的长度。如果要不想使用递归,那么就要用:noremap
:map <C-a> <Esc>ggVG 实现类似于Widnows下的Ctrl+a全选
:inoremap ( ()<esc>i 插入模式下输入'('后自动补全')',同理还可以实现'[','{'
更多的例子就要靠您的创造力和想象力的,如果您能把基本的命令学好了,这些命令组合在一起使用的话,威力无比。
ps:"+y
可以把光标所在行或选选中的字符copy到系统剪切板中。