Vim

在vim自動完成列表中選擇一個項目而不插入換行符

  • December 5, 2019

vim 的一個相當煩人的功能是,如果您處於插入模式並執行自動完成 (Ctrl-N),向下箭頭鍵到所需的項目,然後按 Enter 鍵,然後它會插入該項目,但也會插入一個換行符然後必須刪除。

有沒有辦法從自動完成列表中選擇一個項目而不需要額外的不需要的換行符?

這取決於您處於哪種彈出菜單狀態(請參閱 參考資料:help popupmenu-completion)。我從您的問題中了解到您處於狀態 2(因為您已按下箭頭鍵來查找完成)。但是,狀態 2 的預設行為Enter是插入不帶換行符的補全;您所描述的通常是狀態 1 的行為(即當您使用Ctrl+ N/ Ctrl+時P。)

在所有州都一致有效的一種方法是使用Ctrl+ Y。我喜歡記住 Y 代表“是的,接受這個詞”。也可以開始輸入應該在完成的單詞之後出現的文本,除非您像 geedoubleya 的答案那樣重新映射了內容。

在相同的上下文中,您可以按Ctrl+E取消菜單並將文本保留為呼叫它之前的狀態。如果您習慣於在其他上下文中使用Ctrl+ECtrl+的配對Y(例如,在正常模式下向上或向下滾動,或者在插入模式下將字元插入游標下方或上方),這是在這裡記住它的一種方法。我想您也可以將其視為“退出”菜單或類似內容。

查看:help popupmenu-keys更多。

引用自:https://unix.stackexchange.com/questions/162528