Vim sposta la parola salta il punto


7

Sto usando MacVim con spf13 e quando uso wper spostare una parola in avanti, i punti sono visti come parte della parola.

     myObject.myMethod()
     ^       ^        ^
     |       |        |
cursor       |        |
             |        |
  where I want to go  |
                      |
where I'm actually moved

C'è un'impostazione per questo?

Seguito: ho notato che vim si comportava così solo con alcuni file. Per fileA.coffeeandare avanti salta i punti, ma fileB.coffeenon lo fa. È impostato in qualche modo a livello di file?

Tuttavia, sui file che salta il punto ( fileA) facendo: impostare iskeyword-=.come suggerito da Heptite funziona.

Risposte:


9

È l' 'iskeyword'opzione. Potresti essere in grado di cambiare questo comportamento semplicemente facendo:

:set iskeyword-=.

Se ciò non funziona significa che il carattere punto è incluso nell'opzione come parte di un intervallo di caratteri anziché singolarmente e dovrai controllare il valore (con il punto interrogativo come parte del comando):

:verbose set iskeyword?

Quindi determinare come modificarlo correttamente per escludere il periodo. Dai un'occhiata a questo (con le virgolette singole come parte del comando):

:help 'iskeyword'

Dovrei avvertirti che avere il carattere punto incluso in 'iskeyword'non è un valore predefinito di Vim, quindi potresti avere un plug-in di tipo di file o evidenziare la sintassi specifica della lingua che lo sta aggiungendo. Il motivo sarebbe perché " iskeyword" viene utilizzato per molte cose, inclusi alcuni atomi di espressione regolare, che possono essere utilizzati nell'evidenziazione della sintassi. Quindi rimuoverlo potrebbe "rompere" qualcos'altro.


:set iskeyword-=.lavorato. Tuttavia, ho pubblicato una domanda di follow-up ..
Cotten,

3
@Cotten: Come dice la mia risposta, anche se apparentemente non abbastanza chiaramente, sì, questa opzione può essere e probabilmente è stata impostata a livello di buffer, probabilmente da uno script di evidenziazione della sintassi del sistema o da un plug-in di tipo di file. Il :verbose set iskeyword?comando " " nella mia risposta ti dirà quale script di provenienza lo ha impostato.
Heptite,

@Heptitie grazie per il chiarimento sul livello per buffer e probabilmente impostato da uno script o plugin!
Cotten,

0

ho avuto molti problemi dal plugin neocomplete che è stato aggiunto a spf13. Il completamento non è riuscito in molti casi, le ricerche non riescono e anche ESC non funziona a parole per tornare alla modalità normale. La rimozione di Neocomplete e tutte le impostazioni relative a neocomplete hanno risolto la maggior parte di questi problemi, sebbene ESC in alcune situazioni sia ancora necessario due volte per uscire dalla modalità di inserimento.


Invece di neocomplete puoi usare YCM che vale
Arnold Gandarillas il

Ho effettuato l'aggiornamento a SpaceVim. Felice ora :)
MKouhosei,

0

Il modo giusto è cambiare la definizione della parola chiave.

Uso su vimrc:

set iskeyword=65-90,95,97-122,48-57 "the same: a-z,_,A-Z,0-9

Se usi alcuni plugin, come ctrlp, hai bisogno di un lavoro extra per mantenere attiva la configurazione di iskeyword , perché esistono molti plugin che cambiano iskeyword ogni volta che vengono eseguiti.

Puoi mappare leader + k per eseguire questo comando

map <leader>k :set iskeyword=65-90,95,97-122,48-57<CR>

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.