代码拉取完成,页面将自动刷新
同步操作将从 latpaw/emacs 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
;;----------------------------------------------------------------------------
;; Misc config - yet to be placed in separate files
;;----------------------------------------------------------------------------
(add-auto-mode 'tcl-mode "Portfile\\'")
(fset 'yes-or-no-p 'y-or-n-p)
(add-hook 'find-file-hooks 'goto-address-prog-mode)
(add-hook 'after-save-hook 'executable-make-buffer-file-executable-if-script-p)
(setq goto-address-mail-face 'link)
(column-number-mode 1)
;; NO automatic new line when scrolling down at buffer bottom
(setq next-line-add-newlines nil)
;; @see http://stackoverflow.com/questions/4222183/emacs-how-to-jump-to-function-definition-in-el-file
(global-set-key (kbd "C-h C-f") 'find-function)
;Ctrl-X, u/l to upper/lowercase regions without confirm
(put 'downcase-region 'disabled nil)
(put 'upcase-region 'disabled nil)
;; Write backup files to own directory
(if (not (file-exists-p (expand-file-name "~/.backups")))
(make-directory (expand-file-name "~/.backups"))
)
(setq
backup-by-coping t ; don't clobber symlinks
backup-directory-alist '(("." . "~/.backups"))
delete-old-versions t
kept-new-versions 6
kept-old-versions 2
version-control t ;use versioned backups
)
;; Make backups of files, even when they're in version control
(setq vc-make-backup-files t)
;; Don't disable narrowing commands
(put 'narrow-to-region 'disabled nil)
(put 'narrow-to-page 'disabled nil)
(put 'narrow-to-defun 'disabled nil)
; from RobinH
;Time management
(setq display-time-24hr-format t)
(setq display-time-day-and-date t)
(display-time)
(global-set-key [f12] 'list-bookmarks)
(global-set-key (kbd "M-o") 'switch-window)
(when *win32*
;; resize frame
(defun w32-maximize-frame ()
"Maximize the current frame."
(interactive)
(w32-send-sys-command 61488)
(global-set-key (kbd "C-c z") 'w32-restore-frame))
(global-set-key (kbd "C-c z") 'w32-maximize-frame)
(defun w32-restore-frame ()
"Restore a minimized frame."
(interactive)
(w32-send-sys-command 61728)
(global-set-key (kbd "C-c z") 'w32-maximize-frame))
)
;; M-x ct ENTER
(defun ct (dir-name)
"Create tags file."
(interactive "DDirectory: ")
(shell-command
(format "ctags -f %s/TAGS -e -R %s" dir-name (directory-file-name dir-name)))
)
; @see http://xahlee.blogspot.com/2012/01/emacs-tip-hotkey-for-repeat-complex.html
(global-set-key [f2] 'repeat-complex-command)
;effective emacs item 3
(global-set-key "\C-s" 'isearch-forward-regexp)
(global-set-key "\M-s" 'isearch-backward-regexp)
(global-set-key "\C-\M-s" 'tags-search)
(global-set-key "\C-x\C-n" 'find-file-other-frame) ;open new frame with a file
;;a no-op function to bind to if you want to set a keystroke to null
(defun void () "this is a no-op" (interactive))
;convert a buffer from dos ^M end of lines to unix end of lines
(defun dos2unix ()
(interactive)
(goto-char (point-min))
(while (search-forward "\r" nil t) (replace-match "")))
;vice versa
(defun unix2dos ()
(interactive)
(goto-char (point-min))
(while (search-forward "\n" nil t) (replace-match "\r\n")))
;show ascii table
(defun ascii-table ()
"Print the ascii table. Based on a defun by Alex Schroeder <asc@bsiag.com>"
(interactive)
(switch-to-buffer "*ASCII*")
(erase-buffer)
(insert (format "ASCII characters up to number %d.\n" 254))
(let ((i 0))
(while (< i 254)
(setq i (+ i 1))
(insert (format "%4d %c\n" i i))))
(beginning-of-buffer))
;; I'm in Australia now, so I set the locale to "en_AU"
(defun insert-date (prefix)
"Insert the current date. With prefix-argument, use ISO format. With
two prefix arguments, write out the day and month name."
(interactive "P")
(let ((format (cond
((not prefix) "%d.%m.%Y")
((equal prefix '(4)) "%Y-%m-%d")
((equal prefix '(16)) "%d %B %Y")))
)
(insert (format-time-string format))))
(defun insert-blog-version ()
"insert version of my blog post"
(interactive)
(insert (format-time-string "%Y%m%d"))
)
;;compute the length of the marked region
(defun region-length ()
"length of a region"
(interactive)
(message (format "%d" (- (region-end) (region-beginning)))))
;; gdb
(global-set-key "\C-x\C-a\C-g" 'gud-run)
(defalias 'list-buffers 'ibuffer)
;KEYBOARD SECTION
;global keyb maps
(global-set-key "\C-xc" 'clipboard-kill-ring-save)
(global-set-key "\C-cc" 'copy-region-as-kill)
;; @see http://www.emacswiki.org/emacs/BetterRegisters
;; This is used in the function below to make marked points visible
(defface register-marker-face '((t (:background "grey")))
"Used to mark register positions in a buffer."
:group 'faces)
;effective emacs item 7; no scrollbar, no menubar, no toolbar
(if (fboundp 'scroll-bar-mode) (scroll-bar-mode -1))
(if (fboundp 'tool-bar-mode) (tool-bar-mode -1))
;(if (fboundp 'menu-bar-mode) (menu-bar-mode -1))
;effiective emacs item9
(defalias 'qrr 'query-replace-regexp)
(setq-default regex-tool-backend 'perl)
;;; {{ clipboard stuff
;; Use the system clipboard
(setq x-select-enable-clipboard t)
;; you need install xsel under Linux
;; xclip has some problem when copying under Linux
(defun copy-yank-str (msg)
(kill-new msg)
(with-temp-buffer
(insert msg)
(shell-command-on-region (point-min) (point-max)
(cond
((eq system-type 'cygwin) "putclip")
((eq system-type 'darwin) "pbcopy")
(t "xsel -ib")
))))
(defun copy-full-path-of-current-buffer ()
"copy full path into the yank ring and OS clipboard"
(interactive)
(when buffer-file-name
(kill-new (file-truename buffer-file-name))
(copy-yank-str (file-truename buffer-file-name))
(message "full path of current buffer => clipboard & yank ring")
))
(global-set-key (kbd "C-x v f") 'copy-full-path-of-current-buffer)
(defun copy-to-x-clipboard ()
(interactive)
(if (region-active-p)
(progn
; my clipboard manager only intercept CLIPBOARD
(shell-command-on-region (region-beginning) (region-end)
(cond
(*cygwin* "putclip")
(*is-a-mac* "pbcopy")
(t "xsel -ib")
)
)
(message "Yanked region to clipboard!")
(deactivate-mark))
(message "No region active; can't yank to clipboard!")))
(defun paste-from-x-clipboard()
(interactive)
(shell-command
(cond
(*cygwin* "getclip")
(*is-a-mac* "pbpaste")
(t "xsel -ob")
)
1)
)
;;; }}
(eval-after-load "speedbar" '(if (load "mwheel" t)
;; Enable wheelmouse support by default
(cond (window-system
(mwheel-install)))))
; @see http://www.emacswiki.org/emacs/SavePlace
(require 'saveplace)
(setq-default save-place t)
;; expand region
;; if emacs-nox, use C-@, else, use C-2;
(eval-after-load "nxml-mode" '(require 'html-mode-expansions))
(if window-system
(progn
(define-key global-map (kbd "C-2") 'er/expand-region)
(define-key global-map (kbd "C-M-2") 'er/contract-region)
)
(progn
(define-key global-map (kbd "C-@") 'er/expand-region)
(define-key global-map (kbd "C-M-@") 'er/contract-region)
)
)
;;iedit-mode
(global-set-key (kbd "C-c ; i") 'iedit-mode-toggle-on-function)
;;align text
(global-set-key (kbd "C-c C-l") 'align-regexp)
;; my screen is tiny, so I use minimum eshell prompt
(setq eshell-prompt-function
(lambda ()
(concat (getenv "USER") " $ ")))
;; max frame, @see https://github.com/rmm5t/maxframe.el
(require 'maxframe)
;; (setq mf-max-width 1600) ;; Pixel width of main monitor. for dual-lcd only
(add-hook 'window-setup-hook 'maximize-frame t)
;; command-frequency
;; (require 'command-frequency)
;; (command-frequency-table-load)
;; (command-frequency-mode 1)
;; (command-frequency-autosave-mode 1)
(defun toggle-env-http-proxy ()
"set/unset the environment variable http_proxy which w3m uses"
(interactive)
(let ((proxy "http://127.0.0.1:8000"))
(if (string= (getenv "http_proxy") proxy)
;; clear the the proxy
(progn
(setenv "http_proxy" "")
(message "env http_proxy is empty now")
)
;; set the proxy
(setenv "http_proxy" proxy)
(message "env http_proxy is %s now" proxy)
)
))
(defun strip-convert-lines-into-one-big-string (beg end)
"strip and convert selected lines into one big string which is copied into kill ring.
When transient-mark-mode is enabled, if no region is active then only the
current line is acted upon.
If the region begins or ends in the middle of a line, that entire line is
copied, even if the region is narrowed to the middle of a line.
Current position is preserved."
(interactive "r")
(let (str (orig-pos (point-marker)))
(save-restriction
(widen)
(when (and transient-mark-mode (not (use-region-p)))
(setq beg (line-beginning-position)
end (line-beginning-position 2)))
(goto-char beg)
(setq beg (line-beginning-position))
(goto-char end)
(unless (= (point) (line-beginning-position))
(setq end (line-beginning-position 2)))
(goto-char beg)
(setq str (replace-regexp-in-string "[ \t]*\n" "" (replace-regexp-in-string "^[ \t]+" "" (buffer-substring-no-properties beg end))))
;; (message "str=%s" str)
(kill-new str)
(goto-char orig-pos)))
)
(global-set-key (kbd "C-c C-y") 'strip-convert-lines-into-one-big-string)
;; enable for all programming modes
;; http://emacsredux.com/blog/2013/04/21/camelcase-aware-editing/
(add-hook 'prog-mode-hook 'subword-mode)
;; { smarter navigation to the beginning of a line
;; http://emacsredux.com/blog/2013/05/22/smarter-navigation-to-the-beginning-of-a-line/
(defun smarter-move-beginning-of-line (arg)
"Move point back to indentation of beginning of line.
Move point to the first non-whitespace character on this line.
If point is already there, move to the beginning of the line.
Effectively toggle between the first non-whitespace character and
the beginning of the line.
If ARG is not nil or 1, move forward ARG - 1 lines first. If
point reaches the beginning or end of the buffer, stop there."
(interactive "^p")
(setq arg (or arg 1))
;; Move lines first
(when (/= arg 1)
(let ((line-move-visual nil))
(forward-line (1- arg))))
(let ((orig-point (point)))
(back-to-indentation)
(when (= orig-point (point))
(move-beginning-of-line 1))))
;; remap C-a to `smarter-move-beginning-of-line'
(global-set-key [remap move-beginning-of-line]
'smarter-move-beginning-of-line)
;; }
(defun open-readme-in-git-root-directory ()
(interactive)
(let (filename
(root-dir (locate-dominating-file (file-name-as-directory (file-name-directory buffer-file-name)) ".git"))
)
;; (message "root-dir=%s" root-dir)
(and root-dir (file-name-as-directory root-dir))
(setq filename (concat root-dir "README.org"))
(if (not (file-exists-p filename))
(setq filename (concat root-dir "README.md"))
)
;; (message "filename=%s" filename)
(if (file-exists-p filename)
(switch-to-buffer (find-file-noselect filename nil nil))
(message "NO README.org or README.md found!"))
))
(global-set-key (kbd "C-c C-q") 'open-readme-in-git-root-directory)
;; from http://emacsredux.com/blog/2013/05/04/rename-file-and-buffer/
(defun rename-file-and-buffer ()
"Rename the current buffer and file it is visiting."
(interactive)
(let ((filename (buffer-file-name)))
(if (not (and filename (file-exists-p filename)))
(message "Buffer is not visiting a file!")
(let ((new-name (read-file-name "New name: " filename)))
(cond
((vc-backend filename) (vc-rename-file filename new-name))
(t
(rename-file filename new-name t)
(rename-buffer new-name)
(set-visited-file-name new-name)
(set-buffer-modified-p nil)))))))
(global-set-key (kbd "C-c C-r") 'rename-file-and-buffer)
(defun copy-file-and-rename-buffer ()
"copy the current buffer and file it is visiting.
if the old file is under version control, the new file is added into
version control automatically"
(interactive)
(let ((filename (buffer-file-name)))
(if (not (and filename (file-exists-p filename)))
(message "Buffer is not visiting a file!")
(let ((new-name (read-file-name "New name: " filename)))
(copy-file filename new-name t)
(rename-buffer new-name)
(set-visited-file-name new-name)
(set-buffer-modified-p nil)
(when (vc-backend filename)
(vc-register)
)))))
(global-set-key (kbd "C-c c") 'copy-file-and-rename-buffer)
;; @see http://wenshanren.org/?p=298
(defun wenshan-edit-current-file-as-root ()
"Edit the file that is associated with the current buffer as root"
(interactive)
(if (buffer-file-name)
(progn
(setq file (concat "/sudo:root@localhost:" (buffer-file-name)))
(find-file file))
(message "Current buffer does not have an associated file.")))
;; {{ eval and replace anywhere
;; @see http://emacs.wordpress.com/2007/01/17/eval-and-replace-anywhere/
(defun fc-eval-and-replace ()
"Replace the preceding sexp with its value."
(interactive)
(backward-kill-sexp)
(condition-case nil
(prin1 (eval (read (current-kill 0)))
(current-buffer))
(error (message "Invalid expression")
(insert (current-kill 0)))))
(global-set-key (kbd "C-c e") 'fc-eval-and-replace)
(defun calc-eval-and-insert (&optional start end)
(interactive "r")
(let ((result (calc-eval (buffer-substring-no-properties start end))))
(goto-char (point-at-eol))
(insert " = " result)))
(defun calc-eval-line-and-insert ()
(interactive)
(calc-eval-and-insert (point-at-bol) (point-at-eol)))
(global-set-key (kbd "C-c C-e") 'calc-eval-line-and-insert)
;; }}
;; input open source license
(require 'legalese)
;; edit confluence wiki
(autoload 'confluence-edit-mode "confluence-edit" "enable confluence-edit-mode" t)
;; {{ issue-tracker
(global-set-key (kbd "C-c C-t") 'issue-tracker-increment-issue-id-under-cursor)
;; }}
(provide 'init-misc)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。