J'ai besoin d'un moyen rapide pour faire sauter le curseur en dehors des qoutes de bouclage automatique ou d'autres éléments de syntaxe. Je ne veux pas avoir à descendre jusqu'à mes touches fléchées à chaque fois, et je ne veux certainement pas aller à ma souris.
Existe-t-il un moyen rapide et facile de résoudre ce problème pour mon flux de travail?
Vous pouvez utiliser un raccourci (shift+space, ou ce que vous voulez) pour déplacer le curseur.
Dans votre Key Bindings - User
:
{ "keys": ["shift+space"], "command": "move", "args": {"by": "characters", "forward": true} }
J'ai également fait quelques raccourcis clavier avec des macros.
Vous devez créer une macro pour ceux-ci, sauf si vous voulez passer plus de temps à les construire, mais c'est vraiment facile. Allez simplement dans Sublime Text, Tools
> Record Macro
, ou appuyez sur ctrl
Q
. Enregistrez le fichier dans Packages/User /, puis appuyez sur ⌘
,
pour ouvrir vos paramètres utilisateur. Collez les paramètres ci-dessous et boum. (Le | ci-dessous représente mon curseur)
Voici celui que j'ai choisi:
Lorsque le curseur est ici:
totallyAwesomeness(|)
Utilisez l'option + le raccourci tilda .
Cela préremplit la fonction avec des crochets et le texte '# code ...' mis en évidence. Cela ne fonctionne qu'à l'intérieur de la parenthèse.
{
"keys": ["option+`"], "command": "run_macro_file", "args": {"file": "Packages/User/superBracketizeFunction.sublime-macro"}
},
Lorsque le curseur est ici:
echo 'say what!!??|'
Utilisez la commande + raccourci point-virgule .
Cela ajoute une fermeture; à la fin de la ligne actuelle et vous déplace vers la ligne en dessous. Cela fonctionne réellement où que vous soyez sur la ligne.
{
"keys": ["super+;"], "command": "run_macro_file", "args": {"file": "Packages/User/superEndLineWiSemiColin.sublime-macro"}
},
Lorsque votre curseur se trouve n'importe où dans la fonction, il se retrouve ici:
public function totallyAwesomeness()
{
echo 'say what!!??';
} |
echo 'yep... that just happened';
Utilisez la commande + entrez le raccourci .
Cela vous permettra de sauter en dehors de l'argument et d'un espace à droite, ainsi que n'importe où à l'intérieur de la fonction, il vous fera sortir de celui-ci en étant simplement le crochet de fermeture.
{
"keys": ["option+enter"], "command": "run_macro_file", "args": {"file": "Packages/User/superExitFunctionArg.sublime-macro"}
},
Au cas où vous ne savez pas quel est le chemin d'accès à votre dossier utilisateur, il est indiqué ci-dessous.
/Users/alexcory/Library/Application Support/Sublime Text 3/Packages/User/
De plus, le dossier Bibliothèque est généralement masqué, vous pouvez donc télécharger un programme appelé Revealer qui vous permettra de basculer ces fichiers cachés.
Si vous voulez savoir comment j'ai fait ça, venez me frapper et je vais vous montrer! :RÉ
La meilleure solution pour cela est enregistrer une macro sur Sublime Text puis l'attribuer à un raccourci clavier. Suivez ces étapes:
Créez un raccourci en l'ajoutant entre crochets dans votre dans vos préférences> raccourcis clavier - fichier utilisateur:
{
"keys": ["super+;"], "command": "run_macro_file", "args": {"file": "Packages/User/EndOfLine.sublime-macro"}
}
Bon codage!
Une manière plus complète de créer une liaison de clé serait:
{ "keys": ["shift+space"], "command": "move", "args": {"by": "characters", "forward": true}, "context":
[
{ "key": "following_text", "operator": "regex_contains", "operand": "^[)\"\\]]", "match_all": true },
{ "key": "auto_complete_visible", "operator": "equal", "operand": false }
]
},
En supposant que vous vouliez shift+space comme raccourci. Ou vous pouvez le changer en tab ainsi que
Tel que trouvé dans http://www.sublimetext.com/forum/viewtopic.php?f=3&t=5174#p23086
Après le poste de Riccardo Marotti;
Si vous souhaitez contourner le crochet sur la ligne suivante, vous pouvez remplacer "caractères" par "lignes" dans la section args.
{ "keys": ["shift+space"], "command": "move", "args": {"by": "lines", "forward": true} }
Je viens d'avoir cette fonctionnalité partiellement implémentée à l'aide de un plugin nommé run_multiple_commands.py (voir ci-dessous)
( testé uniquement sur ST3, mais le plugin est antérieur à la première version de ST3 et devrait également fonctionner sur ST2).
La configuration des raccourcis est la suivante:
{
"keys": ["shift+space"],
"command": "run_multiple_commands",
"args": {
"commands": [
{"command": "move", "args": {"by": "characters", "forward": true} }
]
},
"context":
[
{ "key": "preceding_text", "operator": "regex_contains", "operand": "[)\\]}'\"]$", "match_all": true},
{ "key": "auto_complete_visible", "operator": "equal", "operand": false }
]
},
{
"keys": ["shift+space"],
"command": "run_multiple_commands",
"args": {
"commands": [
{"command": "move", "args": {"by": "characters", "forward": true} },
]
},
"context":
[
{ "key": "following_text", "operator": "regex_contains", "operand": "^[)\\]}'\"]", "match_all": true },
{ "key": "auto_complete_visible", "operator": "equal", "operand": false }
]
},
{
"keys": ["shift+space"],
"command": "run_multiple_commands",
"args": {
"commands": [
{"command": "move_to", "args": {"to": "brackets"} },
]
},
"context":
[
{ "key": "following_text", "operator": "regex_contains", "operand": "^[(\\[{]", "match_all": true },
{ "key": "auto_complete_visible", "operator": "equal", "operand": false }
]
},
{
"keys": ["shift+space"],
"command": "run_multiple_commands",
"args": {
"commands": [
{"command": "move_to", "args": {"to": "brackets"} },
{"command": "move", "args": {"by": "characters", "forward": true} },
]
},
"context":
[
{ "key": "following_text", "operator": "not_regex_contains", "operand": "^[)\\]}'\"]", "match_all": true },
{ "key": "preceding_text", "operator": "not_regex_contains", "operand": "[)\\]}'\"]$", "match_all": true},
{ "key": "following_text", "operator": "not_regex_contains", "operand": "^[(\\[{]", "match_all": true },
{ "key": "auto_complete_visible", "operator": "equal", "operand": false }
]
},
Un raccourci (shift+space
) pour quatre conditions:
le curseur est juste après les guillemets ou les parenthèses fermantes/parenthèses:
faire avancer un personnage
le curseur est juste avant les guillemets ou les parenthèses fermantes/parenthèses:
faire avancer un personnage
le curseur est juste avant d'ouvrir les parenthèses/parenthèses:
passer aux parenthèses fermantes/crochet
! 1
&&! 2
&&! 3
:
passer aux parenthèses fermantes/crochet
et faire avancer un personnage de plus
Pour utiliser cette configuration dans votre ST, vous devez d'abord ajouter un fichier nommé run_multiple_commands.py
à ton .../Package/User/
répertoire, et dont le contenu est le deuxième élément de code de Cet article
Cette solution est très bien pour un usage quotidien mais n'est pas parfaite car:
Ctrl + M est celui par défaut que j'ai sur la machine Windows. Simplement fais-le
sur un Dell XPS, Ctrl Enter fait l'affaire pour moi
J'utilise ctrl+f pour déplacer le curseur d'un espace vers l'avant. Aussi, sur mac, j'ai échangé caps lock avec ctrl. caps lock+f est beaucoup plus facile à atteindre. Cela fonctionne assez bien pour moi.
Peut-être le home et le end clé sont près de vos doigts.
J'ai trouvé un autre moyen qui se trouve dans les sublimes raccourcis clavier. Fondamentalement, je modifie simplement les raccourcis clavier pour les parenthèses à fermeture automatique, c'est-à-dire que je remplace "contents": "($0)"
par "contents": "($1)$0"
. Ensuite, appuyez simplement sur Tab
pour sortir de la parenthèse. J'ajoute donc dans mes raccourcis clavier ce qui suit:
{ "keys": ["("], "command": "insert_snippet", "args": {"contents": "($1)$0"}, "context":
[
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
{ "key": "following_text", "operator": "regex_contains", "operand": "^(?:\t| |\\)|]|;|\\}|$)", "match_all": true }
]
},
Et similaire pour les crochets, les accolades et les guillemets simples et doubles.
Ctrl + PgUp Cycle up through tabs
Ctrl + PgDn Cycle down through tabs
Cela peut aller à la fin des parenthèses