スペルチェック選択ウィンドウで自分の修正を入力できるようにするにはどうすればよいですか?


14

以下にz=示すように、スペルチェック、キーイングを行うと、選択リストが表示されます。

正しい選択

正しいスペルを見ることができるように; 「ie」はオプションとして表示されません。このメニューを拡張して、代わりに「ie」と入力してEnterキーを押して置換できるようにします。

同じステップの一環として、提示されたオプションのいずれかの名前の入力を開始し、タブがそれに競合する場合、それは素晴らしいことです-私の心は、数字を入力するよりも単語を入力することで単語を置き換える方がうまく機能します。

これはプラグインで行う必要があると思いますが、それが単なる設定オプションではないことは確かではありません。

回答:


5

これでspell_suggest()関数を見るのspell.cは不可能ですz=。すべての可能な提案を取得して表示した後、次のことを行います。

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

prompt_for_number()に住んでいてmisc1.c、あなたが期待することとまったく同じことをします:数字の入力を促しget_number()ます(同じファイルも参照してください)。マッピングまたはその他の入力は許可されていません。


2番目のオプションは、挿入モードでCtrl x+ sまたはCtrl x+ Ctrl s1を介してVimのスペル「完了」を使用することです。これは大体あなたが望むことをします。Ctrl nおよびCtrl pまたは矢印キーを使用して完了から選択するか、独自の改善を入力できます。

キーを使用してこれを行うには、supertabプラグインを使用できTabます。これに適応できる機能:help ins-completionCleverTab()あります。

詳細については、以下を参照してください :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']

この関数を使用して、独自のスペル提案画面を構築できます。


脚注

1Ctrl 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.phpscript_id = 4929の行でもっと何かを探していますか?
スキマ

はい、それは私が探しているものに似ています。
リンドンホワイト

2

プラグインを追加せずに、スペルファイルに既知の適切な単語を追加できます。のではなくz=スペル提案を持ち出すと、視覚的にあなたがスペルファイルやプレスに追加したいテキストを選択zg

また、スペル提案ウィンドウ内から、マウスを使用してNORMALモードを有効にしている限り、マウスを使用して必要なものを選択できることに注意してください。set mouse=aたとえば、.vimrc を設定しました。これにより、VimでもgVimでも、すべてのモードでマウスが有効になります。

プラグインやVim自体を変更しなくても、あなたが望む他のことは達成できないと思います。


1
これらはすべて有用なヒントですが、質問への回答方法がわかりませんか?
マーティントゥルノイ

@Carpetsmokerあなた自身の答えについても同じことが言えます。私はそれは不可能だと言い、回避策としてワークフローの変更を提案しました。あなたがやったように。
クインシーバウアーズ

1
@MartinTournoijこの答えは実際に問題の解決策を提供します:新しい単語含める必要がある> zg そのような包含を実行します。
ニロン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.