: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中出现缩进自增长……
评论