Vim脚本学习

Vim脚本学习

定义新命令

学习Vim脚本,最快键的方式是从编辑~/.vimrc入手。为了快速试验效果,在~/.vimrc中添加一行语句:

nmap <F12> :source ~/.vimrc<CR>  

这样每次修改~/.vimrc后,输入<F12>就能重新加载~/.vimrc,使新加入的脚本立即生效。

Vim键映射

先从Vim手册中的一个示例入手,目标是在文件末尾加入一行表示当前日期的字符串:

nmap <F2> GoDate: <Esc>:read !date<CR>kJ

以上命令的含义是:

nmap,表示在Normal模式下的映射
<F2>,表示Normal模式下按<F2>
GoDate,首先是G跳转到文档末尾,o进入Insert模式,Date:表示我们要输入的字符串。
<Esc>,退出Insert模式。
:read !date,执行date命令,并把命令输出追加到当前行之后。
<CR>,表示回车。
kJ,将光标上移一行(k),并合并上下两行(J)。

再深入分析这条语句。在Vim中,同一个键(如上的<F2>)在不同模式下可以有不同的映射方式,通过Xmap来控制,X表示Vim所在的模式。Vim定义了以下常见模式:

 命令	    说明  
:map	Normal, Visual, Operator-pending
:nmap	Normal
:imap	Insert
:vmap	Virtual
:omap	Operator-pending

上表Operator-pending表示一种悬而未决的状态,例如输入d或y希望删除或复制字符串或文本对象时,此时Vim在等待你继续输入,即为Operator-pending状态。定义:

:omap <F7> a{ 

这样,在C语言中,把光标移到{上,输入d<F7>,就能删除一个C语句块(包括{}和它们之间的文本),而y<F7>就能复制整个代码块。

直接输入:map可以看到当前定义的所有键映射。

<F2>这样的写法叫括号表示法,用这种记法来代表特殊键。常见的特殊键

| 键值 | 说明 |
| <CR> | 回车 |

imap <F2> <CR>Date: <Esc>:read !date<CR>kJ

关键字(let)

let声明定义变量

let name = "domain"  
let height = 165  
let interests = ['berlinix', 860]  
let phone = {'name':'berlinix', 'age':25} 

变量范围
g:varname - 全局变量

函数--常用函数

  1. :echo bufname('%'): 获取当前文件名(带全路径)
  2. :echo expand('%'): 获取当前文件名(带全路径)
  3. :echo expand('%:t'): 获取当前文件名

escape()

{{{ escape({string}, {chars}) }}}

例如:

:echo escape('c:\program files\vim', ' \') 

输出

c:\\program\ files\\vim 

line()/getline()

  1. line()获取行号,例如line(".")
  2. getline()获取行内容,例如 getline(line(".")) 获取光标所在行。

转载于:https://my.oschina.net/jackin/blog/276911

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值