2009-12-11 9 views
1

Disons que nous avons les éléments suivants dans vim atm:Qu'est-ce qui constitue un «mot» dans vim?

int main() { 
    printf("hello"); 
    return 0; 
} 

Dans vim, w déplace un mot vers la droite, mais ce qui constitue exactement un « mot »?


Par exemple, si je le curseur sur p de printf, en appuyant sur w prend u à ( et en appuyant sur une autre w saute le " et met le curseur sur le h de hello. Pourquoi le " at-il été ignoré?

En appuyant sur une autre w maintenant vous emmène à l'autre " avant la ) et en appuyant sur une autre w vous amène à la ligne suivante. Pourquoi où le ) et ; ont sauté?

Et maintenant le curseur est sur le r de return. En appuyant sur un w prend le curseur sur 0 et en appuyant sur un autre w prend maintenant le curseur sur le ;. Donc dans ce cas, le ; n'a pas été sauté contrairement à la ligne précédente. Pourquoi est-ce? J'espère avoir suffisamment clarifié ma question, mais j'essaie simplement de comprendre comment tout cela fonctionne.

Répondre

9

De :help word:

Un mot est constitué d'une séquence de lettres, chiffres et caractères de soulignement ou une séquence d'autres caractères non blancs, séparés par des espaces blancs (espaces, onglets). Cela peut être changé avec l'option 'iskeyword'. Une ligne vide est également considérée comme un mot.

Si votre utilisation du capital W à la place:

Un mot est constitué d'une séquence de caractères non-blancs, séparés avec espace blanc . Une ligne vide est également considérée comme un mot.

Dans votre exemple, w traite une séquence de lettres non-mot-clé comme un mot aussi.

EDIT: Le réglage virtualedit influencera cela aussi: Vous devez avoir unset, parce que la ponctuation ligne finale est ignorée par w (ajouter quelques espaces à la fin de la ligne pour voir la différence). Si vous définissez virtualedit=onemore, le curseur sera en mesure d'arrêter un espace au-delà de la fin de la ligne et la ponctuation finale de la ligne ne sera jamais ignorée.

2

De l'intérieur vim, le type

:help word-motions 

Vous obtiendrez toutes les explications que vous cherchez.