簡體   English   中英

自動運行幾個vim命令和按鍵

[英]Automate running several vim commands and keystrokes

我想在vim中自動運行幾個命令,即輸入:repl 命令是:

:ConqueTerm lein repl
<Esc>
:set syntax=clojure
<i>

如何定義執行上述操作的自定義vim函數(命令)?

關於以上內容:

  • clojure - Clojure編程語言(由vim-clojure-static提供的語法
  • ConqueTerm - 一個vim插件,在您的vim緩沖區中以交互方式運行shell
  • lein - Leiningen ,一個Clojure構建工具

你可以創建一個函數,並將命令放在該函數中:

fun! LeinCMD()
    execute 'ConqueTerm lein repl'
    execute 'set syntax=clojure'
    execute 'normal! i'
endf
command! Repl call LeinCMD()

你可以找到上面的代碼,然后輸入:ReplEnter來測試它是否適合你。

編輯

@Zyx非常好的評論。 我只是把它們放回答,這樣讀者將來不會錯過有價值的信息。

  1. 你需要完全沒有:execute這里:execute調用。
  2. :normal! 我沒用,從函數開始插入模式有:startinsert和:調用feedkeys(),前者應該是首選。 //注意:normal! i :normal! i在這里“工作”是因為: startinsert:ConqueTerm運行。 即由於Conque編寫的方式你不需要:startinsert ,但如果它還沒有:normal! i :normal! i會繼續做任何有用的事情。

剛才提到:使用command -bar會好得多:這樣你就不需要了:execute用管道符號鏈接你的命令(嘗試Repl | echo "Here"有和沒有-bar作為第二個參數:command )。 我認為這是默認選項,不知道為什么Bram喜歡在很多地方都有錯誤的默認值。

你有沒有嘗試過?

function custom_function ()
  execute 'ConqueTerm lein repl'
  execute 'set syntax=clojure'
  return custom_function
endfunction

我不知道這段代碼是否有用,因為我還沒有測試過

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM