簡體   English   中英

插入模式下的Vim時間戳會生成映射鍵

[英]Vim timestamp in insert mode results in mapped key

我在.vimrc放置了以下幾行:

nmap <F3> i<C-R>=strftime("%Y-%m-%d %a %I:%M %p")<CR><Esc>
imap <F3> <C-R>=strftime("%Y-%m-%d %a %I:%M %p")<CR>

在正常模式下,它可以按預期工作,即插入時間戳。 但是,在插入模式下,我插入了<F3> 我在做什么錯以及如何使其正常工作?

更新 :我意識到,一切都可以在Gvim中按預期進行,問題僅在於終端機vim(我嘗試了lxterminal和gnome-terminal)。 如果有幫助,我在重新映射Esc字符時也遇到類似的問題,在Gvim中可以正常工作,而在Vim中則不能。

更新2 :盡管我不能排除我可能對系統所做的其他更改,但升級到較新的vim版本很有可能使問題消失了。 重新映射Esc現在也可以使用,即終端Vim(版本8.1,2018年5月18日)的行為就像Gvim。

可能是您啟用了:set paste 粘貼模式可防止任何插入和命令行模式映射生效。 它只能在將文本粘貼到終端之前(通常通過'pastetoggle'定義的鍵)臨時輸入。這僅在終端中才需要(並且僅在沒有括號粘貼模式的終端中才需要),GVIM可以檢測到粘貼會影響所有插入模式映射。您可以通過

:verbose set paste?

暫無
暫無

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

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