Sto provando a creare un nuovo oggetto di testo in Evil. Ad esempio, l'oggetto di testo iw seleziona solo sottoinsiemi di stringhe contenenti trattini. Voglio che il nuovo oggetto di testo abbini le parole con qualsiasi carattere non spaziale. Quello che ho ottenuto finora è:Emacs Modalità cattiva: come creare un nuovo oggetto di testo per selezionare le parole con caratteri non spaziali?
(evil-define-text-object evil-inner-space (count &optional beg end type)
"Select inner space."
:extend-selection nil
(evil-regexp-range count beg end type "[ \n]" " " t))
(define-key evil-inner-text-objects-map " " 'evil-inner-space)
Questo codice non riesce a far corrispondere correttamente le parole alla fine di una riga. Funziona con le parole all'inizio di una riga grazie a \ n.
Ho provato molte cose che non funzionavano. Il guaio per me è che quando qualcosa non funziona, non so se è dovuto a una regexp sbagliata oa limitazioni nell'intervallo male-regexp. Ad esempio, utilizzando \ s- riporta un errore, che sembra essere una limitazione nel Male.
Aggiungo che il male corrente ha già un textobject WORD interno legato a 'i W'. – PythonNut
haha non l'ho trovato con le ricerche sul web ... dovrei leggere il manuale di vim uno di questi giorni. Grazie – lionel