J'ai besoin d'un moyen de supprimer les retraits principaux (tabulations et espaces) des données copiées dans le presse-papiers de Notepad ++.
Les données dans le document Notepad ++ lui-même doivent conserver ces indentations principales et les données copiées dans le presse-papiers ne doivent pas l'être.
Ce comportement doit être initié par CTRL + C seul et uniquement lorsque je suis dans Notepad ++.
C'est ce qui se passe dans Notepad ++ lorsque je marque régulièrement le texte avec la souris:
C'est ce qui devrait être dans le presse-papiers après avoir marqué le texte régulièrement et le copier:
Remarques:
- Les images sont juste pour mieux illustrer mon besoin - mes codes réels sont plus longs.
- J'ai également posé des questions à ce sujet ici .
- Je pose cette question parce que je ne peux pas coller de blocs de code en retrait dans un terminal Linux si ces blocs de code incluent des documents
cat
hérités (a à voir avec le traitement des délimiteurs de documents hérités, une longue histoire).
windows-10
notepad++
clipboard
JohnDoea
la source
la source
:set paste
.cat
heredocs - C'est vrai .Réponses:
Considérez le script AutoHotKey (AHK) suivant. Consultez le didacticiel et la documentation AutoHotkey pour plus d'explications sur les scripts AutoHotkey.
Après avoir installé AutoHotKey, appuyez sur Ctrl+ Shift+ cou xdans le Bloc-notes ++ pour copier (ou couper) dans le presse-papiers avec les lignes coupées.
Remarque: j'ai utilisé Ctrl + Shiftpour que vous puissiez toujours utiliser la copie originale et couper normalement avec seulement Ctrl. Si vous n'aimez pas ce comportement, supprimez simplement les
+
deux+^c::
et+^v::
.Voir les commentaires (commençant par
;
) pour une explication. Comme pour tout codage, mieux vaut laisser dans les commentaires pour mieux comprendre le script quand on y reviendra plus tard.la source
ctrl+z
pour récupérer le contenu supprimé. C'est un peu problématique. Je comprends que quelque chose comme le code suivant pourrait être utilisé?if !LangID := EN { return }
. L'ajouter au début du script a généré une erreur et encapsuler le script avec une version similaire plus uneelse { return }
après la fermeture n'a pas généré d'erreur mais n'a pas fonctionné.TrimClipboard(){ ... }
intérieur d'uneif
instruction. Mettez l'if
instruction dans la fonction ou autour des commandesSend, ... TrimClipboard()
Utilisez simplement
Alt + Mouse dragging
ouAlt + Shift + Arrow keys
pour sélectionner la colonne, puisCtrl+C
copiez la colonne.Voir cet exemple: https://notepad-plus-plus.org/fr/features/column-mode-editing.html
Éditer:
Nous pouvons également sélectionner la colonne entière, ou même plus d'une colonne, nous pouvons également sélectionner une ou plusieurs lignes.
Voici un moyen simple de le faire:
Clic gauche de la souris au début de la sélection souhaitée.
Allez à l'endroit où la sélection souhaitée doit s'arrêter
Déplacez le curseur sur ce deuxième et dernier emplacement, avec:
ALT
+SHIFT
et aleft click
, simultanément, pour sélectionner les colonnes et les lignes souhaitées.J'espère que cette aide
la source
Voici une solution portable-ish utilisant Java
La première étape consiste, bien sûr, à installer Java
Ensuite, collez ce qui suit dans un fichier nommé
Trimmer.java
dans votre répertoire utilisateur (C: \ Users \ votre_nom)Ensuite, ouvrez une invite de commande et tapez
Vous devriez maintenant avoir un fichier Trimmer.class dans le même dossier. Vous pouvez maintenant supprimer le fichier Trimmer.java.
À ce stade, nous avons un programme qui supprimera tous les espaces blancs de début et de fin de chaque ligne du presse-papiers, mais nous avons toujours besoin d'un moyen de l'exécuter facilement. Faisons un raccourci clavier pour cela!
Créez d'abord un raccourci vers l'invite de commande (cliquez avec le bouton droit sur C: \ Windows \ System32 \ cmd.exe)
Ensuite, cliquez avec le bouton droit sur ce raccourci et sélectionnez "Propriétés". Il y a quelques choses que nous devons faire dans cette fenêtre. Dans l'onglet "Raccourci", il devrait y avoir une option "Cible" qui dit quelque chose comme
Changez-le pour dire
Cela entraînera l'invite de commandes à exécuter simplement notre programme et à quitter lorsque nous utiliserons ce raccourci.
Ensuite, cliquez sur la case "Touche de raccourci" et appuyez sur le raccourci clavier que vous souhaitez déclencher le remplacement du texte. Je recommande Ctrl+ Shift+ Cpour une facilité d'utilisation!
Enfin, changez l'option "Exécuter" en "Réduit" car nous ne voulons pas qu'une fenêtre clignote sur l'écran chaque fois que nous utilisons le raccourci.
Après tout cela, vous devriez pouvoir utiliser le workflow suivant:
la source
Peut-être que je manque quelque chose, mais toutes les autres réponses semblent compliquer la solution. Si j'ai bien compris, tout ce que vous voulez faire est de supprimer les principaux espaces blancs (espaces ou tabulations) et vous avez les données disponibles dans Notepad ++
Dans ce cas, la solution est simple. Ouvrez votre fichier dans
Notepad++ >> Search >> Replace... or Ctrl+H
Trouvez quoi :
^( *)[ ]|^\t*
Remplacer par : laisser vide
Pour trouver tout l'espace de tête que nous utilisons
^( *)[ ]
et pour trouver tous les onglets de tête, nous utilisons^\t*
, en tant que tels, pour trouver tout l'espace de tête ou tous les onglets de tête que nous utilisons, ou l'opérateur|
. Assurez-vous que l' expression régulière est sélectionnée dans la fenêtre de remplacement.Il devrait se terminer assez rapidement, même s'il s'agit d'un gros fichier. Fermez la fenêtre Remplacer et sélectionnez tout (Ctrl + A) >> Copier (Ctrl + C)
la source
Ma réponse est basée sur la réponse de Steven que j'ai marquée comme correcte (pourtant j'ai eu quelques problèmes avec elle et j'ai essayé de la modifier bien que ma modification ait été rejetée).
Voici le code qui m'a le mieux fonctionné:
Différences par rapport au code d'origine de Steven:
Send, ^c
etSend, ^x
avecSend, ^{sc02e}
etSend, ^{sc02d}
, respectivement. Cela empêche un bogue de suppression de texte en mode hébreu et certains autres modes de langue non anglais).la source