11 vim autocomplete
有时,在我使用 Enter 键选择一个建议(从按 Ctrl-N 时出现的完成弹出窗口)后,Vim 将插入一个换行符并且光标将移动到下一行。这并不总是发生 - 似乎 Vim 试图让它变得聪明,并且只有在它认为这是我想要的时才会将我移到下一行。
但是,我想禁用此行为(因为它并不总是很聪明),以便我始终必须通过手动按 Enter 键自己移动到下一行。这可能吗?
gar*_*ohn 14
在使用插入完成时,Vim 对您输入 <Enter> 键的响应取决于完成菜单的状态。此处描述了菜单的行为:
:help ins-completion-menu
Run Code Online (Sandbox Code Playgroud)
使用插入完成时各种键的行为将在下一节中描述,
:help popupmenu-keys
Run Code Online (Sandbox Code Playgroud)
它解释了 <Enter> 键的行为取决于菜单状态。据我了解,键入 <Enter> 会插入一个换行符,除非您使用光标键从菜单中选择了匹配项。
避免在不需要换行符时插入换行符的最佳方法是使用其他键(例如 Ctrl-Y 或 Ctrl-E)终止或进行选择。
也可以看看
:help complete_CTRL-Y
Run Code Online (Sandbox Code Playgroud)
对于插入模式完成的整个描述,
:help ins-completion
Run Code Online (Sandbox Code Playgroud)
您可以将此映射添加到 .vimrc 文件中:
inoremap <expr> <CR> pumvisible() ? "\<C-Y>" : "\<CR>"
Run Code Online (Sandbox Code Playgroud)
当弹出菜单可见时,它将插入模式下的返回键映射到输入CTRL-Y。CTRL-Y 选择菜单中当前选定的项目而不输入新行。否则它会使返回键正常工作。
| 归档时间: |
|
| 查看次数: |
4402 次 |
| 最近记录: |