(require 'cl-lib)
-(defun copy-line (arg)
+(defun my/copy-line (arg)
"Copy lines in the kill ring"
(interactive "p")
(kill-ring-save (line-beginning-position)
(line-beginning-position (+ 1 arg)))
(message "%d line%s copied" arg (if (= 1 arg) "" "s")))
-(defun frame-initial-frame-p (frame)
+(defun my/generate-frame-title ()
+ (if (buffer-file-name)
+ (concat
+ (file-name-nondirectory (buffer-file-name))
+ (if (buffer-modified-p)
+ " +")
+ " ("
+ (abbreviate-file-name (substring (file-name-directory (buffer-file-name)) 0 -1))
+ ") - Emacs"
+ )
+ (concat
+ "%b"
+ (if (buffer-modified-p)
+ " +")
+ " - Emacs")))
+
+(defun my/frame-initial-frame-p (frame)
+ "Returns true if the given frame is the magic 'initial frame' that always exists in GUI emacs sessions"
(equal "initial_terminal" (terminal-name frame)))
-(defun frame-list-ignoring-initial-frame ()
- (filtered-frame-list (lambda (frame) (not (frame-initial-frame-p frame)))))
+(defun my/frame-list-ignoring-initial-frame ()
+ (filtered-frame-list (lambda (frame) (not (my/frame-initial-frame-p frame)))))
-(defun kill-buffer-safely (buffer)
+(defun my/kill-buffer-safely (buffer)
"Kill the buffer if it is not special or modified"
(if (and
(not (string-match "^ " (buffer-name buffer)))
(null (buffer-file-name buffer))))
(kill-buffer buffer)))
-(defun kill-buffers-if-deleting-last-frame (frame)
+(defun my/kill-buffers-if-deleting-last-frame (frame)
"Kill all buffers when closing the last frame"
- (when (equal (list frame) (frame-list-ignoring-initial-frame))
+ (when (equal (list frame) (my/frame-list-ignoring-initial-frame))
(dolist (buffer (buffer-list))
- (kill-buffer-safely buffer))))
+ (my/kill-buffer-safely buffer))))
-(defun kill-buffers-not-in-frame ()
+(defun my/kill-buffers-not-in-frame ()
"Kill buffers which are not loaded into some frame"
(interactive)
(let ((kill-count 0))
(dolist (buffer (buffer-list))
(let* ((window (get-buffer-window buffer t))
(frame (window-frame window)))
- (if (or (null frame) (not (window-live-p window)) (frame-initial-frame-p frame))
- (if (kill-buffer-safely buffer)
+ (if (or (null frame) (not (window-live-p window)) (my/frame-initial-frame-p frame))
+ (if (my/kill-buffer-safely buffer)
(cl-incf kill-count)))))
(message "Killed %d buffers" kill-count)))
-(defun open-line-above ()
+(defun my/open-line-above ()
"Open a new line above point with indentation"
(interactive)
(beginning-of-line)
(forward-line -1)
(indent-for-tab-command))
-(defun open-line-below ()
+(defun my/open-line-below ()
"Open a new line below point with indentation"
(interactive)
(end-of-line)
(newline)
(indent-for-tab-command))
-(defun scratch-buffer ()
+(defun my/scratch-buffer ()
"Create a new scratch buffer to work in. (could be *scratch* - *scratchX*)"
(interactive)
(let ((n 0)
(emacs-lisp-mode)
))
-(defun toggle-comment-on-line ()
+(defun my/toggle-comment-on-line ()
"Toggles the comment on for the active region if present or the current line otherwise."
(interactive)
(if (and mark-active transient-mark-mode)
(global-set-key (kbd "C-x f") 'counsel-find-file)
(global-set-key (kbd "C-c f") 'counsel-git)
(global-set-key (kbd "C-c g") 'counsel-git-grep)
-(global-set-key (kbd "C-x C-k") 'kill-buffers-not-in-frame)
+(global-set-key (kbd "C-x C-k") 'my/kill-buffers-not-in-frame)
(global-set-key (kbd "C-x C-b") 'ibuffer)
(global-set-key (kbd "C-x C-r") 'ivy-recentf)
(global-set-key (kbd "M-/") 'hippie-expand)
(global-set-key (kbd "M-;") 'toggle-comment-on-line)
(global-set-key (kbd "M-i") 'change-inner)
-(global-set-key (kbd "C-o") 'open-line-above)
-(global-set-key (kbd "M-o") 'open-line-below)
+(global-set-key (kbd "C-o") 'my/open-line-above)
+(global-set-key (kbd "M-o") 'my/open-line-below)
;; Marking
(global-set-key (kbd "C-=") 'er/expand-region)
;; Killing and deleting
(global-set-key (kbd "M-y") 'counsel-yank-pop)
-(global-set-key (kbd "M-_") 'copy-line)
+(global-set-key (kbd "M-_") 'my/copy-line)
(global-set-key (kbd "M-z") 'zap-up-to-char)
;; Mode switching