2010-06-13 256 views
3

我有兴趣设置开发Vim脚本和rc文件的TDD环境。作为一个简单的例子,假设当我按Tab键时,我想让vim插入8个空格。使用沙盒.vimrc文件 以编程方式执行vim命令?

  • 按我
  • 压片
  • 按ESC
    • 启动VIM:我会成立一个脚本,做了以下w TEST_OUT
    • 断言test_out包含'

    由vim中的默认配置,这将失败。但是,一旦我将我的.vimrc文件添加set expandtab,测试就会通过。

    如何以编程方式发出这些命令? vim -c <commands>已关闭,但似乎只适用于ex模式命令。有什么建议么?这个问题似乎是彻底的谷歌证明。

  • 回答

    4

    您可以尝试vim -S <script in>,为了您的方便,相反的vim -w <script out>

    有关这些选项的更多详细信息,请查看VIM关于-s-w参数的文档。

    +0

    谢谢,这看起来像我需要! – 2010-06-13 18:48:28

    1

    是否使用vim的要求?如果不是你使用错误的工具进行工作,sed可能更合适。

    但是,如果你要,你可以用vim也无妨,只是把它ex

    #!/bin/sh 
    # insert a tab as the first character of test_out 
    ex test_out <<EOF 
    s/^/^I/ 
    wq 
    EOF 
    
    if [ `od -c test_out | awk 'NR == 1 {print $2}'` != '\t' ] ; then 
        echo "assertion failed"; exit 1; 
    fi 
    

    哪里^I实际上是一个标签。虽然这是一个非常奇怪的方法。

    +0

    是的,这个想法是对vim插件等进行TDD。我想我可以在外部shell脚本上执行TDD,然后在Vim中映射它,但这不是我想要的。很大程度上,我有兴趣更好地理解我从其他人的.vimrc文件和插件目录中解脱出来的东西。 – 2010-06-13 18:44:13

    相关问题