1. 程式人生 > >工欲善其事,必先利其器之—MAC下安裝與配置emacs

工欲善其事,必先利其器之—MAC下安裝與配置emacs

安裝應用

mac os下安裝emacs有如下方式
* 通過homebrew安裝

brew install emacs --with-cocoa
sudo port install emacs-app

注:這裡建議於第三種方式安裝,根據以住的經驗相容性問題會少很多!

環境配置

命令環境

在.bash_profile檔案新增如下程式碼,方便使用emas開啟檔案

# for emcas
# export EDITOR="emacsclient -n "
# alias e="emacsclient -n
# /Applications/Emacs.app/Contents/MacOS/bin
EMACS_HOME=/Applications/Emacs.app/Contents/MacOS # 在終端下開啟檔案,替換命令列預設的emacs alias emacs="${EMACS_HOME}/Emacs -nw" # GUI方式開啟檔案 alias e="${EMACS_HOME}/bin/emacsclient -n"

如下在命令列下沒有替換系統emacs的使用,用–version可以看到是系統自動的

[email protected] channel_template$ emacs --version
GNU Emacs 22.1.1
Copyright (C) 2007 Free Software Foundation, Inc.
GNU Emacs comes with
ABSOLUTELY NO WARRANTY. You may redistribute copies of Emacs under the terms of the GNU General Public License. For more information about these matters, see the file named COPYING.

替換系統emacs的使用後(在.bash_profile中新增alias emacs=”${EMACS_HOME}/Emacs -nw” 並source .bash_profile)

[email protected] ~$ emacs --version
GNU Emacs 26.1 Copyright (C) 2018 Free Software Foundation, Inc. GNU Emacs comes with ABSOLUTELY NO WARRANTY. You may redistribute copies of GNU Emacs under the terms of the GNU General Public License. For more information about these matters, see the file named COPYING.

.emacs

;;==============================================================
;; base configure for common using
;;=============================================================
;; start server , 這樣在終端下主可以通過emacsclient -n 直接於GUI emacs開啟檔案
(require 'server)
(unless (server-running-p "server")
(server-start))

;; 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)

(require 'package)
(add-to-list 'package-archives
             '("melpa-stable" . "https://stable.melpa.org/packages/"))
(package-initialize)

;; package server
;; (setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/")
;; ("melpa-stable" . "https://stable.melpa.org/packages/")))

;; (setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/")
;; ("melpa-stable" . "https://stable.melpa.org/packages/")
;; ("marmalade" . "http://marmalade-repo.org/packages/")
;; ("melpa" . "http://melpa.milkbox.net/packages/")))

