Come posso fare in modo che la finestra di selezione del controllo ortografico mi consenta di digitare la mia correzione?


14

Quando si esegue il controllo ortografico, la digitazione z=, visualizza un elenco di selezione, come mostrato di seguito.

seleziona corretto

Come puoi vedere l'ortografia corretta; "ie" non viene mostrato come nessuna delle opzioni. Vorrei migliorare questo menu, in modo da poter semplicemente digitare "ie" e premere Invio e farlo sostituire.

Sarebbe anche bello, se come parte dello stesso passo se potessi iniziare a digitare il nome di una delle opzioni presentate e la scheda competere con quella - la mia mente lavora meglio sulla sostituzione delle parole inserendo parole piuttosto che inserendo numeri.

Ho il sospetto che questo debba essere fatto con un plug-in, ma non sono sicuro che non sia solo un'opzione di configurazione.

Risposte:


5

Guardare la spell_suggest()funzione in spell.cquesto non sembra possibile con z=. Dopo aver ricevuto e visualizzato tutti i possibili suggerimenti, fa:

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

prompt_for_number()vive dentro misc1.ce fa esattamente quello che ti aspetteresti che faccia: richiede un numero (vedi anche get_number()nello stesso file). Mappature o altri input non sono ammessi.


Una seconda opzione è usare l'incantesimo di "completamento" di Vim attraverso Ctrl x+ so Ctrl x+ Ctrl s1 in modalità inserimento. Questo fa all'incirca quello che vuoi. Puoi scegliere tra i completamenti con Ctrl ne Ctrl po i tasti freccia o digitare il tuo miglioramento.

Puoi usare il plugin supertab per farlo con la tua Tabchiave. :help ins-completionha anche una CleverTab()funzione che potresti adattare per questo.

Per ulteriori informazioni, vedere: :help ins-completion, :help i_CTRL-X_s


Infine, Vim ha la spellsuggest()funzione, che restituisce un elenco di suggerimenti ortografici:

: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']

Puoi usare questa funzione per costruire la tua schermata di suggerimento di incantesimi.


Nota

1 : Nota che l'utilizzo Ctrl spotrebbe non funzionare, come menzionano i documenti:

NOTA: CTRL-S sospende la visualizzazione in molti terminali Unix. Usa invece "s". Digitare CTRL-Q per riprendere la visualizzazione.

Se stai usando gVim, usare Ctrl sdovrebbe funzionare. Oppure potresti disabilitarlo nel tuo terminale con stty -ixon.


3

Ho intenzione di espandere / consolidare la risposta di @ quincy-bowers:

  1. Non puoi inserire i tuoi suggerimenti dalla schermata dei suggerimenti ortografici.
  2. Non ha molto senso (in VIM) inserire i propri suggerimenti dalla schermata dei suggerimenti ortografici.

VIM è un editor di testo. Dal momento che è quello che fa meglio, lascia l'editing a se stesso. In altre parole, la risposta per modificare una parola errata nel proprio suggerimento personalizzato è sufficiente premere enterper chiudere l'elenco dei suggerimenti e quindi modificare manualmente la parola con l'ortografia corretta. ( ciwfunziona perfettamente per quello).

Quindi (come suggerito da @ quincy-bowers) se desideri che l'ortografia corretta personalizzata zgvenga visualizzata negli elenchi di suggerimenti successivi digita quando il cursore si trova sulla parola e verrà aggiunta al dizionario di ortografia (vedi :help zgper i dettagli).

Tuttavia, dopo aver detto tutto ciò, non ha impedito alle persone intelligenti che usano VIM di trovare alternative (modi illimitati per scuoiare un gatto che dicono) e quindi potresti provare un plug-in alternativo, ad esempio unite-spell-suggest .


Descrivere il flusso di lavoro corrente è più un commento che una risposta. Anche se lo spieghi bene.
Lyndon White,

1
@Oxinabox forse stai cercando qualcosa di più sulle linee di: vim.org/scripts/script.php?script_id=4929 forse?
Sukima,

Sì, è molto più simile a quello che sto cercando.
Lyndon White,

2

Senza aggiungere alcun plugin puoi aggiungere una buona parola nota al tuo file di incantesimi. Anziché z=visualizzare i suggerimenti ortografici, selezionare visivamente il testo che si desidera aggiungere al file ortografico e premere zg.

Dovrei anche notare che dalla finestra di suggerimento degli incantesimi puoi usare il mouse per selezionare quello che desideri purché tu abbia abilitato il mouse per la modalità NORMALE. Ho set mouse=aimpostato il mio .vimrc, ad esempio, che abilita il mouse in tutte le modalità, sia che io sia in Vim o gVim.

Non credo che le altre cose che desideri possano essere realizzate senza un plug-in o senza modificare Vim stesso.


1
Questi sono tutti consigli utili, ma non vedo come rispondono alla domanda?
Martin Tournoij,

@Carpetsmoker Potrei dire lo stesso della tua risposta. Gli ho detto che non era possibile e ho offerto un cambio di flusso di lavoro come possibile soluzione. Proprio come hai fatto tu.
Quincy Bowers,

1
@MartinTournoij Questa risposta in realtà offre una soluzione al problema: deve includere una nuova parola > zg esegue tale inclusione .
nilon
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.