月度归档:2014年04月

VIM键盘映射 (Map)

设置键盘映射

使用:map命令,可以将键盘上的某个按键与Vim的命令绑定起来。例如使用以下命令,可以通过F5键将单词用花括号括起来:

:map <F5> i{e<Esc>a}<Esc>

其中:i{将插入字符{,然后使用Esc退回到命令状态;接着用e移到单词结尾,a}增加字符},最后退至命令状态。在执行以上命令之后,光标定位在一个单词上(例如amount),按下F5键,这时字符就会变成{amount}的形式。

不同模式下的键盘映射

使用下表中不同形式的map命令,可以针对特定的模式设置键盘映射:

Command
命令
Normal
  常规模式  
Visual
可视化模式
Operator Pending
运算符模式
Insert Only
插入模式
Command Line
命令行模式
:map y y y
:nmap y
:vmap y
:omap y
:map! y y
:imap y
:cmap y

键盘映射实例

使用以下命令,可以在Normal Mode和Visual/Select Mode下,利用Tab键和Shift-Tab键来缩进文本:

nmap <tab> V>
nmap <s-tab> V<
vmap <tab> >gv
vmap <s-tab> <gv

使用以下命令,指定F10键来新建标签页:

:map <F10> <Esc>:tabnew<CR>

其中:<Esc>代表Escape键;<CR>代表Enter键;而功能键则用<F10>表示。首先进入命令行模式,然后执行新建标签页的:tabnew命令,最后返回常规模式。

同理:对于组合键,可以用<C-Esc>代表Ctrl-Esc;使用<S-F1>表示Shift-F1。对于Mac用户,可以使用<D>代表Command键。

注意:Alt键可以使用<M-key>或<A-key>来表示。

关于键盘符号的详细说明,请使用:h key-notation命令查看帮助信息。

我们还可以针对函数设置键盘映射。 例如,将以下代码加入.vimrc文件,就可以利用快捷键,来打开或关闭针对搜索结果的高亮显示。

查看键盘映射

使用:map命令,可以列出所有键盘映射。其中第一列标明了映射在哪种模式下工作:

标记	模式
<space>	常规模式,可视化模式,运算符模式
n	常规模式
v	可视化模式
o	运算符模式
!	插入模式,命令行模式
i	插入模式
c	命令模式

使用:map!命令,则只列出插入和命令行模式的映射。而:imap,:vmap,:omap,:nmap命令则只是列出相应模式下的映射。

取消键盘映射

如果想要取消一个映射,可以使用以下命令:

:unmap <F10>

注意:必须为:unmap命令指定一个参数。如果未指定任何参数,那么系统将会报错,而不会取消所有的键盘映射。

针对不同模式下的键盘映射,需要使用与其相对应的unmap命令。例如:使用:iunmap命令,取消插入模式下的键盘映射;而取消常规模式下的键盘映射,则需要使用:nunmap命令。

如果想要取消所有映射,可以使用:mapclear命令。请注意,这个命令将会移除所有用户定义和系统默认的键盘映射。

//在你的vimrc文件中增加像如下这样格式的key bindings
//格式为:
//模式 <快捷键> 要执行的命令
//模式:看下表,nmap为普通模式,imap为编辑模式
//C表示ctrl,A表示Alt,S表示Shift,<CR>表示回车

//比如下面这行表示在“正常||可视化||运算”模式下,按下Ctrl+W,则执行命令“:tabclose并回车”,就是关闭当前标签页
map <C-w> :tabclose<CR>

//又比如这行表示在“正常模式”下,按下Ctrl+t,
//则依次执行:browse(打开选择文件对话框) tabnew将选定的文件在新标签页中打开
nmap <C-t> :browse tabnew<CR>


//下面这行和上面一样,只是先用Esc从编辑模式切换到正常模式
imap <C-t> <Esc>:browse tabnew<CR>

Vim中有三类模式,正常模式(normal),插入模式(insert)和可视模式(visual)。

正常模式中可以执行命令。默认情况下,Vim启动后会进入这个模式。
插入模式中可以插入文本。
可视模式中可以可视化地选择一段文本,然后仅针对这段文本执行命令或操作。

按下v启动可视模式。
按箭头键或移动命令来选择文字。

