2008-09-15 20 views

Répondre

2

Je créerais une commande bundle pour cela.

Vous pouvez prendre la sélection de l'éditeur en entrée de votre script, puis le remplacer par le résultat de l'exécution. Cette commande, par exemple, prend un nombre sélectionné et imprime le caractère "#" autant de fois que nécessaire.

python -c "print '#' * $TM_SELECTED_TEXT" 

Bien sûr, cet exemple ne vous permet pas de spécifier le caractère, mais il vous donne une idée de ce qui est possible.

1

En prenant le

python -c "print '#' * $TM_SELECTED_TEXT" 

une étape supplémentaire, vous pouvez dupliquer les exemples que vous avez données à la question.

juste faire un extrait, appelé diviseur ou quelque chose, définissez le champ tab trigger à quelque chose approprié '--' par exemple, puis entrez quelque chose comme:

`python -c "print '_' * $TM_COLUMNS"` 

Ensuite, lorsque vous tapez --⇥ (tableau de bord onglet tableau de bord), vous devriez obtenir un diviseur de la bonne largeur. Il est vrai que vous avez perdu une partie de la finesse de vim, mais il est beaucoup plus facile de la réutiliser et il vous suffit de la taper une seule fois. Vous pouvez également utiliser n'importe quelle langue que vous aimez.

+0

Il me manque quelque chose: comment le réutiliser? La question portait sur l'exécution d'une action, pas seulement l'insertion d'un personnage. Dois-je écrire un nouveau programme Python pour chaque action que je veux répéter? – Ken

1

Inspiré par les autres réponses. Créez un extrait avec ce qui suit:

`python -c "print ':'.join('$TM_SELECTED_TEXT'.split(':')[:-1]) * int('$TM_SELECTED_TEXT'.split(':')[-1])"` 

et d'y affecter éventuellement une séquence de touches, par ex. CTRL-SHIFT-R

Si vous tapez -x:4, sélectionnez-le, et appelez l'extrait (par son raccourci par exemple), vous obtiendrez "-x-x-x-x".

Vous pouvez également utiliser ::4 pour obtenir "::::".

La chaîne que vous répétez est entourée de guillemets simples, donc pour répéter ', vous devez utiliser \'.