.emacs(h)配置

;; Added by Package.el.  This must come before configurations of
;; installed packages.  Don't delete this line.  If you don't want it,
;; just comment it out by adding a semicolon to the start of the line.
;; You may delete these explanatory comments.
(package-initialize)


(setenv "HOME" "D:/emacs")
(setenv "PATH" "D:/emacs")
(setenv "PATH" "D:/emacs/bin")
(setenv "PATH" "D:/Python27")
(setenv "PATH" "D:/Python27/Scripts")




;;set the default file path
(setq default-directory "~/")


(add-to-list 'load-path "~/emacs/.emacs.d/lisps")


;;Using IE proxy
;; (eval-after-load "url"
;;   '(progn
;;      (require 'w32-registry)
;;      (defadvice url-retrieve (before
;;                               w32-set-proxy-dynamically
;;                               activate)
;;        "Before retrieving a URL, query the IE Proxy settings, and use them."
;;        (let ((proxy (w32reg-get-ie-proxy-config)))
;;          (setq url-using-proxy proxy
;;                url-proxy-services proxy)))))
;;(setq url-using-proxy t)
;;(setq url-proxy-services  '(("http" . "proxy.huawei.com:8080")))




;; cancel welcome page
;;(setq inhibit-splash-screen t)
;;open up with full screen
;;(setq initial-frame-alist (quote ((fullscreen . maximized))))






(custom-set-variables
 ;; custom-set-variables was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.
  '(package-archives
   (quote
    (("gnu" . "https://elpa.gnu.org/packages/")
     ("melpa_stable" . "http://stable.melpa.org/packages/")
     ("melpa" . "http://melpa.org/packages/"))))
 '(package-selected-packages (quote (py-autopep8 flycheck elpy)))
 '(initial-frame-alist (quote ((fullscreen . maximized)))) 
 '(scroll-bar-mode nil)
 '(tool-bar-mode nil)
 '(menu-bar-mode nil)
 '(inhibit-splash-screen t)
 '(column-number-mode t)
 )




(custom-set-faces
 ;; custom-set-faces was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.
 '(default ((t (:family "宋体" :foundry "outline" :slant normal :weight normal :height 98 :width normal)))))
(put 'upcase-region 'disabled nil)
(put 'downcase-region 'disabled nil)


(global-set-key "\C-x\C-m" 'execute-extended-command)
(global-set-key "\C-c\C-m" 'execute-extended-command)
(global-set-key "\C-w" 'backward-kill-word)
(global-set-key "\C-x\C-k" 'kill-region)
(global-set-key "\C-c\C-k" 'kill-region)
(global-set-key "\C-x\ t" 'beginning-of-buffer)
(global-set-key "\C-x\ e" 'end-of-buffer)
(global-set-key "\M-r" 'isearch-backward-regexp)
(global-set-key "\M-s" 'isearch-forward-regexp)
(global-set-key "\C-j" 'goto-line)
(global-set-key (kbd "M-SPC") 'set-mark-command);set mark
(defalias 'qrr'query-replace-regexp)
(global-set-key [f5] 'call-last-kbd-macro)
(require 'recentf)
(recentf-mode 1)










;;BUFFER AND WINDOWS BEGIN HERE
;; --------------------------------------
;;从一窗口模式可以变为四窗口模式
(defun split-window-4() 
"Splite window into 4 sub-window"
 (interactive) 
 (if (= 1 (length (window-list))) 
    (progn (split-window-vertically) 
    (split-window-horizontally) 
    (other-window 2) 
    (split-window-horizontally) 
))) 
(global-set-key  (kbd "C-x w 4") (quote split-window-4))




;;如果是在三窗口模式下运行该命令,可以将window+buffer作为整体进行旋转,有利于大窗口的内容在横竖之间倒换
 (defun change-split-type-3 () 
  "Change 3 window style from horizontal to vertical and vice-versa"
  (interactive) 


  (select-window (get-largest-window)) 
  (if (= 3 (length (window-list))) 
      (let ((winList (window-list))) 
            (let ((1stBuf (window-buffer (car winList))) 
                  (2ndBuf (window-buffer (car (cdr winList)))) 
                  (3rdBuf (window-buffer (car (cdr (cdr winList))))) 


                  (split-3 
                   (lambda(1stBuf 2ndBuf 3rdBuf split-1 split-2) 
                     "change 3 window from horizontal to vertical and vice-versa"
                     (message "%s %s %s" 1stBuf 2ndBuf 3rdBuf) 


                     (delete-other-windows) 
                     (funcall split-1) 
                     (set-window-buffer nil 2ndBuf) 
                     (funcall split-2) 
                     (set-window-buffer (next-window) 3rdBuf) 
                     (other-window 2) 
                     (set-window-buffer nil 1stBuf)))         


                  (split-type-1 nil) 
                  (split-type-2 nil) 
                  ) 
              (if (= (window-width) (frame-width)) 
                  (setq split-type-1 'split-window-horizontally 
                        split-type-2 'split-window-vertically) 
                (setq split-type-1 'split-window-vertically  
       split-type-2 'split-window-horizontally)) 
              (funcall split-3 1stBuf 2ndBuf 3rdBuf split-type-1 split-type-2) 


 )))) 
 (global-set-key (kbd "C-x w c") (quote change-split-type-3)) 






;; 如果是在三窗口模式下运行该命令,可以将三窗口模式的buffer进行旋转,windows固定不动,有利于不同的buffer轮流滚入大window
  (defun roll-v-3 (&optional arg) 
    "Rolling 3 window buffers (anti-)clockwise"
    (interactive "P") 
    (select-window (get-largest-window)) 
    (if (= 3 (length (window-list))) 
        (let ((winList (window-list))) 
          (let ((1stWin (car winList)) 
                (2ndWin (car (cdr winList))) 
                (3rdWin (car (last winList)))) 
            (let ((1stBuf (window-buffer 1stWin)) 
                  (2ndBuf (window-buffer 2ndWin)) 
                  (3rdBuf (window-buffer 3rdWin))) 
              (if arg (progn                                
 ; anti-clockwise
                        (set-window-buffer 1stWin 3rdBuf) 
                        (set-window-buffer 2ndWin 1stBuf) 
                        (set-window-buffer 3rdWin 2ndBuf)) 
                (progn                                      ; clockwise
                  (set-window-buffer 1stWin 2ndBuf) 
                  (set-window-buffer 2ndWin 3rdBuf) 
                  (set-window-buffer 3rdWin 1stBuf)) 
                ))))))
 (global-set-key (kbd "C-x w r")  (quote roll-v-3)) 


;; --------------------------------------
;;BUFFER AND WINDOWS END HERE








;;you can use "/c-c ←" to back the windows mode 
 (when (fboundp 'winner-mode) 
  (winner-mode) 
  (windmove-default-keybindings))




;; python configuration begin here
;; --------------------------------------


;;emacs lisp python environment(elpy).
;;note:you need install flake8 and jedi for your python befor you install elpy package for your emacs
(elpy-enable)




;;ipython
(setq python-shell-interpreter "ipython"
      python-shell-interpreter-args "-i --simple-prompt")




;;flycheck
;;package install flycheck to instead of flymake
;;better syntax checking
(when (require 'flycheck nil t)
  (setq elpy-modules (delq 'elpy-module-flymake elpy-modules))
  (add-hook 'elpy-mode-hook 'flycheck-mode))


;;auto pep8 compliance
;;note: you need install autopep8 for your python befor you install py-autopep8 package for your emacs
(require 'py-autopep8)
(add-hook 'elpy-mode-hook 'py-autopep8-enable-on-save)


;; --------------------------------------
;; python configuration end here






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值