每日一Vim(19)Visual-Block 模式

每日一Vim(19)Visual-Block 模式

从这节开始做点小小变化,增加一些例子的成分,这些例子一般来自于实际编程情景中,算是理论与实践相结合。

Visual-Block模式一个非常强大的功能就是它支持列操作,比如在某个代码块每行的行首插入注释符号。举例说明:假如有如下Python代码,我想把它全部注释

for e in exclude:
if e.endswith(".py"):
        try:
        os.remove("%sc" % e)
        except:
                pass
                try:
                with open(e, "r") as f:
        exclude[e] = (f.read(), os.stat(e))
        os.remove(e)
        except:
                pass
  1. 光标定位到代码块的行首,Ctrl+v进入Visual-block模式
  2. 光标向下移动,直到选择所有代码行的第0列
  3. 输入I(光标前插入字符),此时你会发现光标跳到了代码块的开头处,此时已经是insert 模式了,现在就插入python的注释字符'#'
  4. Esc键,此时你会发现代码块所选区域都打上了注释符号,如下所示:

    #for e in exclude:
    #if e.endswith(".py"):
    #   try:
    #       os.remove("%sc" % e)
    #   except:
    #      pass
    #      try:
    #      with open(e, "r") as f:
    #   exclude[e] = (f.read(), os.stat(e))
    #   os.remove(e)
    #   except:
    #        pass
    

第二个例子:下面是一段JavaScript片断:

var foo = "a"
var bar = "bcd"
var fb = foo+bar

我们知道js中大部分浏览器都能忍受后面没有分号结尾的语句,但是并不推荐这样做,因为我们有必要给他们在行末都加上分号,我们知道vim吸引人的地方之一就是一个问题往往有不同的解决方案,这里我们至少有两种方法,1.替换法::1,3s/$/;/g(这里的1,3是第一到第三行)2.在Visual block模式下append(追加)。

我们观察上段代码发现每行的语句的长短不一,那有如何批量的加上";"呢,这里关键的一个命令是$,美元符号定位了行未。操作步骤基本还是和第一个例子差不多。只需在选中代码块的时候要注意是:Ctrl+v jj$,这样就能选中到每一行的行末。接着输入A命令表示在行末追加字符,输入“;”再按Esc大功告成了。最终的效果:

var foo = "a";
var bar = "bcd";
var fb = foo+bar;

今天推荐一个vim的游戏给大家,vim-advanture,这是一个迷宫游戏,前三关可以免费玩,之后就要$9.9才能继续玩了,如果没弄懂怎么玩,可以看下这里的攻略,祝玩得开心。

转载请注明出处,谢谢合作!作者---zhijun

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值