======= List of useful shortcuts and tricks ========
====== Brave ======
* Ctrl shift O: liste des favoris...
====== Tig ======
* tig puis s pour voir le statut puis ! devant le fichier changé pour retrouver l'ancienne version
====== Python ======
* Pour séparer les cellules, insérer #%%
* a.shape: pour avoir la dimension du tableau **a**
* plt.clf(): effacer figure
* plt.savefig(): sauver une figure
* plt.close(): fermer une figure.
===== Python et Emacs =====
* M-x imenu: pour avoir la liste des fonctions définies.
* M-x occur: pour chercher facilement les occurences...
* M-o: indentation.
* Ctrl-c Ctrl-d: documentation (aide)
* Ctrl-c Ctrl-z: switcher interpreteur-file (commencer par ca pour lancer l'interpreteur python)
* Ctrl-e: apres avoir sélectionné du texte, l'envoie dans l'interpreteur.
* Apres avoir fait un remplacement dans une partie selectionnée, on perd la sélection. Pour la retrouver, il suffit d'écrire M x exchange-point-and-mark
===== Jupyter et Emacs =====
* M-x indent-rigidly: puis fleche a gauche ou droite.
* Execute Cell: C-c C-c
* Execute Cell & Go to Next: M-RET
* New Cell Above: C-c C-a
* New Cell Below: C-c C-b
* Merge Cell: C-c Enter
* Split Cell: C-c C-s
* Kill Cell: C-c C-k
* Toggle Cell Type: C-c C-t
* Change Cell Type: C-c C-u
* Save Workbook: C-x C-s
* Discard Cell Output: C-c C-l
* Start Jupyter Server: M-x ein:jupyter-server-start
* Stop Jupyter Server: M-x ein:jupyter-server-stop
* [[https://millejoh.github.io/emacs-ipython-notebook/| documentation sur le package EIN ]]
====== Latex ======
* Pour avoir un argmax avec un $\theta \in \Theta$ bien en dessous, il suffit d'ecrire
- \let\argmax\relax
- \DeclareMathOperator*{\argmax}{arg\,max}
* Ou bien \argmax\limits{\theta \in \Theta}
* Package enumitem:
* \begin{enumerate}[resume] pour reprendre la numérotation là où on l'avait laissé.
* \begin{enumerate}[label=(\roman*)]
* on peut remplacer \roman*(i,ii) par \alph*(a,b) ou \arabic* (1,2)
====== Vs Code ======
* Ctrl K S: affiche tous les raccourcis.
* Ctrk K Q: va à la dernière édition.
* Ctrl <: va à la dernière modif
* Ctrl >: va à la modif suivante
* Ctrl H Alt L: remplacer dans une selection.
* Ctrl Espace: afficher suggestions.
* Ctrl B : afficher/cacher le panneau latéral
Installer l'extension bookmarks puis
* Ctrl alt k: mettre un bookmark
* Ctrl alt l: aller au bookmark suivant
* Ctrl alt j: aller au bookmark precedent
====== Sumatra ======
* Ctrl B: pour bookmarker
* Dans option pour reverse search avec VS code, écrire: "C:\Users\douc_ran\AppData\Local\Programs\Microsoft VS Code\Code.exe" -g "%f:%l"
====== Dokuwiki ======
* Titre de meme niveau: alt + shift + 8
* Titre de niveau inférieur: alt + shift + 9
* Ctrl+enter: pour sauver.
====== Git et Notebook ======
Pour utiliser Git et Notebook, il faut d'abord s'assurer qu'au moment Git push on n'inclue pas les outputs, ce qui permet d'eviter les conflits... Il y a le module nbstripout qui permet de faire ca automatiquement. Si on a pas encore installé nbstripout, faire le 1. Sinon, on passe directement à l'étape 2.
- **Installation de nbstripout**. Pour installer module nbstripout
* dans python, python3.10 -m pip install --upgrade nbstripout
* si on a conda: conda install -c conda-forge nbstripout
- **Une fois nbstripout installé**. Ouvrir Anaconda prompt. A partir d'Anaconda Prompt, se placer dans le répertoire Git où figure le notebook et taper
nbstripout --install --attributes .gitattributes
* 3. ** En cas de conflits. **Pour gérer les conflits (qui peuvent apparaitre dans les cellules markdowns ou dans les cellules de code), le mieux est d'utiliser: jupyter lab pour qui permet de gérer les conflits dans les notebooks. Pour plus d'infos pour gérer Git dans les notebooks, [[https://nocomplexity.com/documents/jupyterlab/tip-versioncontrol.html|cliquer ici]]
====== Git ======
* Voir les branches locales: git branch
* Voir toutes les branches locales et distantes: git branch -a
* Passer d'une branche a l autre: git checkout nom-de-la-branche
* Pour créer une branche: git branch nomDeBranche
* Pour detruire une branche locale: git branch -d branchADetruire
* Si une branche est crée a distance et qu'on veut la recuperer...
* git checkout nom-branche
====== Chrome ======
* Pour revenir sur une page dans chrome: alt+fleche gauche (page precedente) ou droite (page suivante)
* Sur vi, pour faire la touche esc, faire Alt+espace
====== Termux ======
* Pour installer un package latex: tlmgr install nom_package
* Pour chercher dans quel package se trouve bidule.sty
* tlmgr search --global --file bidule.sty
* texhash: reconstruire tout l index avec les nouveaux package installés
* fmtutil-sys --all: reconstruire tous les fmt
* sudo apt-get install texlive- : si on veut tout installer
* tmux pour appeler tmux
* Pour changer de panel sous tmux: C-b right or left arrow.
* C-b x pour killer un panel
* C-b % pour ouvrir un panel vertical
* C-b `` pour ouvrir un panel horizontal
* cd - pour aller a un repertoire precedent
* En cas de pb avec OpenSSL (mismatch): pkg install openssh
* Pour mettre tmux par defaut
if command -v tmux &> /dev/null && [ -z "$TMUX" ]; then
tmux attach -t default || tmux new -s default fi
fi
====== Emacs ======
Convention de notation: C pour Ctrl et M pour Alt
* C-x h: tout sélectionner
* C-x 0: tuer la mini-fenetre courante
* C-x 1: tuer les autres minifenetre et garder la fenetre courange
* C-x 2: creer une mini fenetre
* C-x o: switcher d'une mini-fenetre à l'autre.
* C-_: undo
* C-u C-x=: permet de voir la font et de la changer de couleur
* M-X customize-face: est plus direct pour voir la font et la changer...
* C-space C-space: pose une marque invisible
* C-u C-space: pour y revenir
* pour poser la marque M s ou bien C space. Pour echanger la marque C x C x.
* Pour selectionner tout le paragraphe, M h.
* pour aller au tout debut du fichier M < et pour aller a la toute fin du fichier M >
* pour effacer de la position courante jusqu au caractere 'x', il faut ecrire M z 'x'
* pour commencer un environnment C-c C-e
* pour commenter et decommenter: M-;
* pour aller a la table des matieres C-c =
* Pour ouvrir et fermer les accolades, M-espace
* Pour ouvrir et fermer une equation, on fait M-p
* Pour ouvrir et fermer crochets, on fait M-n
* Pour voir la liste des fichiers recents, on fait C-z
* Pour vérifier les accolades, on fait F12 ou C-)
* C-c ( pour insérer un label
* C-c ) + Enter + Space pour inserer une reference
* C-c [ pour entrer une citation
* C-c _ pour entrer le nom d un master file
* C-c = pour aller a la table des matieres
* C-t: aller a la fin du fichier
* C-i: aller au debut du fichier
* M-*: accolade apres avoir selectionne le texte
====== Elpy (Python in Emacs) ======
===== Sur Emacs =====
* C-d: pour voir les help des fonctions.
* C-c C-z: pour aller dans le python et inversement.
* M-.: on se place sur une fonction, on ecrit le raccourci clavier et ca va sur la définition de la fonction.
===== Dans le shell interpreter =====
* M-p: move backward (derniere opération)
* M_n: move forward
====== Code python ======
* Programme pour changer les dollars et doubles dollars en antislash parenthese ou crochet
import re
def replace_symbols(source_file, destination_file):
try:
with open(source_file, 'r') as source:
with open(destination_file, 'w') as destination:
content = source.read()
# Remplacer les parties entre double dollars (comme $$...$$) par leurs équivalents \[...\]
content = re.sub(r'\$\$(.*?)\$\$', r'\\[\1\\]', content, flags=re.DOTALL)
# Remplacer les parties entre dollars (comme $...$) par leurs équivalents \(...\)
content = re.sub(r'\$(.*?)\$', r'\\(\1\\)', content, flags=re.DOTALL)
destination.write(content)
except FileNotFoundError:
print("Fichier source non trouvé.")
except Exception as e:
print("Une erreur est survenue :", str(e))
else:
print("Remplacement terminé avec succès!")
# Exemple d'utilisation
source_file = "exos.tex"
destination_file = "sortie.tex"
replace_symbols(source_file, destination_file)
====== settings.json pour VsCode ======
{
"latex-workshop.synctex.synctexjs.enabled": true,
"latex-workshop.synctex.afterBuild.enabled": true,
"latex-workshop.view.pdf.viewer": "tab",
"latex-workshop.view.pdf.internal.synctex.keybinding": "double-click",
"security.workspace.trust.untrustedFiles": "open",
"latex-workshop.view.pdf.zoom": "page-width",
"editor.wordWrap": "on",
"latex-workshop.view.pdf.tab.editorGroup": "below",
"editor.bracketPairColorization.enabled": true,
"latex-workshop.message.update.show": false,
"latex-workshop.message.warning.show": false,
"latex-workshop.message.error.show": false,
"latex-workshop.message.information.show": false,
"git.confirmSync": false,
"git.untrackedChanges": "hidden",
"editor.suggestSelection": "first",
"vsintellicode.modify.editor.suggestSelection": "automaticallyOverrodeDefaultValue",
"workbench.editorAssociations": {
"*.ipynb": "jupyter-notebook"
},
"notebook.cellToolbarLocation": {
"default": "right",
"jupyter-notebook": "left"
},
"python.defaultInterpreterPath": "C:\\Users\\douc_ran\\Anaconda3\\python.exe",
"mdmath.macroFile": "C:\\Users\\douc_ran\\OneDrive\\mymacros.json",
"editor.fontSize": 12,
"editor.suggest.showStatusBar": true,
"editor.suggest.insertMode": "insert",
"markdown.extension.katex.macros": {
"\\PP": "\\mathbb{P}"
},
"window.zoomLevel": 1,
"latex-workshop.view.pdf.external.synctex": {
"command": "C:\\Users\\douc_ran\\AppData\\Local\\SumatraPDF",
"args": [
"-forward-search",
"%TEX%",
"%LINE%",
"-reuse-instance",
"-inverse-search",
"code \"C:\\Users\\douc_ran\\AppData\\Local\\Programs\\Microsoft VS Code\\resources\\app\\outcli.js\" -r -g \"%f:%l\"",
"%PDF%",
]
},
"jupyter.interactiveWindowMode": "perFile",
"[python]": {
"editor.formatOnType": true
},
"files.autoSave": "afterDelay",
"git.openRepositoryInParentFolders": "always",
"lightrun.certificatePinningList": [
"515a630cfd1fb908e30087bcc20b7413ad146b9bf2b23d3aaa72c28e45b24fb2",
"ee80811b38e7e6c2dc4cc372cbea86bd86b446b012e427f2e19bf094afba5d12"
],
"lightrun.serverURL": "https://app.lightrun.com",
"lightrun.sendSourceFullPath": true,
"git-graph.maxDepthOfRepoSearch": 1,
"git.autofetch": true,
}