;; background color , 蘋果綠,愛護眼睛
(when window-system
  (custom-set-faces
   '(default ((t (:background "#B4EEB4"))))))


;; copy content from elsewhere to emacs or emacs copied to other places
(setq x-select-enable-clipboard t)

;; show line number
(require 'linum)
(global-linum-mode t)

;; kill current buffer
(global-set-key (kbd "C-x k") (lambda () (interactive) (kill-buffer (current-buffer))))


;; open .emacs
(global-set-key (kbd "M-h") (lambda () (interactive) (find-file "~/.emacs")))

(blink-cursor-mode nil)

;; hide memubar,false
;;(menu-bar-mode -1)

;; hide toolbar,false
(tool-bar-mode -1)

;; show file path in window's tile
(setq frame-title-format
'("%S" (buffer-file-name "%f"
(dired-directory dired-directory "%b"))))

;; hide scroll-bar
(scroll-bar-mode nil)
(setq scroll-preserve-screen-position t)

(when window-system
  (global-hl-line-mode t)
  (set-face-background 'hl-line "#CAFF70"))

;; 成對顯示括號,但不來回彈跳
(show-paren-mode t)
(setq show-paren-style 'parentheses)

;; tab width
(standard-display-ascii ?\t "#---")
(setq default-tab-width 4)
(setq-default indent-tabs-mode nil)
(defun my-c-mode-hook ()
(c-set-style "stroustrup")
(c-set-offset 'innamespace 0))
(add-hook 'c-mode-hook 'my-c-mode-hook)
(add-hook 'c++-mode-hook 'my-c-mode-hook)

;; ibuffer
(require 'ibuffer)
(global-set-key "\C-x\C-b" 'ibuffer)

;; yes /no -> y/n
(fset 'yes-or-no-p 'y-or-n-p)

;; close autosave
(setq backup-inhibited t)
;; stop creating those #autosave# files
(setq auto-save-default nil)

;; ido
(require 'ido)
(ido-mode t)

;; 字型設定,使用等寬字型
(dolist (charset '(kana han symbol cjk-misc bopomofo))
  (set-fontset-font (frame-parameter nil 'font)
                    charset
                    (font-spec :family "STHeiti" :size 12)))
(set-default-font "Bitstream Vera Sans Mono 12")

;;======================================================
;; 自定義功能或函式
;;======================================================
;; 換行格式轉化 dos to unix
(defun dos2unix ()
  "Automate M-% C-q C-m RET RET"
  (interactive)
  (save-excursion
    (goto-char (point-min))
    (while (search-forward (string ?\C-m)  nil t)
      (replace-match "" nil t))))

;; using pgup,pgDn scroll
(defun window-half-height ()
(max 1 (/ (1- (window-height (selected-window))) 2)))
(defun scroll-up-half ()
(interactive)
(scroll-up (window-half-height)))
(defun scroll-down-half ()
(interactive)
(scroll-down (window-half-height)))
(global-set-key [next] 'scroll-up-half)
(global-set-key [prior] 'scroll-down-half)

;; occur
(defun isearch-occur ()
"*Invoke `occur' from within isearch."
(interactive)
(let ((case-fold-search isearch-case-fold-search))
(occur (if isearch-regexp isearch-string (regexp-quote isearch-string)))))

(define-key isearch-mode-map (kbd "C-o") 'isearch-occur)

外掛安裝

使用包管理器安裝外掛,推薦如下外掛
* ace-jump-mode : 方便游標跳轉的外掛
* smex: 一個”M-x”快捷鍵的增強工具,它能夠使得在Emacs中呼叫各種命令更為方便,能更智慧地對命令進行補全,還能根據使用者呼叫命令的頻率來猜測使用者可能會執行的命令
* ag : the silver searcher搜尋的前端

外掛安裝步驟

1.列出外掛
使用package-list-pacgages函式顯示列外掛列表

M-X : package-list-packages

2.選擇外掛
這裡寫圖片描述
3.安裝外掛
這裡寫圖片描述

外掛配置

在.emacs檔案中新增如下配置

;;======================================================
;; plugin settings , 外掛配置
;;======================================================

;;==================
;; smex是一個"M-x"快捷鍵的增強工具,它能夠使得在Emacs中呼叫各種命令更為方便,能更智慧地對命令進行補全,還能根據使用者呼叫命令的頻率來猜測使用者可能會執行的命令
;;==================
(smex-initialize)
(global-set-key (kbd "M-x") 'smex)
;;==================
;; ace-jump, 方便游標跳轉的外掛
;;=================
(define-key global-map (kbd "C-c SPC") 'ace-jump-mode)
(setq ace-jump-mode-scope 'window)

;;==================
;; ag , the silver searcher搜尋的前端
;;==================
(setq ag-highlight-search t)
;; (setq ag-reuse-buffers t)
;; Its value is ("--smart-case" "--nogroup" "--column" "--")
(setq ag-arguments (list "--ignore" "TAGS" "--smart-case" "--nogroup" "--column" "--"))
(global-set-key (kbd "C-c f") 'ag-project-at-point)

相關推薦

MAC安裝配置emacs

安裝應用 mac os下安裝emacs有如下方式 * 通過homebrew安裝 brew install emacs --with-cocoa sudo port install emacs-app 注:這裡建議於第三種方式安裝,根據以

Vmware+gdb調試Linux內核——

image rod font 介紹 執行 make group 進行 小技巧 今天我最終忍受不了qemu的低速跟不可理喻的各種bug,開始尋找新的調試內核的方法。然後想到了Vmware,那麽成熟的虛擬機怎麽可能調試不了內核。於是嘗試了一番,發現結果很的棒!

【iOSEV3混合機器人編程系列二】(準備篇)

style 混合 版權 相同 開發 code 操作系統 圖形 ipa 在上一篇文章中,我們論述了iOS與EV3結合後機器人開發的無限可能。那麽,大家要不要一起來Hacking一把呢?為了能夠完整地完畢我接下來我講的項目。我們須要做下面準備:1、一臺Mac執行MAC OS

MySQL優化—EXPLAIN

height 生成 執行 9.png mysql 5.6 性能 環境 索引排序 cor 轉自:http://www.cnblogs.com/magialmoon/archive/2013/11/23/3439042.html mysql官方手冊關於explain命名

xshell使用技巧(

解決 中文亂碼 嘗試 調整 inux運維 屬性 -- vim使用 專業   做linux運維的朋友肯定需要用遠程連接工具,但使用遠程連接工具的過程難免會遇到一些令人費解的問題,比如很多朋友一直在苦惱的使用xshell時中文字符顯示亂碼、中文字符顯示橫向、

python-2: 修改jupyter保存文件目錄(親測)

ebo con data- 否則 保存 mce env profile nbsp 在桌面上創建 Jupyter Notebook快捷方式圖標 .將打開的Jupyter Notebook程序關閉,然後找到桌面快捷方式,右鍵=>屬性,然後把目標後面輸入框最後的“%USE

—使用sdkman安裝管理gradle版本

SDKMAN sdkman 安裝SDKMAN 在終端執行如下命令 curl -s "https://get.sdkman.io" | bash 注:安裝成功後出現如下提示,開啟一個新終端可以執行sdkman或在當前終端執行提示的命令後可以使用sdkm

-ecplise配置和優化

1.eclipse下的編碼設定:eclipse 中使用模板新建 JSP,xhtml等 檔案時,預設的編碼為:ISO-8859-1。 ISO-8859-1 編碼對於中文的顯示是不支援的,如果要支援簡體中文,則編碼方式應為 GBK 或者 GB2312 或者 UTF-8(推薦) 等。右鍵選單欄window --&g

——React Native的 IDE

版權宣告:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/yayayaya20122012/article/details/51119801之前的文章中,我們已經對於在OS X系統上對React Native 的環境搭建,以及第一個例項做了講解。所謂工欲善其事,必先利其

python入門:

未來將是一個全民程式設計的年代。本頭條號以科普為基礎,旨在向大家介紹如何快速掌握這門程式語言,從而能為自己的工作和生活帶來高效和便利。本期的主題是python入門,希望通過下面三個步驟把大家帶到python的世界中來。   本人對於Python學習建立了一個小小的學習圈子,為各位提

Vmware+gdb除錯Linux核心——

今天我終於忍受不了qemu的低速跟不可理喻的各種bug,開始尋找新的除錯核心的方法。然後想到了Vmware,那麼成熟的虛擬機器怎麼可能除錯不了核心。於是嘗試了一番,發現結果非常的棒!所以立馬奮筆疾書,把這個方法記錄下來。          我們這裡主要分成幾個步驟:    

——學會不將就讓自己事半功倍!

工欲善其事,必先利其器。磨刀不誤砍柴工。這些成語、俗語都告訴我們做事情前,先把用到的工具打理好,用起來才會得心應手,工作起來才會事半功倍!古代如此,在資訊化的今天更是如此。 作為一個程式設計師,每天的工作就是敲程式碼,合理的配置我們所用的IDE,會讓我們的工作事半功倍。有

webstorm()工具詳解

作者:小蕭ovo 連結:https://zhuanlan.zhihu.com/p/22893295 來源:知乎 著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。開發工具webstorm。是在windows環境下的。 xx的方法:安裝完後開啟,第一個介面選擇下面的按鈕,然後就進到下面這個圖

—使用ImageMagick處理圖片

工具安裝 mac下用brew安裝,命令如下 brew install ImageMagick 處理圖片 加邊框 新增黑色邊框 convert -mattecolor black -frame 5x5+2+2 test.png tes

—使用PlantUML畫UML圖

工具安裝 線上版 本地版 下載plantUML 安裝Graphviz plantUML工具是個jar包,plantUML只能生成sequence圖,其它圖需要依賴Gra

(程師)(編譯)——《Android Studio實戰——快速、高效地構建Android應用》

    Android Studio 是改變Android開發方式的編譯器,《Android Studio實戰——快速、高效地構建Android應用》是一本教人如何改變Android開發方式的書。  

—使用Atom來寫markdown

如題,使用Atom來寫markdown的好處是高效、快捷,最喜歡匯出pdf的功能。 Atom原生就支援markdown檔案的編輯與預覽,markdown檔案匯出pdf的功能需要安裝相關的外掛。

“模擬退火演算法的並行化”

孫子曰:“夫未戰而廟算勝者,得算多也,未戰而廟算不勝者,得算少也。多算勝,少算不勝,而況於無算乎!”,孫子又曰:“知己知彼,百戰不殆;不知彼而知己,一勝一負;不知彼,不知己,每戰必殆。” 我們工作時使用的平臺是Linux/GNU系統,公司有個專門給

規範 結束 鬼才 機制 linux技術 遇到 水平 標記 得到  好久沒有寫博客了,距離上次眼看有一年了,每次入職新公司都會放棄一段時間的自我學習.感覺在新公司也學到了很多.但都是面對項目工作,來真對性的學習.感覺這一年確實學到了一些程序框架上面的知識,在網絡編程方面有了更

Java開發必備工具 ------------

java企業級開發基本工具 一、開發必備工具 1、Java開發環境 JDK (官網下載即可,需要註冊賬戶) JRE 2、Java企業編碼開發工具 IntelliJ IDEA(建議使用Idea,外掛使用更加完善,介面更加美觀) Eclipse  3、關係型資料庫選擇