vim高级技巧
这部分内容就涉及的越来越好玩了,说说效果,掌握了这部分如果再想深入研究vim,就只能去看源码了,通过这部分,可以完全控制你的vim. 对,没错,是你的vim,使用这部分,每个人都会有自己的vim(个人制定化),你想象一下,一个程序员,能随心所欲控制自己编程使用的编辑器,这个诱惑真的非常大.
-
概述
vim控制是靠一种叫做vimscript的脚本语言进行完成的,这将是这部分的主要内容,学vimscript需要一段时间的才能掌握,体会一下vimscript的效果,只要操作一下就可以了.
-
体会一下vimscript的效果
-
在替换中使用表达式
就是使用类似 s/{正则}/\={表达式}/g 的形式,注意 \= 必须在要替换的开头写,中间写不行的,如果想用表达式替换中间的字符,可以使用 . 连接把字符连起来,比如:s/P00/\=’P0’.(line(‘.’)-33)/g 把P0替换成 P01 P02 这样的字符, 33指的是P00所在的行 , 注意:在vim里字符串操作(.),比数字运算等级高 , 再利用 q 录制一个宏,就能成批成批的进行修改了.
\= 不仅可以使用line这样的函数,还可以使用表达式,其实line也是表达式,只是这个表达式是一个函数而已啦,其他可以比如,我想替换为变量i的内容,可查这样
:let i = ‘abcd’ 设置i的内容,要不然会出现i变量未找到
:s/{匹配正则}/\=i/g | let i = i.’dd’ 替换为i,并且,让i连接dd.
:s/{匹配正则}/\=i/g 这次替换的就是 abcddd 了.
-
定义一个函数
能替换变量的,那麽下一步,就应该学学怎么弄函数,这样就能组织自己的逻辑了
可以在.vimrc中,使用 function! {函数名称}(args) …n多行函数内的操作… endfunction 定义,如果临时定义,可以在normal模式下输入 :function! foo(f) 回车,这是命令模式不会退出,会然你继续完成这个函数,直到输入endfunction .然后就可车调用函数,对自己的文本进行才做,比如上面的例子,需要替换P00为P01 P02这种字符,可以如下操作
:let i = 1
:s/P00/=’P0’.i/g | let i = i+1
这里的 | 意思是 让这一行内,执行两个操作,替换完以后执行let i = i + 1 让i 增加1 ,当然也可车再写一行
: let = i + 1 来完成.
-
快速查看表达式
ctrl+r =
可以快速求得表达式,比如,查看上面用到的 i 的内容, 就在出现 = 后面输入一个 i 就可以了,当然也可以使用其他表达式,(带点函数什麽的) ,也可以进行简单的运算,这个需要注意的地方就是,必须使用 VimScript里指定的运算符和优先级,后面会详细说.
:echo {表达式}
进行查看表达式,和 ctrl+r = 差不多,在命令模式 和一个 VimScript 的互交会话差不多,你可查输入命令,也可以输入VimScript代码,可以在这里调用你在.vimrc里定义好的函数,在这里你也可以临时定义一个函数, 在带你体会里面有对应的如何做说明.
-
-
VimScript
终于到重点了,–未完待续
–未完待续