X-Git-Url: https://www.fleuret.org/cgi-bin/gitweb/gitweb.cgi?p=elisp.git;a=blobdiff_plain;f=emacs.el;h=037615f61ede88c675377fef4bbbc32ef30dfd54;hp=2271f585d24e6536d17dbb634523cd19ba26749d;hb=dec839751ebc5e22f91748a6b225955765176937;hpb=0fd5d8a4f454a74b52be3336af7b5d4b252acd0c diff --git a/emacs.el b/emacs.el index 2271f58..037615f 100644 --- a/emacs.el +++ b/emacs.el @@ -598,6 +598,8 @@ load-warning buffer in case of failure." (define-key global-map [(control c) (control q)] 'ff/delete-trailing-whitespaces-and-indent) +(define-key global-map [(control x) (control o)] 'other-window) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Playing sounds ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -1184,17 +1186,39 @@ goback argument, go back where we were." (ff/goto-function-definition t))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; The big stuff (bbdb, mailcrypt, etc.) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (setq python-indent-offset 4) + +;; (define-key python-mode-map [(shift right)] 'python-indent-shift-right) +;; (define-key python-mode-map [(shift left)] 'python-indent-shift-left) +;; (define-key python-mode-map [(shift right)] 'indent-rigidly-right-to-tab-stop) +;; (define-key python-mode-map [(shift left)] 'indent-rigidly-left-to-tab-stop) (load "vc-git") +(defun ff/git-pull-push () (interactive) + (message "git pull / push ...") + (shell-command "git pull && git push" nil) + ) + +(defun ff/git-pull () (interactive) + (message "git pull ...") + (shell-command "git pull" nil) + ) + +(define-key global-map [(control x) (v) (p)] 'ff/git-pull-push) +(define-key global-map [(control x) (v) (P)] 'ff/git-pull) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; The big stuff (bbdb, mailcrypt, etc.) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + (setq bbdb-file "~/private/bbdb") -(if (file-exists-p bbdb-file) +(when (file-exists-p bbdb-file) - ;; Failsafe version if we can't load bbdb - (defun ff/explicit-name (email) email) + ;; Failsafe version if we can't load bbdb + (defun ff/explicit-name (email) email) (when (ff/load-or-alert "bbdb") @@ -1416,7 +1440,7 @@ universal argument starts xfig even if the .fig does not exist" ;; Automagically add the frame numbers in comments in a beamer file -(defun number-beamer-frames () +(defun ff/number-beamer-frames () "Add the frame numbers as comments after each \begin{frame}" (interactive) @@ -1740,17 +1764,34 @@ int main(int argc, char **argv) { require 'torch' require 'nn' -require 'nnx' -require 'optim' require 'image' -require 'pl' -require 'paths' -require 'ffmpeg' +require 'optim' ") (lua-mode) ) +(defun ff/start-python () + "Adds all the stuff to start a new python file" + (interactive) + (goto-char (point-min)) + (insert "#!/usr/bin/env python-for-pytorch + +import torch +import math + +from torch import nn +from torch.nn import functional as fn + +from torch import Tensor +from torch.autograd import Variable +from torch.nn.parameter import Parameter +from torch.nn import Module + +") + (python-mode) + ) + (defun ff/start-html () "Adds all that stuff to start a new HTML file." @@ -1793,9 +1834,7 @@ the function is invoked with a universal arg" (interactive "P") (let ((line (if arg "cerr" "cout"))) (goto-char (point-at-bol)) - ;; Regexp syntax sucks moose balls, honnest. To match '[', just - ;; put it as the first char in the [...] ... This leads to some - ;; obvious things like the following + ;; To match '[', put it as the first char in the [...] (while (re-search-forward "\\([][a-zA-Z0-9_.:\(\)]+\\)" (point-at-eol) t) (setq line (concat line " << \" " @@ -1964,6 +2003,11 @@ a file in /tmp" (ff/start-lua) ) + (when (string-match "\\.py$" filename) + (python-mode) + (ff/start-python) + ) + (when (string-match "\\.html$" filename) (html-mode) (ff/start-html) @@ -2074,7 +2118,7 @@ a file in /tmp" (setq compilation-read-command t compile-command "make -j -k" - compile-history '("make clean" "make DEBUG=yes -j -k" "make -j -k") + ;; compile-history '("make clean" "make DEBUG=yes -j -k" "make -j -k") ) (defun ff/universal-compile (universal) (interactive "P") @@ -2559,12 +2603,15 @@ proposes to visit them." ;; The fridge! ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(defun ff/move-region-to-fridge () (interactive) +(defun ff/move-region-to-fridge (&optional universal) (interactive "P") "Cut the current region, paste it in a file called ./fridge with a time tag, and save this file" (unless (use-region-p) (error "No region selected")) (let ((bn (file-name-nondirectory (buffer-file-name)))) - (kill-region (region-beginning) (region-end)) + (if universal + (copy-region-as-kill (region-beginning) (region-end)) + (kill-region (region-beginning) (region-end)) + ) (with-current-buffer (find-file-noselect "fridge") (goto-char (point-max)) (insert "\n") @@ -2588,6 +2635,14 @@ with a time tag, and save this file" (setq ff/map (make-sparse-keymap)) (define-key global-map [(control \`)] ff/map) +;; (defun ff/start-stop-macro-recording () (interactive) + ;; (if (or defining-kbd-macro executing-kbd-macro) + ;; (kmacro-end-macro) + ;; (kmacro-start-macro)) + ;; ) + +;; (define-key global-map [(shift return)] 'ff/start-stop-macro-recording) + (unless window-system ;; (define-key global-map [(control @)] ff/map) (define-key global-map [(meta O) \`] ff/map) @@ -2645,7 +2700,7 @@ with a time tag, and save this file" (define-key ff/map [(control m)] 'woman) (define-key ff/map "b" 'bookmark-jump) (define-key ff/map [(control =)] 'calc) -(define-key ff/map "=" 'number-beamer-frames) +(define-key ff/map "=" 'ff/number-beamer-frames) (define-key ff/map [(control shift b)] (lambda () (interactive) (bookmark-set)