簡體   English   中英

在Vim中,為什么臨時正常模式(插入模式下的Ctrl-O)執行命令要慢得多?

[英]In Vim, why is temporary Normal Mode (Ctrl-O from Insert Mode) executing commands much slower?

通常,當我想在Vim中編輯文本時撤消更改時,我必須:

  1. 使用Esc退出插入模式
  2. u撤消更改
  3. 使用各種命令進入插入模式( io等...)

現在,我只是一個初學者,但據我所知,在插入模式下,您可以使用Ctrl-O暫時轉換為一個命令的正常模式。

知道了這一點,當我想要撤消文本的變化時,我想:為什么不只是逃到臨時正常模式並按下u而不必處理Esc所有惡作劇並在模式之間切換?

所以我做了以下事情:

  1. 使用Ctrl-O進入一個命令的臨時正常模式
  2. u撤消更改
  3. 我自動處於插入模式並繼續編輯。

它的工作原理......除了非常非常。 慢。 執行撤消后,光標將立即置於該位置,但直到約2秒后才會顯示文本中的更改。 那是一段很長的時間。

我以為只是我的電腦因為某些原因而慢慢運行,但我做了老派的方式,撤消立即執行。 當然,並非所有命令都是如此。 當我嘗試dd並刪除整行時,它可以正常工作 - 立即。

所以我的問題是:為什么? 臨時正常模式與按Esc輸入的正常模式不一樣嗎? 它與緩沖區,交換文件或幕后發生的任何事情有關嗎? 這是在Vim編輯器中實現undo的方式嗎?

看起來Vim正在等待可能的第二次按鍵,即對命令的動作(例如, dw ,其正常執行)。 顯然u命令沒有動作,但是雙擊uu會快速執行撤消,然后它會將下一個u插入到文檔中。 我懷疑這是'臨時正常模式'如何決定何時返回'插入模式'的怪癖。

暫無
暫無

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

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