注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Computer Science

I Pressed My Words Here. Will You Read ?

 
 
 

日志

 
 

学习使用Vim笔记——命令  

2011-05-13 09:44:59|  分类: With Ubuntu |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

:let do_syntax_sel_menu = 1|runtime! synmenu.vim|aunmenu &Syntax.&Show\ filetypes\ in\ menu
要将单前文件以Java格式识别以染色,使用命令:
:set filetype=java  
等效的也可以用:
:cal SetSyn("java")
但是必须先执行:
  :let do_syntax_sel_menu = 1|runtime! synmenu.vim|aunmenu &Syntax.&Show\ filetypes\ in\ menu
上面这句,效果和在菜单中Syntax中选择show filetypes in menu相同。
e.g.作为javascript类型染色
        :set filetype=javascript 或者 :cal SetSyn('javascript')
通常 :cal SetSyn('tf') 是我比较喜欢使用的一种文件类型染色格式。对应菜单栏Syntax中的TF mud client 。

在查看状态下,*向下在全文中查找当前单词,#向上在全文中查找当前单词。

宏记录:
qa
q
上面这句,qa中的a是寄存器的名称,可以是26个字母中的任何一个。当输入qa时,宏记录开始。要结束宏记录,则使用q命令。这时,可以通过@a调用a寄存器中存放的操作动作,同样a也可以换做26个英文字母中的任何一个,根据之前的命令来决定。

在终端下vim默认是不会同步经过外部修改的文件的。于是需要
:set autoread
当需要读取外部修改时,使用命令
:e
这时便加载外部更新了。

删除缓冲区中的文件:
当vim一个窗口打开了多个文件后,使用:q命令关闭某个文件,文件的缓存依旧存在,可用命令:

:bdelete [indexNum]
删除[indexNum]对应的缓冲文件。[indexNum]为缓冲文件标签中的数字。比如文件a.xml的缓冲文件为[12. a.xml] 这时,:bdelete 12便删除了缓冲文件。
同理,通过指定缓存文件标签号 在当前窗口打开指定文件:
:b [indexNum]
加载/打开[indexNum]对应的缓存文件。[indexNum]为缓存文件标签中的数字。比如文件a.xml的缓存文件为[12. a.xml] 这时,:b 12便加载了缓存文件。(另外在缓冲区有多个文件时,可以试试:bNext看看效果。)


GVim下学习命令的另一个好去处:
:menu
就是这里了,在这里学习,也有助于转到vim下(终端的,ctrl + alt + t 打开,输入vi启动。)
GVim隐藏Menubar:
:set guioptions=-m
通过F10可以临时打开。
GVim显示Menubar:
:set guioptions=+m

执行外部命令:
:!
在:!后面输入shell命令。另外可以使用Ctrl+z 将vi放到后台,再执行其他命令。要恢复vi, 使用jobs查看vi是第几个任务,然后用fg接数值恢复。

vim中 通过行增长 及 替换功能 实现数字自动增长(参考:www.kuqin.com/developtool/20080601/9135.html):
首先选中要替换的行,比如1到99,那么全选1到99行(假设每行都只有数字)。然后键入:(用Shift+;)进入命令,并输入:
:'<,'>s/^\zs\d*\ze$/\=line('.')-line('<')
其中:'<,'>是在加入:后自动显示的,只需补全后半截。

VIM 正则使用:清除_jsbeautify.vim格式化后的js中json对象的cdtb , tyxbs, jybs, qtbs, sqygbh, sqrq, sqsj 这几个属性值所在行。
:%s /\n\t*,\(\[\|cdtb\|tyxbs\|jybs\|qtbs\|sqygbh\|sqrq\|sqsj\|\]\):\s.*$//gc
这里采用的是替换方式,清楚,可以通过查找 + 宏的方式删除。

参考:www.vimer.cn/2009/12/使用vimgvim实现复杂的查找替换的一个例子.html

“第一步:

%s/^\(\d\+\)\(\s.*\n\)=/\1\2\1 /gc
或者
%s/^\(\d\+\)\(\s.*\n\)\(=\)\(.*$\)/\1\2\1 \4/gc
这个命令实现了匹配一行之后的第一个=,并将其替换为上一行的数字,需要说明的就是\(\)中的内容,会被作为\1\2\3这样来标识,可以避免替换掉不想替换的内容。”

VIM中的全局查找
参考:VIM全局搜索:http://liangluu.iteye.com/blog/776186
:vim[grep][!] /{pattern}/[g][j] {file} ...
:vimgrep /patter/ **/*.xml ->两个星星,表示遍历整个目录中的所有xml文件。
详见:help vimgrep

VIM中输出文件16进制。以前在WinHex中用到过,主要是数据恢复中看磁盘。
参考:vim转换文件为十六进制进行编辑 http://www.libaqiang.com/?p=78433
:%!xxd
:%!xxd -r
第一行为将当前文件转为16进制,第二行为转会正常输出。所调用的是linux的xxd函数。

javascript 代码中,给对象的function属性(以两个\t开头)的第一行(用\r换行)添加console信息:
:%s /^\(\t\{2\}\([a-zA-Z_0-9]\{1,\}\):\ function[^\}]*$\)/\1\r\t\t\tconsole.log("AjaxRowExpander.\2");/gc

git 中 git config diff.tool vimdiff & git config difftool.prompt false --replace-all 后,vimdiff未被成功调用。转而换为命令:
git diff ....js | vim - 实现。

通过putty链接远程服务器,有的机器上shift+Insert方式粘贴时,代码在vim中出现缩进自增长……




WillMill - Computer ScienceThe next version of Ubuntu is coming soonThe next version of Ubuntu is coming soonThe next version of Ubuntu is coming soonThe next version of Ubuntu is coming soon广而告之
computerScience推荐阅读:
  评论这张
 
阅读(1060)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017