我已經在腳本中插入映射date<Tab>
模式以插入格式爲YYYY-MM-DD
的當前日期。如何更改Vim插入模式映射行爲?
inoremap <script> <silent> <buffer> date<Tab> <C-R>=strftime("%Y-%m-%d")<CR>
當我開始插入模式下輸入模式,而不是按日期字符串替換它之前顯示完整的模式,只有當我按下標籤時,Vim只顯示最後一個字符類型的,這是很是煩人當我不想使用它。如果我輸入 '日期',比如,這是Vim顯示( '|
' 是光標表示):
|d
|a
|t
data|
另外,我已經安裝了Snipmate vim插件,它使用了Tab k用代碼模板替換片段,當我輸入代碼片段時,它的行爲不像我之前描述的那樣。 Snipmate所做的只是映射標籤鍵,當按鍵時,它會得到前一個單詞並檢查它是否與其片段之一匹配。
這就是說,我會留下兩個問題和答案,其中一個解決我的問題:
是否有配置VIM將其變爲其映射前不顯示完整的圖樣的方法嗎?
我可以使用相同的映射有兩個插件嗎?就像我映射標籤鍵也一樣,並且每當光標前面的單詞是'date'時,我的插件就會起作用,而Snipmate會在其他情況下起作用。
我覺得這裏最好的辦法是寫一個名爲「日期」是擴展到你想要的片段。如果我沒有記錯,snipmate支持原生vimscript內的片段,所以這應該很容易完成。你的第一個問題的答案是否定的。 –
實現所需內容的最佳方式是通過縮寫,當您在插入模式下鍵入時,它會自動擴展。你可以參考[這個答案我給](http://stackoverflow.com/questions/6344750/how-do-i-insert-current-time-into-a-file-using-vim/6344929#6344929)到一個關於[如何插入當前時間]的問題(http://stackoverflow.com/questions/6344750/how-do-i-insert-current-time-into-a-file-using-vim)以獲取有關實現它的詳細信息。 – abcd
@Randy Morris - 映射是一個腳本,所以對我來說可能沒問題,但我不能認爲每個人都使用Snipmate。但是,謝謝! – freitass