2010-06-13 127 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