ELisp編程十二:Regex二

字元類別參考文檔:http://www.gnu.org/software/emacs/manual/html_node/elisp/Char-Classes.html#Char-Classes字元類別使用時需要在外面再加上方括弧,比如字串:abcd  3 ab\ ef要想匹配裡面的數字,需要使用字元類別:  [:digit:]Regex寫法是:"[[:digit:]]"[:xdigit:] 用來匹配16進位數字forward-sentence命令運行命令:forward-sentence

ELisp編程七:建立函數

自訂函數用Emacs建立一個test.el檔案。編寫如下代碼:(defun add2 (x) (+ 2 x))(add2 8)第一段是定義了一個函數add2,傳遞任意數值x,都會加上2後返回,在這個函數的最後的括弧後面運行C-x C-e,建立該函數。然後在到第二段調用代碼最後面執行C-x C-e在Mini-buffer可以看到和為10.如果想要調用一個不存在的函數,解析器會報錯:(void-function

ELisp編程八:條件陳述式

false 和 true如果一個值不是false(或nil)的,都認為是true.symbol t 的值是true.symbol nil 的值是false.if語句下面的代碼列印出"true"(if 'true (message "true"))注意,true前面必須加單引號,否則報錯:error: (void-variable

CMake 設定 GCC 警告層級

今天一個server程式出現問題,在開發機器上正常,到了產品伺服器上就總是崩潰。原因查了很久,總是報shared_ptr內部的錯誤。不知為什嗎?最後決定提升GCC編譯器的warning

Emacs Gnus 新聞群組 之二 基本概念

幾個檔案說明:~/.newsrc如果訂閱了某個新聞群組,那麼該檔案就會記錄下你訂閱的新聞群組,比如我的檔案內容如下:休閑娛樂.諷刺與幽默: 1-669117,749271當然如果某個文章被閱讀過,也會被記錄下來。~/.newsrc-dribble 檔案是為了在emacs crash的之後(此時.newsrc檔案沒有被寫入正確內容),能夠還原回去。該檔案是自動儲存的。下面的文章解釋了dribble

Ubuntu server 設定emacs為預設編輯器

方法很簡單,用update-alternatives命令 update-alternatives --config editorThere are 5 choices for the alternative editor (providing /usr/bin/editor). Selection Path Priority Status-----------------------------------------------------------

ELisp編程九:迴圈

最簡單的形式(while TRUE-OR-FALSE-TEST BODY...)比如:(setq x 10 total 0)(while (plusp x) ; while x is positive (incf total x) ; add x to total (decf x)) ; subtract 1 from

安裝最新版本的CMake

Ubuntu內建的apt-get install方式安裝的CMake版本有點老。項目中需要最新版本的CMake 2.8.9, 這個版本還是採用CPack打包的,為了體驗一把CPack的發布的便利性,就試用一下。首先卸載已經安裝的舊版的CMakeapt-get autoremove cmake然後下載:cd /usrwget http://www.cmake.org/files/v2.8/cmake-2.8.9-Linux-i386.tar.gz解壓:tar zxvf

Review board 和 Git 配合使用 一

出於一個美好的目的,當代碼提交之前,需要自動通知相關人員進行代碼review,當review代碼的人批准後才能將代碼提交到代碼倉庫中,否則修改後再次review。項目的工程師可能不在一個地方辦公,比如我們ESRI,工程師分布在不同的國家的不同部門。因此需要Email和Web網站來協同工作。我們的代碼管理也是多種多樣,美國團隊使用Starteam,我們中國使用Git. 本來在Git之上有一個很好的review工具,叫做gerrit。不過考慮到能夠照顧不同的倉庫管理軟體,還是先試用Review

ELisp編程十:求最大值

這是一個簡單的練習,如果一個list中有幾個數字,寫一個函數,找出最大值。(setq number-list '(5 8 9 10 87 34))(defun max-number(n-list) (let ((tmp (car n-list)) (max tmp)) (while n-list (setq tmp (car n-list)) (if (> tmp max) (setq max tmp)) (setq n-list (cdr

Redmine Backlog tracker注意事項

最重要的,story和task的tracker不能相同。否則在taskboard中會將task和story並列顯示,儘管它們是父子關係。因此比較好的做法是,story使用redmine預設的tracker:Support, Bug 和Feature. 而另外建立一些tracker用來跟蹤task。這時需要管理員登入,在http://localhost/trackers 頁面中建立新的tracker,比如Dev task, Test case task和 Test task.

ELisp編程十三:宏一

參考文檔:http://www.gnu.org/software/emacs/manual/html_node/elisp/Macros.html#Macroshttp://www.emacswiki.org/emacs/EmacsLispManual_Chinese_Notes#toc54簡單的例子:文檔中少了一行代碼,我補上:(defmacro inc (var) (list 'setq var (list '1+ var)))(setq x 1)(inc

Ubuntu12.04 中文系統切回英文

有時候同事會不小心安裝中文版本。不是中文不好,而是出錯資訊也友好的變成中文後在互連網上經常找不到答案。用下面的方法可以還原回英文系統。1.到/etc/default/locale檔案中將所有的 zh_CN替換位en_USzh 替換成en2.安裝en_US語言套件sudo apt-get install

Gerrit審批次程序設定

本文描述如何使用Gerrit2.4.2設定審批次程序。首先Gerrit中已經有了兩個帳號,一個是我的帳號,屬於管理員,另一個是工程師。本文就描述一個簡單的審批次程序:工程師提交代碼,我Review通過,然後將代碼提交。step1:

ELisp編程十一:Regex一

互動式編寫Regex比如buffer中有一個字串abcd 3運行命令:M-x:re-builder會出現一個小buffer,在雙引號裡面輸入Regexd ,上面有字串的buffer馬上高亮d字元,如果輸入3,則高亮3字元。特殊字元參考文檔:http://www.gnu.org/software/emacs/manual/html_node/elisp/Regexp-Special.html#Regexp-Special'.' 代表任意一個字元(除了分行符號),因此"a.c"能夠匹配abcd

最新CryptoPP32.dll

最新CryptoPP32.dll封裝了Crypto++551的常用功能. 使用VC80編譯. 使用者需要首先編譯Crypto++551的靜態庫, 然後就可以編譯CryptoPP32了. 新的CryptoPP32去除了STL資料類型的介面, 改用C類型資料. 這樣, 整個庫可以很方便的被C語言調用. 或者封裝成C動態庫(需要代碼做些改變). 下載全部工程檔案:上傳失敗, 等改日再傳!包括了CryptoPP32, Crypto++551和Crypto++54.工程採用VC8.0編譯.

Git fast forward提交

多人協同開發,使用Git經常會看到警告資訊包含術語:fast forward, 這是何義?簡單來說就是提交到遠程中心倉庫的代碼必須是按照時間順序的。比如A從中心倉庫拿到代碼後,對檔案f進行了修改。然後push到中心倉庫。B在A之前就拿到了中心倉庫的代碼,在A push成功之後也對f檔案進行了修改。這個時候B也運行push命令推送代碼。會收到一個類似下面的資訊:chenshu@sloop2:~/work/189/appengine$ git pushTo ssh://csfreebird@10.1

ELisp編程十三:宏二

為什麼分兩個步驟:先展開宏,再求值。因為單單有一個宏定義(這裡稱macro body)是不能在編譯時間求值的,宏的參數還沒呢。宏的參數必須要等到編譯器看到宏調用代碼的時候才能知道。因此將宏參數傳遞給宏定義,然後展開宏再求值,是唯一能行的方法。很好理解,這裡就像C++的一樣。反引號(Backquote)`最簡單的情況下,和‘功能相同,代表不要對一個list求值 `(a list of (+ 2 3) elements) ⇒ (a list of (+ 2 3)

ELisp編程十四:宏三

下面的宏實現了一個邏輯:首先將expression求值,然後賦值給var如果var為真,則執行then參數求值後的運算式否則執行else參數求值後的運算式,else參數為可選。感謝danlei帶來的例子。該文章他的回答解釋了為什麼比C/C++宏強大的原因。http://stackoverflow.com/questions/10535684/lisp-macro-special-usage/10539594#comment13658407_10539594(require

UBuntu CMake工程配置基礎

 install CMake我用CMake並不關注它的跨平台特性,因為我只專註於64位 Linux C++ server領域。sudo apt-get install cmake# cmake --versioncmake version 2.8.7HelloWorld工程mkdir -p examples/helloworldcd examples/helloworld建立main.cpp 檔案,代碼如下:#include <stdio.h>int main(){

總頁數: 61357 1 .... 18112 18113 18114 18115 18116 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.