• Vim脚本学习(转载)


    原文地址:http://randomclan.blog.163.com/blog/static/14530098201292313539181/

    定义新命令

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

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

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

    Vim键映射

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

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

    以上命令的含义是:

    1. nmap,表示在Normal模式下的映射
    2. <F2>,表示Normal模式下按<F2>
    3. GoDate,首先是G跳转到文档末尾,o进入Insert模式,Date:表示我们要输入的字符串。
    4. <Esc>,退出Insert模式。
    5. :read !date,执行date命令,并把命令输出追加到当前行之后。
    6. <CR>,表示回车。
    7. 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 - 全局变量

    函数

    常用函数

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

    escape()

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

    例如:

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

    输出

    c:\\program\ files\\vim 

    line()/getline()

    • line()获取行号,例如line(".")
    • getline()获取行内容,例如getline(line("."))获取光标所在行。
  • 相关阅读:
    Redis 数据结构之dict
    分布式一致性算法——paxos
    分布式事务、两阶段提交协议、三阶提交协议
    MySQL主从数据同步延时分析
    MySQL数据丢失情况分析
    INSERT ... ON DUPLICATE KEY UPDATE Syntax
    分布式系统的数据一致性
    分布式系统的BASE理论
    分布式系统的CAP理论
    性能指标体系构建
  • 原文地址:https://www.cnblogs.com/NeilHappy/p/3106358.html
Copyright © 2020-2023  润新知