zoukankan      html  css  js  c++  java
  • 辛星笔记——VIM学习篇(推荐阅读)

    转载自: 辛星和您一起学vim脚本第一节

    如本文侵犯了您的版权,请联系windeal12@qq.com


    这几天在网上看了辛星的一些vim教程博文,觉得很有收获,也很实用,适合入门,所以转载其中一篇留个网址。

    辛星的vim教程已经有整理成pdf,在其博文中点击打开链接有下载链接。相信其他教程也写得不错,特此推荐。


      最近把所有的编程工作交给了vim,但是vim实在是博大精深,以前写vim的配置文件只能靠百度谷歌去搜索,但是越来越发现搜索到的那点东西不仅非常零散,还跟我的需求不一样,因此,也就感觉有必要自己学习一下vim的脚本。

          其实vim脚本并不复杂,我们常见的vimrc、syntax等文件都是vim脚本文件,这里咱们先写一个简单的vim脚本文件,代码如下:

    1. :let i =1  
    2. :while i < 5  
    3. :   echo "count is" i  
    4. :   echo "辛星加油"  
    5. :   let i +=1  
    6. :endwhile   


    然后保存为xinxing.vim,然后咱们在同一个目录下编辑文件的时候,进入命令模式下,然后输入:source xinxing.vim,然后发现效果如下:

        当然如果咱们按下回车键之后,发现上面的文本就会消失了,其实我们写的xinxing.vim就是vim脚本。这里涉及到一个let命令,该命令用于变量的赋值,通常的形式为:

    let 变量名 = 值   ,它和咱们的编程语言是有点区别的,但是很像,这里面的echo命令用于打印其参数,这一点对于php程序员再好理解不过了,然后while命令和endwhile命令配对使用。

    ***************************************变量***********************************************************

    1.vim脚本中的变量是有作用域的,如果不写的话就默认是一个全局变量,如let xin = 1  和let g:xin = 1都表示让xin这个变量取值为1。

    2.当然咱们也可以指定s变量,让其只能在某个脚本中起作用,比如let  s:var = 1就只能在某个脚本中用。

    3.如果在某个buffer中用,则指定前缀为b,如果只能在某个window中用,则指定前缀为w。

    4.咱们要删除某个变量,就可以使用unlet 这样的形式删除,但是如果变量不存在会报错,咱们可以使用unlet!的形式来删除不存在变量的时候不会报错。

    *****************************语句*****************************

    1.vim条件控制和其他语言很相似,比如:

    1. if  条件1  
    2.     语句1  
    3. elseif  条件2  
    4.     语句2  
    5. else    
    6.     语句3  
    7. endif  
    2.当然这里的elseif和else可以没有,需要注意的是,这里if和else是命令,因此不需要括号什么的。

    3.vim还支持比如==,<=,>=等比较运算符和加减乘除模等运算符。

    4.对于字符串,还有两个运算符也很重要,那就是=~表示匹配,而!~表示不匹配。

    5.在操作符后面添加#表示不忽略大小写,在后面添加?表示忽略大小写。

    6.另外,vim还可以使用break和continue,但是vim的语法中不需要任何的分号和大小括号,这一点对于类C的程序员来说需要注意下,虽然不习惯,但是必须服从。

    7.execute命令可以用于执行一个表达式,eval用于获取一个表达式的值。


    **************函数和命令**********************************

    1.vim定义了很多函数,比如有一个xin函数,咱们调用它的时候只需要使用call  xin()即可,当然括号中要写相应的参数。

    2.我们也可以编写自定义函数:

    1. function   函数名(用逗号分开的参数列表)  
    2.     函数体  
    3. endfunction  

    3.我们规定函数名必须以大写字母开头,而且函数也是变量,因此可以指定作用域。

    4.值得说明的是,这里的call和function都是命令,它们在执行的时候是不需要加括号的,但是函数是需要加括号的。

    5.我们编写一个获取两个数的较小的那个的函数把:

    1. function! s:Min(n1,n2)  
    2.     if a:n1 < a:n2  
    3.         let small = a:n1  
    4.     else  
    5.         let small = a:n2  
    6.     endif   
    7.     return small  
    8. endfunction  
    6.这里的Min是函数名,其中的a:n1和a:n2表示是函数中的变量,而small是函数内部的变量,在外部是不能访问的。

    7.function后面的感叹号则是避免当两次引用该文件的时候产生错误。


    传播编程知识,振兴中华软件,从我做起。


  • 相关阅读:
    C++如何调用父类中的方法
    关于QStandardItemMode的资料
    Qt的信号和槽的使用方法练习
    Redirecting Standard I/O to Windows Console
    C++头文件的工作原理
    《深入浅出MFC》第七章 简单而完整:MFC骨干程序
    《深入浅出MFC》第六章 MFC程序的生死因果
    《深入浅出MFC》第五章 总观Application Framework
    《深入浅出MFC》第四章 Visual C++集成开发环境
    nexus使用记录
  • 原文地址:https://www.cnblogs.com/Windeal/p/4284637.html
Copyright © 2011-2022 走看看