php
一、Emacs簡單介紹html
二、Emacs三個平臺的安裝與配置c++
三、本身主動補全插件git
四、小編的Emacs配置文件github
五、常用快捷方式算法
六、和版本號控制系統的配合(以SVN爲例)
shell
在這個系列文章中(不按期更新)。小編會把這些年(也沒幾年)的編程學習和工做中使用到的我的感受很好的軟件推薦給你們,但願能夠共享美好資源。使你們提升編程和辦事效率。express
小編知道。此標題一出,確定會遭受廣大羣衆「詬病」。說很差還會被其它編輯器的粉絲暗地裏「幹掉」。
macos
比方,Vim編輯器的粉絲可能就會來「踢館」,VS或Eclipse的粉絲也後續會「羣起而攻」,但是小編僅僅是表達一下本身的感覺。請拍磚的時候輕一點。雞蛋少扔幾個。假設扔的雞蛋多也請多扔幾個番茄過來,這樣我可以作番茄炒蛋,謝謝。編程
有種張無忌在光明頂被6大門派羣「圍剿」的架勢...
對於很是多人來講,使用Vim和Emacs,不只是提高「逼格」的方式,更是上升到「信仰」的層面,誇張吧。
固然這和宗教信仰不同,僅僅是一種可愛的「偏執」而已。感受本身萌萌噠~
只是。Emacs實在能作很是多事,不要以爲它就僅僅是一個文本編輯器。它可以說是一個整合環境,或可稱它爲「集成開發環境」,它還可以作下面事情:
上網,瀏覽網頁
看視頻
收發郵件
調試程序,結合GDB,EDebug等。支持C/C++,Perl。Python,Lisp等等
玩遊戲
計算器
記日記
管理日程。Task,ToDo,約會等
我的信息管理
文件夾管理
文件比較
閱讀info和man文檔
等等
小編曾經在Linux下編寫代碼是使用Vim編輯器的,也很強大,但是自從2014年接觸到Emacs以後。就愛上了Emacs(fall in love with Emacs),Vim儘管有時還會用到,但是大部分時間編寫代碼仍是用的Emacs。
一開始我不知道爲何Emacs如此優美又強大,直到後來閱讀了《黑客與畫家》這部經典著做(硅谷創業教父 Paul Graham 保羅•格雷厄姆所寫,事實上也就是他的一些日誌彙編而成),裏面講述了Lisp語言的強大和優美,而Emacs就是用Lisp語言編寫的,怪不得。
閒扯一下爲何Lisp語言如此強大,儘管這門語言很是老了,在2015年6月的TIOBE編程語言排行榜也僅僅有第31位。但是:
摘錄自 阮一峯 翻譯的《黑客與畫家》一書,推薦你們一讀:
********************************************
假設咱們把流行的編程語言,以這種順序排列:Java、Perl、Python、Ruby。
你會發現,排在越後面的語言,越像Lisp。
Python模仿Lisp,甚至把不少Lisp黑客以爲屬於設計錯誤的功能,也一塊兒模仿了。至於Ruby,假設回到1975年。你聲稱它是一種Lisp方言。沒有人會反對。
編程語言現在的發展,只是剛剛遇上1958年Lisp語言的水平。
1958年,John McCarthy設計了Lisp語言。
我以爲,當前最新潮的編程語言,僅僅是實現了他在1958年的設想而已。 這怎麼可能呢?計算機技術的發展,不是突飛猛進嗎?
1958年的技術。怎麼可能超過今天的水平呢? 讓我告訴你緣由。 這是因爲John McCarthy原本沒打算把Lisp設計成編程語言。至少不是咱們現在意義上的編程語言。
他的原意僅僅是想作一種理論演算,用更簡潔的方式定義圖靈機。
因此,爲何上個世紀50年代的編程語言。到現在尚未過期?簡單說,因爲這樣的語言本質上不是一種技術。而是數學。數學是不會過期的。
你不該該把Lisp語言與50年代的硬件聯繫在一塊兒,而是應該把它與高速排序(Quicksort)算法進行類比。
這樣的算法是1960年提出的,至今仍然是最快的通用排序方法。
直到今天,最高級的主流語言,也僅僅是剛剛接近Lisp的水平。
儘管已經很是接近了。但仍是沒有Lisp那樣強大。
Lisp語言誕生的時候,就包括了9種新思想。當中一些咱們今天已經習覺得常,還有一些則剛剛在其它高級語言中出現,至今還有2種是Lisp獨有的。依照被大衆接受的程度,這9種思想依次是:
條件結構(即"if-then-else"結構)。現在你們都認爲這是理所固然的,但是Fortran I就沒有這個結構。它僅僅有基於底層機器指令的goto結構。
函數也是一種數據類型。
在Lisp語言中。函數與整數或字符串同樣,也屬於數據類型的一種。它有本身的字面表示形式(literal representation)。能夠儲存在變量中,也能看成參數傳遞。一種數據類型應該有的功能,它都有。
遞歸。Lisp是第一種支持遞歸函數的高級語言。
變量的動態類型。
在Lisp語言中,所有變量實際上都是指針,所指向的值有類型之分。而變量自己沒有。複製變量就至關於複製指針。而不是複製它們指向的數據。
垃圾回收機制。
程序由表達式(expression)組成。Lisp程序是一些表達式區塊的集合。每個表達式都返回一個值。
這與Fortran和大多數後來的語言都大相徑庭。它們的程序由表達式和語句(statement)組成。
符號(symbol)類型。
符號其實是一種指針。指向儲存在哈希表中的字符串。
因此。比較兩個符號是否相等,僅僅要看它們的指針是否同樣便可了,不用逐個字符地比較。
代碼使用符號和常量組成的樹形表示法(notation)。
無論何時,整個語言都是可用的。
Lisp並不真正區分讀取期、編譯期和執行期。你可以在讀取期編譯或執行代碼;也可以在編譯期讀取或執行代碼。還可以在執行期讀取或者編譯代碼。
*******************************************
怎麼樣。是否是很是有興趣瞭解一下如此強大的Lisp語言開發出來的Emacs是怎樣優美呢?
固然此文不可能帶你們領略所有Emacs的優美之處。說實話,Emacs確定存在不足之處: 小編仍是很是識相的,不敢冒天下之大不韙。
不少其它Emacs的優勢僅僅有你們使用了才幹慢慢領略。
Emacs簡單介紹
Emacs是一種強大的文本編輯器。在程序猿和其它以技術工做爲主的計算機用戶中廣受歡迎。
EMACS。即Editor MACroS(編輯器宏)的縮寫。最初由Richard Stallman(理查德·馬修·斯托曼)於1975年在MIT協同Guy Steele共同完畢。
(Richard Stallman可是開源運動之父啊,這位可愛的長鬍子大叔抵制Apple。抵制Facebook,抵制Amazon,抵制很多公司和機構。
他也是自由軟件基金會(Free Software Foundation,簡稱FSF)的主席,而自由軟件基金會主導了包含GNU在內的很是多開源project。GNUproject使得世界各地的程序猿可以爲Linux操做系統開發周邊軟件等。纔有了Linux的今天。否則Linus Tovarlds(Linux之父)基本上光是寫了一個Linux內核。哪夠啊。因此今天的Linux最正確的稱謂應該是GNU/Linux )
自誕生以來,Emacs演化出了衆多分支。當中使用最普遍的兩種各自是:1984年由Richard Stallman發起並由他維護至今的GNU Emacs。以及1991年發起的XEmacs。XEmacs是GNU Emacs的分支,至今仍保持着至關的兼容性。它們都使用了Emacs Lisp這樣的有着極強擴展性的編程語言,從而實現了包含編程、編譯乃至網絡瀏覽等等功能的擴展。
你可以使用Lisp語言改寫Emacs的功能組件。而且可以更改配置,全然本身定義Emacs,所有Emacs是充滿無限可能的編輯器。
國際化
Emacs支持對多種文字的文本編輯,包含UTF-8在內的諸多編碼系統,加上對多種字符集、文稿、書寫系統,以及不一樣文化的書寫習慣都提供了支持,使得世界上大多數語言的使用者都能經過Emacs進行文本處理。
Emacs還能經過調用諸如ispell這種外部程序。實現多種語言的拼寫檢查。
跨平臺性
Emacs是眼下世界上最具可移植性的重要軟件之中的一個,能夠在當前大多數操做系統上執行,包含類Unix系統(GNU/Linux、各類BSD、Solaris、AIX、IRIX、Mac OS X等等)、MS-DOS、Microsoft Windows以及OpenVMS等。還有移動Android平臺以及iOS。
緩衝區的概念
初學Emacs需要理解什麼是緩衝區:
Emacs裏的一切操做都發生在編輯緩衝區(buffer)裏。它通常是某個文件的工做副本。
假設你正在編輯的編輯緩衝區裏包括着某個文件的一個副本,那麼當你保存本身所作的修改時。Emacs把編輯緩衝區的內容拷貝到文件裏。 除了工做在文件副本上的緩衝區外。另外一些作暫時工做的緩衝區,它就像一張草稿紙,固然也可以隨時使用write-file命令("C-x C-w")或save-buffer命令(「C-x C-s」)保存這類暫時工做緩衝區的內容。
小編一開始也是對緩衝區的概念只知其一;不知其二。不要怕,用着用着當即就理解了。
可以參考一些高手的Emacs教程和「練級」系列:
http://www.cnblogs.com/robertzml/archive/2009/09/10/1564108.html
http://blog.csdn.net/redguardtoo/article/details/7222501/
http://blog.sina.com.cn/s/blog_6df127760101ll7a.html
http://arch.pconline.com.cn//pcedu/soft/gj/photo/0609/865628_1.html
Emacs的官網:
http://www.gnu.org/software/emacs/
Emacs的中文WiKi:
http://www.emacswiki.org/emacs?
輕鬆一下,關於Emacs的一則玩笑
《Emacs 的日子是這個樣子的》
1. 據說有 Emacs 這個東西。
試了一下。感受就像記事本同樣。沒什麼學習曲線。就是……咋也找不到退出的辦法……
2. 開始會一些 Emacs 了,開始學習各類 mode,按鍵綁定,配置方法,開始熟悉 Emacs……
3. 比較熟悉 Emacs了,基本使用 Emacs幹活,天天「活在」 Emacs 裏面……
4. 很熟悉本身「常用」的 Emacs,可以教別人 Emacs。大量泡 Emacs社區,大量下載、使用和跟蹤別人的擴展,已經離不了 Emacs……
5. 漸漸不滿 Emacs,漸漸熟悉 Lisp 語言。開始改寫「本身」的Emacs。在這期間,又開始四處碰壁,工做效率老是被一個失敗的改動所影響……
6. 經常改動 Emacs,本身手中的 Emacs基本上每週都和上一週有那麼一點不太同樣…… 就是。改的太多了,經常在某天整理代碼的時候忽然發現……原來還有這麼個易用的功能…… 忘記很久了……
7. …… ……
Emacs三個平臺的安裝與配置
1. Windows下安裝Emacs
請到下面連接下載Windows版的Emacs:
https://ftp.gnu.org/gnu/emacs/windows/
請你們下載列表中最新版本號的zip文件,比方眼下最新版的是2015年5月1日公佈的24.5版:
emacs-24.5-bin-i686-mingw32.zip
下載後。用Winrar或7-zip解壓。會出來一個目錄 emacs-24.5-bin-i686-mingw32
內含四個子目錄:
bin
libexec
share
var
打開bin目錄,執行當中的 emacs.exe 文件就能夠開啓Emacs。不需要安裝:
你可以把emacs.exe這個文件鎖定到任務欄,就很是方便了,按一下圖標就啓動了。
2. Linux下安裝Emacs
Debian一族(包含Ubuntu)下安裝Emacs:
sudo apt-get install emacs
Redhat一族(包含Fedora)下安裝Emacs:
sudo yum install emacs
其它的可以搜索怎樣安裝,或者下載Emacs的源碼來編譯安裝。
如下演示Linux怎樣下載Emacs的代碼來編譯安裝(逼格最高的方式):
首先去
ftp://ftp.gnu.org/pub/gnu/emacs
上面有Emacs的差點兒所有版本號的源碼包。下載最新版的(用老版的也可以),如: emacs-24.5.tar.gz
解壓 emacs-24.5.tar.gz 並編譯。安裝,在終端(Terminal)中依次執行下面命令(假設是其它版本號,則將例如如下命令中的24.5替換爲對應版本號就能夠):
tar -zxvf emacs-24.5.tar.gz (解壓文件) cd emacs-24.5 (進入文件夾) ./configure (配置) make (編譯) sudo make install (安裝,會提示你輸入管理員password)
安裝完以後要啓動Emacs很是easy,開一個終端(Terminal),輸入emacs,回車。就可以了。
只是小編嫌這樣太麻煩。可以用更簡單的方式來打開Emacs,我這裏用一個鍵就可以了(演示環境是Fedora 21。只是其它系統如Ubuntu相似):
打開Fedora的「設置」 (確定知道設置在哪裏吧)
選擇「鍵盤」
選擇列表中的「本身定義快捷方式」。而後點擊加號「+」,用於加入新的快捷方式
選擇快捷方式的按鍵,小編這裏選的是F2這個鍵,而後填寫命令,就是「emacs」。再填寫快捷方式的名稱,這個隨便填,我填的是「Emacs」,肯定
按F2鍵試試。是否是就啓動Emacs啦?這酸爽不言而喻!
3. Mac OS下安裝Emacs
Mac下安裝Emacs。網上有很多文章。實用Git弄下來Emacs的源代碼而後編譯安裝的。 也實用一些包管理軟件來安裝的,但是小編推薦一個更方便的方式,和Mac下安裝QQ,迅雷那樣方便:
上這個網。而後下載那個dmg包。Mac用戶確定懂的,就是Mac下安裝軟件的最常用方式。而後就沒有而後了... 假設這樣你都不會裝Emacs,那真心不是必需用Emacs了...
本身主動補全插件
安裝完Emacs以後,還需要安裝一個本身主動補全(可以本身主動補全keyword,文本等)的擴展,很強大。名叫company-mode,官網:
http://company-mode.github.io/
幸虧。這個擴展並不需要咱們依照傳統的方式從官網下載、安裝到Emacs裏面,因爲Emacs裏有個安裝擴展的列表,有點相似 Debian系列的 apt-get 和 Redhat系列的yum 這種包管理工具,因此咱們僅僅需要按步驟安裝:
按下 M-x 來調出命令輸入
輸入 list-packages,回車
在出現的列表裏,點擊 company
在右邊出現的新緩衝區裏點擊 Install(英文: 安裝)
點擊 Yes
開始感覺本身主動補全的樂趣吧
用此方法(list-packages命令)也可以安裝很是多其它的Emacs的插件(擴展),你們也看到列表裏有很是多插件了吧,因此說Emacs都有點像一個小型的操做系統。
小編的Emacs配置文件
請點擊「閱讀原文」來下載小編打包好的壓縮文件(.rar格式),內含小編的 Emacs配置文件.emacs (前面有一個點的,不要忘啦)和三個實用的模塊。供 .emacs 文件調用。
固然你們可以從網上下載一些大牛的Emacs配置文件。看一下他們的Emacs快捷鍵(除了主要的一些通用快捷鍵之外,用戶可以本身定義很是多快捷鍵,可以定義在 .emacs 文件裏)。
假設你「不幸」選擇使用小編的Emacs配置文件,那麼承蒙看得起:
請用小編的 .emacs 文件替換你的家文件夾的.emacs文件 (安裝完Emacs,你的家文件夾,也就是 ~ 下就會有一個 .emacs 文件)。
把壓縮文件中的其它三個模塊文件放置到 .emacs.d 這個目錄下的modules目錄 (.emacs.d 目錄是安裝完Emacs就會有的,也在家目錄裏,只是modules目錄需要你本身建立):
cd ~/.emacs.d/ mkdir modules cp php-mode.el psvn.el saved-places modules/ (或者手動直接把三個模塊文件拷貝到modules目錄裏)
常用快捷方式
Emacs的快捷鍵都是綁定於Ctrl和Alt(或稱Meta。 在Mac下就是Cmd鍵)上的。好比C-x就是Ctrl+x。M-x就是Alt+x (在Mac下就是Cmd鍵)。
固然所有的按鍵都可以本身定義。
因此如下我在講述快捷鍵的組合表示方式時:
C 表明Ctrl鍵
M 表明Alt鍵或者在蘋果的Mac系統下是Cmd鍵
C-x C-c 表明着,先按C-x,再按C-c
C-x k 表明着,先按C-x,鬆開手,再按k
小編平時最常用的是這些快捷鍵組合
M-s : 新建一個buffer(緩衝區)
C-x O : 注意是大寫的O,不是零,因此需要按住shift鍵再按o鍵。
用於在緩衝區之間切換
C-g : 取消當前操做
C-x u : 回到上一步。至關於Undo
C-x C-3 : 把緩衝區(buffer)分爲左右兩個。新的一個緩衝區是複製當前的緩衝區 (可以運行屢次。來切割出很是多小窗體)
C-x C-2 : 把緩衝區(buffer)分爲上下兩個。新的一個緩衝區是複製當前的緩衝區 (可以運行屢次,來切割出很是多小窗體)
M-w : 選中文字的狀況是複製文字。而假設沒有選中文字則是複製當前的一行
C-w : 選中文字的狀況是剪切文字,而假設沒有選中文字則是剪切當前的一行
M-x : 調出命令輸入,可以在後面接命令。比方man。svn-status。等
C-y : 黏貼
C-x C-s : 保存文本
C-x C-f : 打開文件,假設文件不存在,則新建文件
C-x C-v : 打開一個文件,代替當前緩衝區
C-x k : 關閉當前緩衝區(buffer)
C-s : 向前搜索
C-r : 向後搜索
C-x h : 全選
C-v : 向下翻頁
M-v : 向上翻頁
C-f : 前進一個字符
C-b : 後退一個字符
M-f : 前進一個單詞
M-b : 後退一個單詞
C-@ : 標記開始區域
C-a : 移到行首
C-e : 移到行尾
M-a : 移到句首
M-e : 移到句尾
M-< : 緩衝區頭部
M-> : 緩衝區尾部
M-g M-g,再輸入數字 : 跳轉到文本的第幾行
C-x 0 : 關閉當前緩衝區
C-x C-c : 退出Emacs
臨時僅僅能記起來這麼多啦,還有很是多快捷鍵就要你本身去發掘啦!小編平時也不會所有的快捷鍵都用上,上述的快捷鍵組合是最常用的。
注意: 千萬不要死記這些快捷鍵組合,隨着你使用Emacs,很是快就能記住的,相信我!
Emacs另外一個很是大的優勢就是差點兒所有的快捷鍵按鍵都在鍵盤的左下角。用左手就能單獨完畢大部分操做。而右手則可以玩遊戲(哦,不正確,是操做鼠標),提升效率。或者說,你用好了Emacs的快捷鍵組合。編輯代碼時甚至不需要鼠標啦,兩個手在鍵盤上就夠了!
另外一個平時常用的功能就是查詢函數,可以方便查詢已定義的函數:
按下 M-x 來調出命令輸入
輸入 man 。也就是Linux或Unix系統的man命令,是manuall的縮寫,也就是"手冊"的意思
而後輸入你要查詢的函數名,回車
就出來啦。比方小編查詢fprintf函數,就會彈出下圖右邊的緩衝區:
給出小編的 .emacs 配置文件的內容吧。省得萬一下載連接失效了(至於那三個模塊。可以在網上找到下載的: php-mode.el psvn.el saved-places):
;; ;; ADDITIONAL REPOSITORY FOR MODULES TO LOAD ;; (add-to-list 'load-path "~/.emacs.d/modules") ;; ;; ADDITIONNALS MODULES ;; ;;(require 'dsvn) (require 'psvn) (require 'php-mode) (require 'saveplace) ;;(require 'unxls) ;; display the path to the file in the sidebar. ;;(require 'uniquify) ;; ;; KEYBOARD SHORTCUT ;; (global-set-key [f9] 'compile) (global-set-key [(control z)] 'undo) ;; We could use 'dabbrev-completion or 'dabbrev-expand (global-set-key [(control return)] 'dabbrev-completion) ;;(global-set-key "\C-)" 'dabbrev-completion) ;;(global-set-key "\C-=" 'dabbrev-expand) (global-set-key "\C-n" 'imenu) (defun try-to-add-imenu () (condition-case nil (imenu-add-to-menubar "imenu") (error nil))) (add-hook 'font-lock-mode-hook 'try-to-add-imenu) ;; Company mode in all buffers (add-hook 'after-init-hook 'global-company-mode) (global-set-key "\M-s" 'new-shell) (global-set-key (kbd "C-x t") 'todo-show) ;; ;; Copy or Cut one line if no content selected ;; ;; copy region or whole line (global-set-key "\M-w" (lambda () (interactive) (if mark-active (kill-ring-save (region-beginning) (region-end)) (progn (kill-ring-save (line-beginning-position) (line-end-position)) (message "copied line"))))) ;; kill region or whole line (global-set-key "\C-w" (lambda () (interactive) (if mark-active (kill-region (region-beginning) (region-end)) (progn (kill-region (line-beginning-position) (line-end-position)) (message "killed line"))))) ;; ;; FUNCTION DEFINITION ;; (defun new-shell () (interactive) (let ( (currentbuf (get-buffer-window (current-buffer))) (newbuf (generate-new-buffer-name "*shell*")) ) (generate-new-buffer newbuf) (set-window-dedicated-p currentbuf nil) (set-window-buffer currentbuf newbuf) (shell newbuf) ) ) ;; ;; resolving compilation problems. This force the environment variables ;; to be set before compiling. ;; (let ((path (shell-command-to-string ". ~/.bashrc; echo -n $PATH"))) (setenv "PATH" path) (setq exec-path (append (split-string-and-unquote path ":") exec-path))) ;; ;; Ugly code for READING XLS (but works) ;; Requires: xlhtml & w3m ;; (add-to-list 'auto-mode-alist '("\\.xls\\'" . no-xls)) (defun no-xls (&optional filename) "Run xlhtml and w3m -dump on the entire buffer. Optional FILENAME says what filename to use. This is only necessary for buffers without proper `buffer-file-name'. FILENAME should be a real filename, not a path." (interactive "fExcel File: ") (when (and filename (not (buffer-file-name))) (write-file (make-temp-file filename))) (erase-buffer) (shell-command (format "xlhtml -nc -te %s | w3m -dump -T text/html" (buffer-file-name)) (current-buffer)) (setq buffer-file-name nil) (set-buffer-modified-p nil)) ;; ;; START ;; (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. '(c-block-comment-prefix "//") '(case-fold-search nil) '(column-number-mode t) '(comint-completion-autolist t) '(comint-completion-recexact t) '(compilation-always-kill t) '(compilation-auto-jump-to-first-error nil) '(compilation-environment PATH=/home/griffon/trunk/indus/bin:/home/fox/components/gnutools/ecos-3\.0/arm-eabi/bin:/home/fox/components/ecos-3\.0/tools/bin:/home/avrdev/bin:/home/thomas/mes_fonctions:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin) '(compilation-scroll-output (quote first-error)) '(compile-command "./makemake 5010 clean && ./makemake 5010 all -j 8 && ./makemake 5010 program") '(completion-show-help t) '(dabbrev-case-distinction t) '(dabbrev-case-replace t) '(doc-view-continuous t) '(doc-view-image-width 850) '(doc-view-resolution 200) '(dynamic-completion-mode t) '(grep-command "grep --exclude-dir=.svn --exclude=\\TAGS --exclude=\\*.{lst,lss,sym,list,o,elf,xml,json,sta,map,deps,d,sx,hex,doc,txt,pdf,tex} -inHr \"") '(gud-gdb-command-name "arm-eabi-gdb -i=mi main.elf") '(initial-scratch-message ";; This buffer is for notes you don't want to save, and for Lisp evaluation. ;; If you want to create a file, visit that file with C-x C-f, ;; then enter the text in that file's own buffer. ;; M-s: Open a new shell ") '(safe-local-variable-values (quote ((todo-categories "Todo") (todo-categories "barracuda" "alligator" "Todo") (todo-categories "alligator" "Todo")))) '(send-mail-function (quote mailclient-send-it)) '(svn-status-hide-unknown t) '(svn-status-hide-unmodified t)) ;; ;; EDITING/IDE ;; (global-font-lock-mode 1) (setq auto-mode-alist (append '(("\.php$" . php-mode) ("\.module$" . php-mode)) auto-mode-alist)) ;; saving position in files opened with emacsclient ;;(setq server-visit-hook (quote (save-place-find-file-hook))) (setq-default save-place t) (setq save-place-file "~/.emacs.d/saved-places") ;; Code completion case-insensitive, seems not working ;;(setq pcomplete-ignore-case t) ;;(setq case-fold-search t) ;;(setq read-buffer-completion-ignore-case t) ;;(setq read-file-name-completion-ignore-case t) ;; display the path to the buffer file using uniquify (required). ;;(setq uniquify-buffer-name-style 'reverse) ;; SHOW FILE PATH IN FRAME TITLE ;;(setq-default frame-title-format "%b (%f)") ;; Affiche le numéro de ligne et de colonne (column-number-mode t) (line-number-mode t) ;; ;; FORMATAGE ;; ;; Suppression des espaces en fin de ligne a l'enregistrement (add-hook 'c++-mode-hook '(lambda () (add-hook 'write-contents-hooks 'delete-trailing-whitespace nil t))) (add-hook 'c-mode-hook '(lambda () (add-hook 'write-contents-hooks 'delete-trailing-whitespace nil t))) ;;(defun set-newline-and-indent () ;; (local-set-key (kbd "RET") 'newline-and-indent)) ;;(add-hook 'lisp-mode-hook 'set-newline-and-indent) ;; ;; COLORS ;; (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 (:inherit nil :stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 135 :width normal :foundry "unknown" :family "DejaVu Sans Mono")))) '(compilation-warning ((t (:inherit warning)))) '(font-lock-comment-face ((t (:foreground "darkorange4")))) '(font-lock-function-name-face ((t (:foreground "navy")))) '(font-lock-keyword-face ((t (:foreground "red4")))) '(font-lock-type-face ((t (:foreground "black")))) '(linum ((t (:inherit shadow :background "gray95")))) '(mode-line ((t (nil nil nil nil :background "grey90" (:line-width -1 :color nil :style released-button) "black" :box nil :width condensed :foundry "unknown" :family "DejaVu Sans Mono")))) '(svn-status-directory-face ((t (:foreground "tomato"))))) ;; sort of fullscreen (add-to-list 'default-frame-alist '(left . 0)) (add-to-list 'default-frame-alist '(top . 0)) (add-to-list 'default-frame-alist '(height . 100)) (add-to-list 'default-frame-alist '(width . 200))
和版本號控制系統的配合(以SVN爲例)
因爲有導入Emacs的SVN模塊(psvn.el),因此假設你使用了小編的Emacs配置文件。還可以和SVN(固然你要先安裝SVN, Fedora下是 sudo yum install subversion ; Ubuntu下是 sudo apt-get install subversion )配合使用。超級方便,比方你改動了幾個文件。那麼在包括 .svn 這個文件的那個目錄裏按下: M-x。而後輸入: svn-status。回車。確認,就會顯示一個列表啦,就是SVN的svn status命令所顯示的狀態列表。
而後,選中你要提交的文件,按 m 鍵,你可以一次選中好幾個。取消選中按 u 鍵。
按 c 鍵開始編輯提交凝視(Comment),例如如下圖(綠色的是已經選中(按 m 鍵)要提交的文件):
我這裏輸入了「改動了幫助文檔」這一句凝視,完畢以後。按兩次 「C-c」,就提交(commit)好了,很快捷。
不知道SVN是什麼的讀者。可以百度一下,SVN是一個常用的版本號控制軟件。其它的更先進的版本號控制系統有Git, Mercurial等。眼下所在公司不大。因此用SVN(集中式版本號控制系統)也方便,以前在其它公司用過Git和Mercurial(這兩個是分佈式版本號控 制系統)。
嘗試一下Emacs吧,真的是「神器」!
誰用誰知道。用過都說好~
眼下有一個微信羣和一個QQ羣(微信羣130人以上,QQ羣460人以上),凡是對編程感興趣的朋友都可以加,你們可以交流,學習,互動。討論編寫的程序的源碼。編程問答等。
微信羣(程序猿聯盟),加羣請私信我(微信羣人數超過100以後,不能經過掃描二維碼增長了,僅僅能私信我,謝謝)
QQ羣(程序猿聯盟),羣號是 413981577
百度貼吧 【程序猿聯盟】 歡迎您增長,交流編程,討論代碼,共享資源。已經有很是多話題。
吧主就是小編。
http://tieba.baidu.com/f?kw=%E7%A8%8B%E5%BA%8F%E5%91%98%E8%81%94%E7%9B%9F&ie=utf-8
點擊左下角【閱讀原文】就能夠進入 【程序猿聯盟】 百度貼吧
手機微信裏的二維碼圖片怎樣「掃描」呢?
小竅門:
在微信里長按圖片,選擇「識別圖中二維碼」,就可以了。
QQ羣文件中有很是多編程書籍PDF和其它資料。掃描如下二維碼加QQ羣:
咱們還創建了一個公共的百度雲盤。2TB容量,已有很是多優秀編程資源,你們也可以上傳。
連接加羣以後會發送。
《程序猿聯盟》的微社區,方便你們提問和互動。可以關注一下。
微社區地址和二維碼例如如下:
謝謝!