君生我未生,我生君已老

君生我未生,我生君已老。
君恨我生迟,我恨君生早。
君生我未生,我生君已老。
恨不生同时,日日与君好。
我生君未生,君生我已老。
我离君天涯,君隔我海角。
我生君未生,君生我已老。
化蝶去寻花,夜夜栖芳草。

晕车、晕船的朋友来试试这个 谁用谁知道

1、食醋:乘车前喝一杯加醋的温开水,途中也不会晕车。 2、鲜姜:行驶途中将鲜姜片拿在手里,随时放在鼻孔下面闻,使辛辣味吸入鼻中。也可交姜片贴在肚脐上,用伤湿止痛膏固定好。 3、桔皮:乘车前1小时左右,将新鲜桔皮表面朝外,向内对折,然后对准两鼻孔两手指挤压,皮中便会喷射也带芳香味的油雾。可吸入10余次,乘车途中也照此法随时吸闻。 4、橄榄及柠檬:晕车的初期使你产生过量的唾液,这些唾液滴人你的胃内,产生恶心的感觉。橄榄及柠檬所产生的鞣酸,能使你口腔干燥。因此,在出现恶心的初兆时,吃点橄榄,有助于消除恶心。 5、苏打饼干:这虽无法停止唾液分泌,但苏打饼干到达胃部之后,可以吸收那里过多的液体。这其中的秘密成分是碳酸氢钠及酒石。 6、可口可乐及果汁:可帮助儿童纾解晕机。桔汁和苹果汁有较好效果。其他碳酸可乐饮料可能也有效,不妨都试试,从中找到对你有效的一种。 7、榨菜:“晕车主要是人耳朵前庭功能障碍所致,而榨菜能通利九窍,能和谐内耳不平衡的状态,从源头上阻击晕车”。此外,榨菜中含有维生素B1,对神经有安抚作用。因此,平时经常晕车的人,长途旅行时随身带上点榨菜,就能在观赏车程中美景的同时,收获美好的心情和健康的身体,一举多得. 在吃榨菜后可多补充一些富含维生素C的食物,比如新鲜蔬菜、水果、大红枣、猕猴桃、橘子等 8、风油精:乘车途中,将风油精搽于太阳穴或风池穴。亦可滴两滴风油精于肚脐眼处,并用伤湿止痛膏敷盖。 9、胃复安:胃复安1片,晕车严重时可服2片,儿童剂量酌减,于上车前10~15分钟吞服,可防晕车。行程2小时以上又出现晕车症状者,可再服1片。途中临时服药者应在服药后站立15~20分钟后坐下,以便药物吸收。此法有效率达97%,且无其它晕车片引起的口干、头晕等副作用。 10、伤湿止痛膏:乘车前取伤湿止痛膏贴于肚脐眼处,防止晕车疗效显著。 11、指掐内关穴:当发生晕车时,可用大拇指掐在内关穴。 –

grep中如何使用正则表达式匹配数字

如何使用grep搜索包含数字的行?

记得“\d”可以表示任意数字,遂写成grep “\d” test.txt 

没有返回任何数据, 难道不支持“\d”

你在命令行下执行man grep 查看帮助,可以看到grep是支持多种正则表达式的,需要用参数去切换。

Matcher Selection
       -E, --extended-regexp
              Interpret PATTERN as an extended regular expression (ERE, see below).  (-E is specified by POSIX.)

       -F, --fixed-strings
              Interpret PATTERN as a list of fixed strings, separated by newlines, any of which is to be matched.  (-F is specified by POSIX.)

       -G, --basic-regexp
              Interpret PATTERN as a basic regular expression (BRE, see below).  This is the default.

       -P, --perl-regexp
              Interpret  PATTERN as a Perl regular expression (PCRE, see below).  This is highly experimental and grep -P may warn of unimplemented
              features.

而默认情况下,grep只支持basic regex

“\d” 不被支持是因为它不属于basic regex。

那么basic regex有哪些?“\d” 又属于哪类正则表达式呢?

请参考这里:http://www.zytrax.com/tech/web/regex.htm

比如

删除生成的缩略图
find . -name “*” |grep -P “_\d+x\d+$” |xargs rm -rf