Default Settings

You can set some default settings.



;set the initial frame, different for each monitor
(setq initial-frame-alist '((left . 250) (top . 25) (height . 40) (width . 110)
(left-fringe . 6) (right-fringe . 6)))

;set default frame
(setq default-frame-alist (copy-alist initial-frame-alist))

;Auto refresh buffers including dired
(setq global-auto-revert-non-file-buffers t)

; Do not generate any messages (be quiet about refreshing Dired).
(setq auto-revert-verbose nil)

;Auto refresh buffers
(global-auto-revert-mode 1)

;encourage new frame over new window
(setq split-window-preferred-function nil)
;(setq split-window-preferred-function 'split-window-sensibly)

;two identical buffers get uniquely numbered names
(require 'uniquify)

;if window smaller 90 split below, over split beside
(setq split-width-threshold 90)
(setq uniquify-buffer-name-style 'forward)

;; Allow recursive minibuffers
(setq enable-recursive-minibuffers t)

;;show recursion depth in minibuffer
(minibuffer-depth-indicate-mode t)

;; Save minibuffer history
(savehist-mode 1)
(setq history-length 1000)

;Killing line deletes it
(setq kill-whole-line t)

;Down arrow won't add \n
(setq next-line-add-newlines t)

;newline required
;(setq require-final-newline t)

;Iterate through CamelCase words diminished
(with-eval-after-load 'subword
  (diminish 'subword-mode))
(global-subword-mode +1)

; Don't break lines
(setq-default truncate-lines t)

Go to Line



; go to line with feedback
;quit-selection-here
 (defun goto-line-with-feedback ()
   "Show line numbers temporarily, while prompting for the line number input"
   (interactive)
   (unwind-protect
       (progn
 (display-line-numbers-mode 1)
 (goto-line (read-number "Goto line: ")))
     (display-line-numbers-mode 0)))

Append Lines



(defun append-lines ()
"add next line to current line"
    (lambda ()
        (interactive)
            (join-line -1)))

Open File in Default App From Dired



(defun xah-open-in-external-app (&optional file)
  "Open the current file or dired marked files in external app.
The app is chosen from your OS's preference."
  (interactive)
  (let ( doIt
         (myFileList
          (cond
           ((string-equal major-mode "dired-mode") (dired-get-marked-files))
           ((not file) (list (buffer-file-name)))
           (file (list file)))))

    (setq doIt (if (<= (length myFileList) 5)
                   t
                 (y-or-n-p "Open more than 5 files? ") ) )
     (when doIt
      (cond
       ((string-equal system-type "windows-nt")
        (mapc (lambda (fPath) (w32-shell-execute "open" (replace-regexp-in-string "/" "\\" fPath t t)) ) myFileList))
       ((string-equal system-type "darwin")
        (mapc (lambda (fPath) (shell-command (format "open \"%s\"" fPath)) )  myFileList) )
       ((string-equal system-type "gnu/linux")
        (mapc (lambda (fPath) (let ((process-connection-type nil)) (start-process "" nil "xdg-open" fPath)) ) myFileList) ) ) ) ) )

Dates And Times



;; Date and time functions
(defvar current-date-time-format "%a %b %d %Y %H:%M:%S %Z "
  "Format of date to insert with `insert-current-date-time' func
See help of `format-time-string' for possible replacements")
;
(defvar current-date-format "%d %b  %Y "
  "Format of date to insert with `insert-current-date-time' func
See help of `format-time-string' for possible replacements")
;
(defvar current-time-format "%a %H:%M:%S"
  "Format of date to insert with `insert-current-time' func.
Note the weekly scope of the command's precision.")
;
(defun insert-current-date-time ()
  "insert the current date and time into current buffer.
Uses `current-date-time-format' for the formatting the date/time."
       (interactive)
;       (insert (let () (comment-start)))
       (insert (format-time-string current-date-time-format (current-time)))
       )
;
(defun insert-current-date ()
  "insert the current date and time into current buffer.
Uses `current-date-format' for the formatting the date/time."
       (interactive)
;       (insert (let () (comment-start)))
       (insert (format-time-string current-date-format (current-time)))
       )
;
(defun insert-current-time ()
  "insert the current time (1-week scope) into the current buffer."
       (interactive)
       (insert (format-time-string current-time-format (current-time)))
       )
(bind-key "\C-c\C-y" 'insert-current-date)
(bind-key "\C-c\C-t" 'insert-current-time)