如何使拼写检查选择窗口允许我键入自己的更正?


14

在进行拼写检查时,键入key z=,将显示一个选择列表,如下所示。

选择正确

如您所见,正确的拼写;“ ie”未显示为任何选项。我想增强此菜单,以便我可以只键入“ ie”并按Enter并替换它。

如果在同一步骤中如果我可以开始输入所提供选项之一的名称,并且制表符与此竞争,那也很好-我的想法是通过输入单词而不是输入数字来替换单词。

我怀疑这需要通过插件来完成,但我不确定这不只是配置选项。

Answers:


5

使用似乎无法查看其中的spell_suggest()功能。获取并显示所有可能的建议后,它会执行以下操作:spell.cz=

/* Ask for choice. */
selected = prompt_for_number(&mouse_used);

prompt_for_number()居住在中misc1.c,并且完全符合您的预期:它会提示您输入数字(也请参见get_number()同一文件)。不允许使用映射或其他输入。


第二种选择是在插入模式下通过Ctrl x+ sCtrl x+ Ctrl s1使用Vim的拼写“完成” 。这大致满足您的要求。您可以使用Ctrl nCtrl p或箭头键从补全中选择,或键入您自己的改进。

您可以使用supertab插件来执行此操作Tab:help ins-completion还具有CleverTab()您可以适应的功能。

有关更多信息,请参见: :help ins-completion:help i_CTRL-X_s


最后,Vim具有spellsuggest()函数,该函数返回拼写建议的列表:

:echo spellsuggest('hellz')
['hells', 'hello', 'hell', 'help', 'halls', 'heals', 'heels', 'hills', 'hulls', 'hell''s',
 'hellos', 'hell’s', 'held', 'helm', 'tell', 'well', 'bells', 'cells', 'dells', 'fells',
 'helot', 'helve', 'hertz', 'hilly', 'holly']

您可以使用此功能来构造自己的拼写建议屏幕。


脚注

1:请注意,使用Ctrl s可能无法正常工作,如文档所述:

注意:CTRL-S会在许多Unix终端中挂起显示。使用“ s”代替。键入CTRL-Q以继续显示。

如果您使用的是gVim,则Ctrl s应该可以使用。或者您可以使用在终端中禁用此功能stty -ixon


3

我将扩展/合并@ quincy-bowers答案:

  1. 您无法从拼写建议屏幕输入自己的建议。
  2. (在VIM中)从拼写建议屏幕输入您自己的建议没有多大意义。

VIM是文本编辑器。因为这是最擅长的,所以将编辑工作留给了自己。换句话说,将拼写错误的单词更改为您自己的自定义建议的答案只需按enter以取消建议列表,然后手动将单词更改为您的正确拼写。(ciw非常适合)。

然后(如@ quincy-bowers所建议的那样),如果您希望在随后的建议列表中显示自定义正确的拼写,请zg在光标位于单词上时键入,并将其添加到拼写字典中(:help zg有关详细信息,请参见)。

但是,在说完所有这些之后,并没有阻止使用VIM的聪明人找到其他选择(他们说的无限制方式给猫咪剥皮),因此您可以尝试使用其他插件,例如unite-spell-suggest


描述当前的工作流程不仅仅是评论,而是答案。虽然您的解释很好。
林登·怀特

1
@Oxinabox也许您正在寻找更多类似的东西:vim.org/scripts/script.php ? script_id=4929
Sukima

是的,这更像是我要寻找的东西。
林登·怀特

2

无需添加任何插件,就可以将已知的好单词添加到拼写文件中。而不是z=提出拼写建议,而是直观地选择要添加到拼写文件中的文本,然后按zg

我还应注意,只要您为正常模式启用了鼠标,就可以在拼写建议窗口中使用鼠标选择所需的鼠标。set mouse=a例如,我已经在.vimrc中进行了设置,无论我处于Vim还是gVim模式,它都可以在所有模式下启用鼠标。

我认为没有插件或不更改Vim本身就无法完成您想要的其他事情。


1
这些都是有用的提示,但是我看不到它们如何回答这个问题?
马丁·图尔诺伊

@Carpetsmoker我可以对您自己的答案说同样的话。我告诉他这是不可能的,并提供了工作流程的更改作为可能的解决方法。就像你一样。
昆西·鲍尔斯

1
@MartinTournoij这个答案实际上为问题提供了解决方案:需要包含新单词 > zg 执行这样的包含
尼龙
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.