<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    2008年1月27日

    如題

    posted @ 2008-01-27 17:45 笨蛋啊帆 閱讀(312) | 評(píng)論 (0)編輯 收藏


    2007年11月12日

    但是還是要來這個(gè)地方寫東西的吧。
    技術(shù)的東西學(xué)起來飛快了。
    學(xué)的東西技術(shù)起來忒慢了。

    別玩文字游戲。
    再次告誡自己。

    posted @ 2007-11-12 15:53 笨蛋啊帆 閱讀(543) | 評(píng)論 (1)編輯 收藏

    11月1號(hào)巨人給OFFER。
    11月1號(hào)巨人上市。
    難道真是為了這個(gè)巧合簽的?

    -。-
    數(shù)據(jù)挖掘,數(shù)理統(tǒng)計(jì),忘光光了。 而他們都是專家,都很勤奮,我很有壓力。
    努力。。。。。。

    基本上,我的任務(wù)是制定決策使網(wǎng)友對(duì)網(wǎng)游更上癮???
    不知道,也許基本上就是這樣。
    努力。。。。。。

    posted @ 2007-11-12 15:50 笨蛋啊帆 閱讀(313) | 評(píng)論 (0)編輯 收藏


    2007年9月7日

    apache:
    Extract      $ gzip -d httpd-NN.tar.gz
                  $ tar xvf httpd-NN.tar
                  $ cd httpd-NN
    Configure     $ ./configure --prefix=PREFIX
    Compile     $ make
    Install     $ make install
    Customize     $ vi PREFIX/conf/httpd.conf
    Test            $ PREFIX/bin/apachectl -k start
               liu lan qi : http://localhost/     -----It works!


    安裝 mySQL
    shell>  groupadd mysql
    shell> useradd -g mysql mysql

    下面3步把解壓文件放到這里來,并且link 到文件夾/usr/local/mysql
    shell> cd /usr/local
    shell> gunzip < /path/to/mysql-VERSION-OS.tar.gz | tar xvf -
    shell> ln -s full-path-to-mysql-VERSION-OS mysql

    shell> cd mysql
    shell> scripts/mysql_install_db --user=mysql

    將程序二進(jìn)制的所有權(quán)改為root,數(shù)據(jù)目錄的所有權(quán)改為運(yùn)行mysqld  的用戶。
    shell> chown -R root  .
    shell> chown -R mysql data
    shell> chgrp -R mysql .
    試試看:
    shell> bin/mysqld_safe --user=mysql

    把/usr/local/mysql/support-files/mysql.server 復(fù)制到 /etc/rc.d據(jù)說是開機(jī)可以啟動(dòng)。
    不知道了,下次開機(jī)的時(shí)候 PS 看看好了。


    php:

    gunzip php-NN.tar.gz
    tar -xvf php-NN.tar
       現(xiàn)在需要配置 PHP。在這里可以用各種各樣的參數(shù)來自定義PHP,例如啟動(dòng)哪些
        擴(kuò)展功能包的支持等。用 ./configure --help 命令可以列出當(dāng)前可用的所有參
        數(shù)。在此例中,將給出一個(gè)在有 MySQL 支持的 Apache 2 上進(jìn)行配置的范例。
        用戶本地的 apxs 的路徑可能會(huì)不同,事實(shí)上,在用戶的系統(tǒng)中,它可能被命名為
        apxs2。

    ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql
    出錯(cuò)!:checking for xml2-config path...
    configure: error: xml2-config not found. Please check your libxml2 installation.

    到 ftp://xmlsoft.org/libxml2 下載一個(gè) libxml2-devel-2.6.26-1.i386.rpm
    安裝他,
    rpm -ivhU libxml2-devel-2.6.26-1.i386.rpm

    繼續(xù)我的
    ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql
    然后
    make   //10分鐘過后
    make install

    make install

    配置 php.ini

        cp php.ini-dist /usr/local/lib/php.ini

        可以編輯 php.ini 文件以修改 PHP 的選項(xiàng)。如果想要把此文件放到另外的位置,
        需要在步驟 10 添加 --with-config-file-path=/path 選項(xiàng)。

        如果選擇 php.ini -recommended,請(qǐng)務(wù)必閱讀其中的變更的列表,它們將影響
        PHP 的執(zhí)行。

    編輯 httpd.conf 文件以調(diào)用 PHP 模塊。LoadModule 表達(dá)式右邊的路徑必須指向
        系統(tǒng)中的 PHP。以上的 make install 命令可能已經(jīng)完成了這些,但務(wù)必要檢查。

        對(duì)于 PHP 4:
           LoadModule php4_module modules/libphp4.so

        對(duì)于 PHP 5:
           LoadModule php5_module modules/libphp5.so

    -----------------檢查已經(jīng)改好了。。。

    告知 Apache 將特定的擴(kuò)展名解析成 PHP,例如,讓 Apache 將擴(kuò)展名 .php
        解析成 PHP。可以將任何擴(kuò)展名指定為 PHP,只需添加它們,每一個(gè)用空格分隔。
        例如,要添加 .phtml:

        AddType application/x-httpd-php .php .phtml

        通常還將 .phps 擴(kuò)展名設(shè)置成顯示高亮的 PHP 源文件,可以這樣來完成:

        AddType application/x-httpd-php-source .phps

    啟動(dòng) Apache 服務(wù)器:
       /usr/local/apache2/bin/apachectl start

    posted @ 2007-09-07 18:34 笨蛋啊帆 閱讀(4336) | 評(píng)論 (0)編輯 收藏


    2007年8月22日

    Win2003作路由 局域網(wǎng)共享上網(wǎng)
    本校計(jì)算機(jī)中心機(jī)房共有計(jì)算機(jī)240臺(tái),已互連為局域網(wǎng),希望訪問校內(nèi)資源時(shí)通過校園網(wǎng)接口,而訪問外部資源時(shí)通過ADSL接口。

      二、解決

      Windows XP和Windows 2003都自帶ADSL寬帶撥號(hào)程序,這里只要使用Windows 2003的路由和遠(yuǎn)程訪問程序稍加配置,就可搞掂一切。

      1、前提

      計(jì)算機(jī)一臺(tái)(配置不用很高,只要能安裝Windows 2003就行),安裝有Windows2003 操作系統(tǒng),內(nèi)插3塊網(wǎng)卡,網(wǎng)卡1:連接內(nèi)部局域網(wǎng),IP:192.168.1.1,子網(wǎng)掩碼:255.255.255.0,網(wǎng)關(guān):空,DNS:空;網(wǎng)卡 2:連接ADSL,IP:自動(dòng)獲取,DNS:自動(dòng)獲取;網(wǎng)卡3:連接校園網(wǎng),IP:202.203.230.2,子網(wǎng)掩碼:255.255.255.0, 網(wǎng)關(guān):202.203.230.1,DNS:202.203.220.2(假設(shè)校園網(wǎng)網(wǎng)段為202.203.220.0—202.203.230.0之 間,DNS服務(wù)器為202.203.220.2);

      2、服務(wù)器配置

      Step1.單擊開始—管理工具—路由和遠(yuǎn)程訪問,啟動(dòng)配置向?qū)В贿x擇本地服務(wù)器,單擊操作—配置并啟用路由和遠(yuǎn)程訪問(圖一)。單擊下一步,選擇自定義配置—下一步;復(fù)選請(qǐng)求撥號(hào)連接(由分支辦公室路由使用)和LAN路由—下一步—完成,即可啟動(dòng)路由和遠(yuǎn)程訪問。
    圖1

      Step2.選擇網(wǎng)絡(luò)接口,單擊操作—新建請(qǐng)求撥號(hào)接口—下一步—下一步,選擇使用以太網(wǎng)上的PPP(PPPoE)連接—下一步—下一步,彈出協(xié)議及安全措施選項(xiàng),去掉所有鉤選,單擊下一步,輸入ADSL帳號(hào)和密碼,下一步—完成。

      Step3.新建一批處理文件route.bat,并把其快捷方式添加到開始—程序—啟動(dòng)下,編輯route.bat內(nèi)容如下:

      cd\

      route delete 0.0.0.0

      route add 192.168.1.0 mask 255.255.240.0 192.168.1.1

      route add 202.203.220.0 mask 255.255.240.0 202.203.230.1

      route add 202.203.221.0 mask 255.255.255.0 202.203.230.1

      //(自行把校園網(wǎng)的IP段添加上)

      route add 202.203.230.0 mask 255.255.255.0 202.203.230.1

      3、客戶機(jī)配置

    TCP/IP配置如下:IP:192.168.1.x,子網(wǎng)掩碼:255.255.255.0,網(wǎng)關(guān):192.168.1.1,首選DNS服務(wù)器:當(dāng)?shù)? ADSL域名服務(wù)器IP(可向ADSL提供商查詢,如昆明電信的為:202.98.160.68),備用DNS服務(wù)器:202.203.220.2。此處 的DNS設(shè)置非常關(guān)鍵,有的人會(huì)誤把DNS設(shè)為:192.168.1.1。

      三、總結(jié)

       使用此方法實(shí)現(xiàn)寬帶共享,可節(jié)約購買路由器的費(fèi)用,幾乎不占用服務(wù)器資源,且只要往服務(wù)器上加插網(wǎng)卡,就可任意擴(kuò)張客戶機(jī)數(shù)量或外部出口。

    posted @ 2007-08-22 20:33 笨蛋啊帆 閱讀(271) | 評(píng)論 (0)編輯 收藏

    WINDOWS系統(tǒng)下設(shè)置路由

    在WINDOWS下手動(dòng)設(shè)置路由主要在DOS系統(tǒng)中命令符下(在運(yùn)行輸入欄中鍵入COMMAND或者CMD即可)進(jìn)行。


    鍵入命令ROUTE回車會(huì)出現(xiàn)大約幾十行英文說明,主要解說在WINDOWS系統(tǒng)中如何添加、刪除、修改路由。現(xiàn)簡(jiǎn)單介紹如下:


    ROUTE命令格式如下:


    ROUTE [-f] [-p] [command [destination] [MASK netmask] [gateway] [METRIC metric] [IF interface]


    其中 –f 參數(shù)用于清除路由表,-p參數(shù)用于永久保留某條路由(即在系統(tǒng)重啟時(shí)不會(huì)丟失路由,但在WINDOWS95下無效)。


    Command主要有PRINT(打印)、ADD(添加)、DELETE(刪除)、CHANGE(修改)共4個(gè)命令。


    Destination代表所要達(dá)到的目標(biāo)IP地址。


    MASK是子網(wǎng)掩碼的關(guān)鍵字。Netmask代表具體的子網(wǎng)掩碼,如果不加說明,默認(rèn)是255.255.255.255(單機(jī)IP地址),因此鍵入掩碼時(shí)候要特別小心,要確認(rèn)添加的是某個(gè)IP地址還是IP網(wǎng)段。如果代表全部出口子網(wǎng)掩碼可用0.0.0.0。


    Gateway代表出口網(wǎng)關(guān)。


    其他interface和metric分別代表特殊路由的接口數(shù)目和到達(dá)目標(biāo)地址的代價(jià),一般可不予理會(huì)。


    我們根據(jù)單網(wǎng)卡和多網(wǎng)卡(以雙網(wǎng)卡為例)兩種情況敘述在WINDOWS下如何具體設(shè)置路由。


    1、單網(wǎng)卡:


    在WINDOWS系統(tǒng)下有4條最基本路由,參照下圖(鍵入route print命令)具體是:





    上述路由是WINDOWS自帶路由,永不消失,如果上述路由不完整,則說明TCP/IP的安裝和運(yùn)行存在某些最基本問題、或本機(jī)網(wǎng)絡(luò)配置或者安裝存在問題。




    上述表格中,127.0.0.1用于測(cè)試回送(loopback)地址,不能作為有效的網(wǎng)絡(luò)地址。PC1的IP地址為 192.168.97.1,路由器1(用于上互聯(lián)網(wǎng))的局域口IP地址為192.168.97.10,路由器2(用于上辦公網(wǎng))的局域口IP地址為 192.168.97.11。


    如果PC1同時(shí)想訪問互聯(lián)網(wǎng)和辦公網(wǎng),通常情況是在WINDOWS網(wǎng)絡(luò)屬性反復(fù)修改默認(rèn)網(wǎng)關(guān),每次還只能訪問1個(gè)網(wǎng)段,既不方便也非常麻煩。為解決這個(gè)問題可在DOS命令符下鍵入如下命令:


    route add 0.0.0.0 maks 0.0.0.0 192.168.97.10(用于上互聯(lián)網(wǎng))、


    route add 10.42.29.0 mask 255.255.255.0 192.168.97.11(用于上辦公網(wǎng))。


    這樣將互聯(lián)網(wǎng)作為默認(rèn)路由,辦公網(wǎng)用作特殊路由添加,當(dāng)然,如果還有其他系統(tǒng),可采用同樣路由添加。


    為了確保路由正確、避免引起路由混亂,最好先刪除路由,再添加路由。比如上面的命令可改為:


    route delelte 0.0.0.0


    route add 0.0.0.0 maks 0.0.0.0 192.168.97.10


    route add 10.42.29.0 mask 255.255.255.0 192.168.97.11。


    為了確保路由設(shè)置長(zhǎng)久生效,可將上述命令加入AUTOEXEC.BAT文件中,即操作系統(tǒng)一啟動(dòng)就自動(dòng)設(shè)置路由。當(dāng)然也可在第一次添加路由時(shí)加入-P參數(shù)。


    具體如下:


    route –p add 0.0.0.0 maks 0.0.0.0 192.168.97.10


    route –p add 10.42.29.0 mask 255.255.255.0 192.168.97.11。


    這時(shí)用route print查看路由,就可以看到有兩條永久路由添加到路由表中了。


    2、多網(wǎng)卡(以雙網(wǎng)卡為例)


    如果在同一PC機(jī)上帶有兩個(gè)網(wǎng)卡,聯(lián)上兩個(gè)不同網(wǎng)段的系統(tǒng),具體參見下面網(wǎng)絡(luò)連接示意圖:




    一般情況下,在PC機(jī)上加上雙網(wǎng)卡和雙網(wǎng)關(guān),邊可以輕松聯(lián)上兩個(gè)子系統(tǒng)。但由于WINDOWS自身系統(tǒng)原因,經(jīng)常容易 出現(xiàn)網(wǎng)關(guān)浮動(dòng)或不穩(wěn)定的情況,比如PING辦公自動(dòng)化地址無法PING通,卻返回從192.168.97.10(路由器1)反饋的信息,此時(shí)查看網(wǎng)絡(luò)路 由,路由表正常,此時(shí)需要刷新路由。


    事實(shí)上,可以采取同單網(wǎng)卡類似的辦法,可以去掉網(wǎng)絡(luò)屬性中網(wǎng)關(guān),進(jìn)行人工設(shè)置路由。人工設(shè)置路由更加精確和自由,比如可以人工控制究竟訪問某個(gè)網(wǎng)站還是某個(gè)網(wǎng)段或者全部網(wǎng)段。


    參照上圖配置,可在DOS提示符下鍵入如下命令:


    route delete 0.0.0.0


    route add 0.0.0.0 mask 0.0.0.0 192.168.97.10(網(wǎng)卡1尋址路由,上互聯(lián)網(wǎng),默認(rèn)路由)


    route add 10.42.0.0 mask 255.255.0.0 10.42.29.10(網(wǎng)卡2尋址路由,上辦公網(wǎng))。


    當(dāng)然可以添加- P參數(shù)或者將路由添加信息加入自動(dòng)批處理文件使路由信息永久生效

    posted @ 2007-08-22 20:32 笨蛋啊帆 閱讀(399) | 評(píng)論 (0)編輯 收藏


    2007年7月28日

    matlab工具箱函數(shù)匯總
    別問我是誰 發(fā)表于 2006-1-18 14:03:00


    附錄Ⅰ  工具箱函數(shù)匯總


    Ⅰ.1  統(tǒng)計(jì)工具箱函數(shù)
    表Ⅰ-1  概率密度函數(shù)
     
    函數(shù)名 對(duì)應(yīng)分布的概率密度函數(shù)   
    betapdf 貝塔分布的概率密度函數(shù)   
    binopdf 二項(xiàng)分布的概率密度函數(shù)   
    chi2pdf 卡方分布的概率密度函數(shù)   
    exppdf 指數(shù)分布的概率密度函數(shù)   
    fpdf f分布的概率密度函數(shù)   
    gampdf 伽瑪分布的概率密度函數(shù)   
    geopdf 幾何分布的概率密度函數(shù)   
    hygepdf 超幾何分布的概率密度函數(shù)   
    normpdf 正態(tài)(高斯)分布的概率密度函數(shù)   
    lognpdf 對(duì)數(shù)正態(tài)分布的概率密度函數(shù)   
    nbinpdf 負(fù)二項(xiàng)分布的概率密度函數(shù)   
    ncfpdf 非中心f分布的概率密度函數(shù)   
    nctpdf 非中心t分布的概率密度函數(shù)   
    ncx2pdf 非中心卡方分布的概率密度函數(shù)   
    poisspdf 泊松分布的概率密度函數(shù)   
    raylpdf 雷利分布的概率密度函數(shù)   
    tpdf 學(xué)生氏t分布的概率密度函數(shù)   
    unidpdf 離散均勻分布的概率密度函數(shù)   
    unifpdf 連續(xù)均勻分布的概率密度函數(shù)   
    weibpdf 威布爾分布的概率密度函數(shù) 


    表Ⅰ-2  累加分布函數(shù)
     
    函數(shù)名 對(duì)應(yīng)分布的累加函數(shù)   
    betacdf 貝塔分布的累加函數(shù)   
    binocdf 二項(xiàng)分布的累加函數(shù)   
    chi2cdf 卡方分布的累加函數(shù)   
    expcdf 指數(shù)分布的累加函數(shù)   
    fcdf f分布的累加函數(shù)   
    gamcdf 伽瑪分布的累加函數(shù)   
    geocdf 幾何分布的累加函數(shù)   
    hygecdf 超幾何分布的累加函數(shù)   
    logncdf 對(duì)數(shù)正態(tài)分布的累加函數(shù)   
    nbincdf 負(fù)二項(xiàng)分布的累加函數(shù)   
    ncfcdf 非中心f分布的累加函數(shù)   
    nctcdf 非中心t分布的累加函數(shù)   
    ncx2cdf 非中心卡方分布的累加函數(shù)   
    normcdf 正態(tài)(高斯)分布的累加函數(shù)   
    poisscdf 泊松分布的累加函數(shù)   
    raylcdf 雷利分布的累加函數(shù)   
    tcdf 學(xué)生氏t分布的累加函數(shù)   
    unidcdf 離散均勻分布的累加函數(shù)   
    unifcdf 連續(xù)均勻分布的累加函數(shù)   
    weibcdf 威布爾分布的累加函數(shù) 


    表Ⅰ-3  累加分布函數(shù)的逆函數(shù)
     
    函數(shù)名 對(duì)應(yīng)分布的累加分布函數(shù)逆函數(shù)   
    betainv 貝塔分布的累加分布函數(shù)逆函數(shù)   
    binoinv 二項(xiàng)分布的累加分布函數(shù)逆函數(shù)   
    chi2inv 卡方分布的累加分布函數(shù)逆函數(shù)   
    expinv 指數(shù)分布的累加分布函數(shù)逆函數(shù)   
    finv f分布的累加分布函數(shù)逆函數(shù)   
    gaminv 伽瑪分布的累加分布函數(shù)逆函數(shù)   
    geoinv 幾何分布的累加分布函數(shù)逆函數(shù)   
    hygeinv 超幾何分布的累加分布函數(shù)逆函數(shù)   
    logninv 對(duì)數(shù)正態(tài)分布的累加分布函數(shù)逆函數(shù)   
    nbininv 負(fù)二項(xiàng)分布的累加分布函數(shù)逆函數(shù)   
    ncfinv 非中心f分布的累加分布函數(shù)逆函數(shù)   
    nctinv 非中心t分布的累加分布函數(shù)逆函數(shù)   
    ncx2inv 非中心卡方分布的累加分布函數(shù)逆函數(shù)   
    icdf    
    norminv 正態(tài)(高斯)分布的累加分布函數(shù)逆函數(shù)   
    poissinv 泊松分布的累加分布函數(shù)逆函數(shù)   
    raylinv 雷利分布的累加分布函數(shù)逆函數(shù)   
    tinv 學(xué)生氏t分布的累加分布函數(shù)逆函數(shù)   
    unidinv 離散均勻分布的累加分布函數(shù)逆函數(shù)   
    unifinv 連續(xù)均勻分布的累加分布函數(shù)逆函數(shù)   
    weibinv 威布爾分布的累加分布函數(shù)逆函數(shù) 


    表Ⅰ-4  隨機(jī)數(shù)生成器函數(shù)
     
    函  數(shù) 對(duì)應(yīng)分布的隨機(jī)數(shù)生成器   
    betarnd 貝塔分布的隨機(jī)數(shù)生成器   
    binornd 二項(xiàng)分布的隨機(jī)數(shù)生成器   
    chi2rnd 卡方分布的隨機(jī)數(shù)生成器   
    exprnd 指數(shù)分布的隨機(jī)數(shù)生成器   
    frnd f分布的隨機(jī)數(shù)生成器   
    gamrnd 伽瑪分布的隨機(jī)數(shù)生成器   
    geornd 幾何分布的隨機(jī)數(shù)生成器   
    hygernd 超幾何分布的隨機(jī)數(shù)生成器   
    lognrnd 對(duì)數(shù)正態(tài)分布的隨機(jī)數(shù)生成器   
    nbinrnd 負(fù)二項(xiàng)分布的隨機(jī)數(shù)生成器   
    ncfrnd 非中心f分布的隨機(jī)數(shù)生成器   
    nctrnd 非中心t分布的隨機(jī)數(shù)生成器   
    ncx2rnd 非中心卡方分布的隨機(jī)數(shù)生成器   
    normrnd 正態(tài)(高斯)分布的隨機(jī)數(shù)生成器   
    poissrnd 泊松分布的隨機(jī)數(shù)生成器   
    raylrnd 瑞利分布的隨機(jī)數(shù)生成器   
    trnd 學(xué)生氏t分布的隨機(jī)數(shù)生成器   
    unidrnd 離散均勻分布的隨機(jī)數(shù)生成器   
    unifrnd 連續(xù)均勻分布的隨機(jī)數(shù)生成器   
    weibrnd 威布爾分布的隨機(jī)數(shù)生成器 


    表Ⅰ-5  分布函數(shù)的統(tǒng)計(jì)量函數(shù)
     
    函數(shù)名 對(duì)應(yīng)分布的統(tǒng)計(jì)量   
    betastat 貝塔分布函數(shù)的統(tǒng)計(jì)量   
    binostat 二項(xiàng)分布函數(shù)的統(tǒng)計(jì)量   
    chi2stat 卡方分布函數(shù)的統(tǒng)計(jì)量   
    expstat 指數(shù)分布函數(shù)的統(tǒng)計(jì)量   
    fstat f分布函數(shù)的統(tǒng)計(jì)量   
    gamstat 伽瑪分布函數(shù)的統(tǒng)計(jì)量   
    geostat 幾何分布函數(shù)的統(tǒng)計(jì)量   
    hygestat 超幾何分布函數(shù)的統(tǒng)計(jì)量   
    lognstat 對(duì)數(shù)正態(tài)分布函數(shù)的統(tǒng)計(jì)量   
    nbinstat 負(fù)二項(xiàng)分布函數(shù)的統(tǒng)計(jì)量   
    ncfstat 非中心f分布函數(shù)的統(tǒng)計(jì)量   
    nctstat 非中心t分布函數(shù)的統(tǒng)計(jì)量   
    ncx2stat 非中心卡方分布函數(shù)的統(tǒng)計(jì)量   
    normstat 正態(tài)(高斯)分布函數(shù)的統(tǒng)計(jì)量   
    poisstat 泊松分布函數(shù)的統(tǒng)計(jì)量 

    續(xù)表
     
    函數(shù)名 對(duì)應(yīng)分布的統(tǒng)計(jì)量   
    raylstat 瑞利分布函數(shù)的統(tǒng)計(jì)量   
    tstat 學(xué)生氏t分布函數(shù)的統(tǒng)計(jì)量   
    unidstat 離散均勻分布函數(shù)的統(tǒng)計(jì)量   
    unifstat 連續(xù)均勻分布函數(shù)的統(tǒng)計(jì)量   
    weibstat 威布爾分布函數(shù)的統(tǒng)計(jì)量 


    表Ⅰ-6  參數(shù)估計(jì)函數(shù)
     
    函 數(shù) 名 對(duì)應(yīng)分布的參數(shù)估計(jì)   
    betafit 貝塔分布的參數(shù)估計(jì)   
    betalike 貝塔對(duì)數(shù)似然函數(shù)的參數(shù)估計(jì)   
    binofit 二項(xiàng)分布的參數(shù)估計(jì)   
    expfit 指數(shù)分布的參數(shù)估計(jì)   
    gamfit 伽瑪分布的參數(shù)估計(jì)   
    gamlike 伽瑪似然函數(shù)的參數(shù)估計(jì)   
    mle 極大似然估計(jì)的參數(shù)估計(jì)   
    normlike 正態(tài)對(duì)數(shù)似然函數(shù)的參數(shù)估計(jì)   
    normfit 正態(tài)分布的參數(shù)估計(jì)   
    poissfit 泊松分布的參數(shù)估計(jì)   
    unifit 均勻分布的參數(shù)估計(jì)   
    weibfit 威布爾分布的參數(shù)估計(jì)   
    weiblike 威布爾對(duì)數(shù)似然函數(shù)的參數(shù)估計(jì) 


    表Ⅰ-7  統(tǒng)計(jì)量描述函數(shù)
     
    函  數(shù) 描           述   
    bootstrap 任何函數(shù)的自助統(tǒng)計(jì)量   
    corrcoef 相關(guān)系數(shù)   
    cov 協(xié)方差   
    crosstab 列聯(lián)表   
    geomean 幾何均值   
    grpstats 分組統(tǒng)計(jì)量   
    harmmean 調(diào)和均值   
    iqr 內(nèi)四分極值   
    kurtosis 峰度   
    mad 中值絕對(duì)差   
    mean 均值   
    median 中值   
    moment 樣本模量   
    nanmax 包含缺失值的樣本的最大值 
    續(xù)表
     
    函  數(shù) 描           述   
    Nanmean 包含缺失值的樣本的均值   
    nanmedian 包含缺失值的樣本的中值   
    nanmin 包含缺失值的樣本的最小值   
    nanstd 包含缺失值的樣本的標(biāo)準(zhǔn)差   
    nansum 包含缺失值的樣本的和   
    prctile 百分位數(shù)   
    range 極值   
    skewness 偏度   
    std 標(biāo)準(zhǔn)差   
    tabulate 頻數(shù)表   
    trimmean 截尾均值   
    var 方差 


    表Ⅰ-8  統(tǒng)計(jì)圖形函數(shù)
     
    函  數(shù) 描           述   
    boxplot 箱形圖   
    cdfplot 指數(shù)累加分布函數(shù)圖   
    errorbar 誤差條圖   
    fsurfht 函數(shù)的交互等值線圖   
    gline 畫線   
    gname 交互標(biāo)注圖中的點(diǎn)   
    gplotmatrix 散點(diǎn)圖矩陣   
    gscatter 由第三個(gè)變量分組的兩個(gè)變量的散點(diǎn)圖   
    lsline 在散點(diǎn)圖中添加最小二乘擬合線   
    normplot 正態(tài)概率圖   
    pareto 帕累托圖   
    qqplot Q-Q圖   
    rcoplot 殘差個(gè)案次序圖   
    refcurve 參考多項(xiàng)式曲線   
    refline 參考線   
    surfht 數(shù)據(jù)網(wǎng)格的交互等值線圖   
    weibplot 威布爾圖 


    表Ⅰ-9  統(tǒng)計(jì)過程控制函數(shù)
     
    函  數(shù) 描           述   
    capable 性能指標(biāo)   
    capaplot 性能圖   
    ewmaplot 指數(shù)加權(quán)移動(dòng)平均圖 
    續(xù)表
     
    函  數(shù) 描           述   
    histfit 添加正態(tài)曲線的直方圖   
    normspec 在指定的區(qū)間上繪正態(tài)密度   
    schart S圖   
    xbarplot x條圖 


    表Ⅰ-10  聚類分析函數(shù)
     
    函  數(shù) 描           述   
    cluster 根據(jù)linkage函數(shù)的輸出創(chuàng)建聚類   
    clusterdata 根據(jù)給定數(shù)據(jù)創(chuàng)建聚類   
    cophenet Cophenet相關(guān)系數(shù)   
    dendrogram 創(chuàng)建冰柱圖   
    inconsistent 聚類樹的不連續(xù)值   
    linkage 系統(tǒng)聚類信息   
    pdist 觀測(cè)量之間的配對(duì)距離   
    squareform 距離平方矩陣   
    zscore Z分?jǐn)?shù) 


    表Ⅰ-11  線性模型函數(shù)
     
    函  數(shù) 描           述   
    anova1 單因子方差分析   
    anova2 雙因子方差分析   
    anovan 多因子方差分析   
    aoctool 協(xié)方差分析交互工具   
    dummyvar 擬變量編碼   
    friedman Friedman檢驗(yàn)   
    glmfit 一般線性模型擬合   
    kruskalwallis Kruskalwallis檢驗(yàn)   
    leverage 中心化杠桿值   
    lscov 已知協(xié)方差矩陣的最小二乘估計(jì)   
    manova1 單因素多元方差分析   
    manovacluster 多元聚類并用冰柱圖表示   
    multcompare 多元比較   
     多項(xiàng)式評(píng)價(jià)及誤差區(qū)間估計(jì)   
    polyfit 最小二乘多項(xiàng)式擬合   
    polyval 多項(xiàng)式函數(shù)的預(yù)測(cè)值   
    polyconf 殘差個(gè)案次序圖   
    regress 多元線性回歸   
    regstats 回歸統(tǒng)計(jì)量診斷 
    續(xù)表
     
    函  數(shù) 描           述   
    Ridge 嶺回歸   
    rstool 多維響應(yīng)面可視化   
    robustfit 穩(wěn)健回歸模型擬合   
    stepwise 逐步回歸   
    x2fx 用于設(shè)計(jì)矩陣的因子設(shè)置矩陣 


    表Ⅰ-12  非線性回歸函數(shù)
     
    函  數(shù) 描           述   
    nlinfit 非線性最小二乘數(shù)據(jù)擬合(牛頓法)   
    nlintool 非線性模型擬合的交互式圖形工具   
    nlparci 參數(shù)的置信區(qū)間   
    nlpredci 預(yù)測(cè)值的置信區(qū)間   
    nnls 非負(fù)最小二乘 


    表Ⅰ-13  試驗(yàn)設(shè)計(jì)函數(shù)
     
    函  數(shù) 描           述   
    cordexch D-優(yōu)化設(shè)計(jì)(列交換算法)   
    daugment 遞增D-優(yōu)化設(shè)計(jì)   
    dcovary 固定協(xié)方差的D-優(yōu)化設(shè)計(jì)   
    ff2n 二水平完全析因設(shè)計(jì)   
    fracfact 二水平部分析因設(shè)計(jì)   
    fullfact 混合水平的完全析因設(shè)計(jì)   
    hadamard Hadamard矩陣(正交數(shù)組)   
    rowexch D-優(yōu)化設(shè)計(jì)(行交換算法) 

     

    表Ⅰ-14  主成分分析函數(shù)
     
    函  數(shù) 描           述   
    barttest Barttest檢驗(yàn)   
    pcacov 源于協(xié)方差矩陣的主成分   
    pcares 源于主成分的方差   
    princomp 根據(jù)原始數(shù)據(jù)進(jìn)行主成分分析 

    表Ⅰ-15  多元統(tǒng)計(jì)函數(shù)
     
    函  數(shù) 描           述   
    classify 聚類分析   
    mahal 馬氏距離   
    manova1 單因素多元方差分析   
    manovacluster 多元聚類分析 

    表Ⅰ-16  假設(shè)檢驗(yàn)函數(shù)
     
    函  數(shù) 描           述   
    ranksum 秩和檢驗(yàn)   
    signrank 符號(hào)秩檢驗(yàn)   
    signtest 符號(hào)檢驗(yàn)   
    ttest 單樣本t檢驗(yàn)   
    ttest2 雙樣本t檢驗(yàn)   
    ztest z檢驗(yàn) 

    表Ⅰ-17  分布檢驗(yàn)函數(shù)
     
    函  數(shù) 描           述   
    jbtest 正態(tài)性的Jarque-Bera檢驗(yàn)   
    kstest 單樣本Kolmogorov-Smirnov檢驗(yàn)   
    kstest2 雙樣本Kolmogorov-Smirnov檢驗(yàn)   
    lillietest 正態(tài)性的Lilliefors檢驗(yàn) 

    表Ⅰ-18  非參數(shù)函數(shù)
     
    函  數(shù) 描           述   
    friedman Friedman檢驗(yàn)   
    kruskalwallis Kruskalwallis檢驗(yàn)   
    ranksum 秩和檢驗(yàn)   
    signrank 符號(hào)秩檢驗(yàn)   
    signtest 符號(hào)檢驗(yàn) 

    表Ⅰ-19  文件輸入輸出函數(shù)
     
    函  數(shù) 描           述   
    caseread 讀取個(gè)案名   
    casewrite 寫個(gè)案名到文件   
    tblread 以表格形式讀數(shù)據(jù)   
    tblwrite 以表格形式寫數(shù)據(jù)到文件   
    tdfread 從表格間隔形式的文件中讀取文本或數(shù)值數(shù)據(jù) 

    表Ⅰ-20  演示函數(shù)
     
    函  數(shù) 描           述   
    aoctool 協(xié)方差分析的交互式圖形工具   
    disttool 探察概率分布函數(shù)的GUI工具   
    glmdemo 一般線性模型演示   
    randtool 隨機(jī)數(shù)生成工具   
    polytool 多項(xiàng)式擬合工具   
    rsmdemo 響應(yīng)擬合工具   
    robustdemo 穩(wěn)健回歸擬合工具 


    Ⅰ.2  優(yōu)化工具箱函數(shù)
    表Ⅰ-21  最小化函數(shù)表
     
    函    數(shù) 描       述   
    fgoalattain 多目標(biāo)達(dá)到問題   
    fminbnd 有邊界的標(biāo)量非線性最小化   
    fmincon 有約束的非線性最小化   
    fminimax 最大最小化   
    fminsearch, fminunc 無約束非線性最小化   
    fseminf 半無限問題   
    linprog 線性課題   
    quadprog 二次課題 

    表Ⅰ-22  方程求解函數(shù)表
     
    函   數(shù) 描       述   
    \ 線性方程求解   
    fsolve 非線性方程求解   
    fzero 標(biāo)量非線性方程求解 

    表Ⅰ-23  最小二乘函數(shù)表
     
    函   數(shù) 描       述   
    \ 線性最小二乘   
    lsqlin 有約束線性最小二乘   
    lsqcurvefit 非線性曲線擬合   
    lsqnonlin 非線性最小二乘   
    lsqnonneg 非負(fù)線性最小二乘 

    表Ⅰ-24  實(shí)用函數(shù)表
     
    函   數(shù) 描       述   
    optimset 設(shè)置參數(shù)   
    optimget 獲取參數(shù) 

    表Ⅰ-25  大型方法的演示函數(shù)表
     
    函   數(shù) 描        述   
    circustent 馬戲團(tuán)帳篷問題—二次課題   
    molecule 用無約束非線性最小化進(jìn)行分子組成求解   
    optdeblur 用有邊界線性最小二乘法進(jìn)行圖形處理 

    表Ⅰ-26  中型方法的演示函數(shù)表
     
    函   數(shù) 描         述   
    bandemo 香蕉函數(shù)的最小化   
    dfildemo 過濾器設(shè)計(jì)的有限精度   
    goaldemo 目標(biāo)達(dá)到舉例   
    optdemo 演示過程菜單   
    tutdemo 教程演示 

    Ⅰ.3  樣條工具箱函數(shù)
    表Ⅰ-27  三次樣條函數(shù)
     
    函  數(shù) 描           述   
    csapi 插值生成三次樣條函數(shù)   
    csape 生成給定約束條件下的三次樣條函數(shù)   
    csaps 平滑生成三次樣條函數(shù)   
    cscvn 生成一條內(nèi)插參數(shù)的三次樣條曲線   
    getcurve 動(dòng)態(tài)生成三次樣條曲線 

    表Ⅰ-28  分段多項(xiàng)式樣條函數(shù)
     
    函  數(shù) 描           述   
    pplst 顯示關(guān)于生成分段多項(xiàng)式樣條曲線的M文件   
    ppmak 生成分段多項(xiàng)式樣條函數(shù)   
    ppual 計(jì)算在給定點(diǎn)處的分段多項(xiàng)式樣條函數(shù)值 

    表Ⅰ-29  B樣條函數(shù)
     
    函  數(shù) 描           述   
    splst 顯示生成B樣條函數(shù)的M文件   
    spmak 生成B樣條函數(shù)   
    spcrv 生成均勻劃分的B樣條函數(shù)   
    spapi 插值生成B樣條函數(shù)   
    spap2 用最小二乘法擬合生成B樣條函數(shù)   
    spaps 對(duì)生成的B樣條曲線進(jìn)行光滑處理   
    spcol 生成B樣條函數(shù)的配置矩陣 

    表Ⅰ-30  有理樣條函數(shù)
     
    函  數(shù) 描           述   
    rpmak 生成有理樣條函數(shù)   
    rsmak 生成有理樣條函數(shù) 

    表Ⅰ-31  操作樣條函數(shù)
     
    函  數(shù) 描           述   
    fnval 計(jì)算在給定點(diǎn)處的樣條函數(shù)值   
    fmbrk 返回樣條函數(shù)的某一部分(如斷點(diǎn)或系數(shù)等)   
    fncmb 對(duì)樣條函數(shù)進(jìn)行算術(shù)運(yùn)算   
    fn2fm 把一種形式的樣條函數(shù)轉(zhuǎn)化成另一種形式的樣條函數(shù)   
    fnder 求樣條函數(shù)的微分(即求導(dǎo)數(shù))   
    fndir 求樣條函數(shù)的方向?qū)?shù)   
    fnint 求樣條函數(shù)的積分   
    fnjmp 在間斷點(diǎn)處求函數(shù)值   
    fnplt 畫樣條曲線圖   
    fnrfn 在樣條曲線中插入斷點(diǎn)。   
    fntlr 生成tarylor系數(shù)或taylor多項(xiàng)式 

    表Ⅰ-32 樣條曲線端點(diǎn)和節(jié)點(diǎn)處理函數(shù)
     
    函  數(shù) 描             述   
    augknt 在已知節(jié)點(diǎn)數(shù)組中添加一個(gè)或多個(gè)節(jié)點(diǎn)   
    aveknt 求出節(jié)點(diǎn)數(shù)組元素的平均值   
    brk2knt 增加斷點(diǎn)數(shù)組中元素的重次   
    knt2brk 從節(jié)點(diǎn)數(shù)組中求得節(jié)點(diǎn)及其重次   
    knt2mlt 從節(jié)點(diǎn)數(shù)組中求得節(jié)點(diǎn)及其重次   
    sorted 求出節(jié)點(diǎn)數(shù)組points的元素在節(jié)點(diǎn)數(shù)組meshpoints中屬于第幾個(gè)分量   
    aptknt 求出用于生成樣條曲線的節(jié)點(diǎn)數(shù)組 
    表Ⅰ-33  樣條曲線端點(diǎn)和節(jié)點(diǎn)處理函數(shù)
     
    函  數(shù) 描             述   
    newknt 對(duì)分段多項(xiàng)式樣條函數(shù)進(jìn)行重分布   
    optknt 求出用于內(nèi)插的最優(yōu)節(jié)點(diǎn)數(shù)組   
    chbpnt 求出用于生成樣條曲線的合適節(jié)點(diǎn)數(shù)組 

    表Ⅰ-34  解線性方程組的函數(shù)
     
    函  數(shù) 描             述   
    slvblk 解對(duì)角占優(yōu)的線性方程組   
    bkbrk 描述分塊對(duì)角矩陣的詳細(xì)情況 

    表Ⅰ-35  樣條GUI函數(shù)
     
    函  數(shù) 描             述   
    bspligui 在節(jié)點(diǎn)處生成B樣條曲線   
    splinetool 用一系列方法生成各種樣條曲線 

    Ⅰ.4  偏微分方程數(shù)值解工具箱函數(shù)
    表Ⅰ-36  偏微分方程求解算法函數(shù)
     
    函  數(shù) 描             述   
    adaptmesh 生成自適應(yīng)網(wǎng)格并求解PDE問題   
    assema 組合面積的整體貢獻(xiàn)   
    assemb 組合邊界條件的貢獻(xiàn)   
    assempde 組合剛度矩陣和PDE問題的右端項(xiàng)   
    hyperbolic 求解雙曲線PDE問題   
    parabolic 求解拋物線型PDE問題   
    pdeeig 求解特征值PDE問題   
    pdenonlin 求解非線性PDE問題   
    poisolv 在矩形網(wǎng)格上對(duì)泊松方程進(jìn)行快速求解 

     

    表Ⅰ-37  用戶界面算法函數(shù)
     
    函  數(shù) 描             述   
    pdecirc 繪圓   
    pdeellip 繪橢圓   
    pdemdlcv 將PDE工具箱1.0模型的M文件轉(zhuǎn)換為PDE工具箱1.0.2版本的格式   
    pdepoly 繪多邊形   
    pderect 繪矩形   
    pdetool PDE工具箱圖形用戶集成界面(GUI) 


    表Ⅰ-38  幾何算法函數(shù)
     
    函  數(shù) 描             述   
    csgchk 核對(duì)幾何描述矩陣的有效性   
    csgdel 刪除最小子域之間的界線   
    decsg 將建設(shè)性實(shí)體幾何模型分解為最小子域   
    initmesh 創(chuàng)建初始三角形網(wǎng)格   
    jigglemesh 微調(diào)三角形網(wǎng)格的內(nèi)部點(diǎn)   
    pdearcl 在參數(shù)表示和圓弧長(zhǎng)度之間進(jìn)行內(nèi)插   
    poimesh 在矩形幾何圖形上生成規(guī)則網(wǎng)格   
    refinemesh 加密一個(gè)三角形網(wǎng)格   
    wbound 寫邊界條件指定文件   
    wgeom 寫幾何指定函數(shù) 


    表Ⅰ-39  繪圖函數(shù)
     
    函  數(shù) 描             述   
    pdecont 繪等值線圖   
    pdegplot 繪制PDE幾何圖   
    pdemesh 繪PDE三角形網(wǎng)格   
    pdeplot 一般PDE工具箱繪圖函數(shù)   
    pdesurf 繪三維表面圖 


    表Ⅰ-40  實(shí)用函數(shù)
     
    函  數(shù) 描             述   
    Dst idst 離散化sin轉(zhuǎn)換   
    pdeadgsc 使用相對(duì)容限臨界值選擇三角形   
    pdeadworst 選擇相對(duì)于最壞值的三角形   
    pdecgrad PDE解的變動(dòng)   
    pdeent 與給定三角形集合相鄰的三角形的指數(shù)   
    pdegrad PDE解的梯度   
    pdeintrp 從節(jié)點(diǎn)數(shù)據(jù)至三角形中點(diǎn)數(shù)據(jù)進(jìn)行內(nèi)插   
    pdejmps 對(duì)于自適應(yīng)網(wǎng)格進(jìn)行誤差估計(jì)   
    pdeprtni 從三角形中點(diǎn)數(shù)據(jù)向節(jié)點(diǎn)數(shù)據(jù)進(jìn)行內(nèi)插   
    pdesde 子域集合中點(diǎn)的指數(shù)   
    pdesdp 子域集合邊緣的指數(shù)   
    pdesdt 子域集合三角形的指數(shù)   
    pdesmech 計(jì)算結(jié)構(gòu)力學(xué)張量函數(shù)   
    pdetrg 三角形幾何數(shù)據(jù)   
    pdetriq 三角型質(zhì)量度量 
    續(xù)表
     
    函  數(shù) 描             述   
    Poiasma 用于泊松方程快速求解器的邊界點(diǎn)矩陣   
    poicalc 矩形網(wǎng)格上泊松方程的快速求解器   
    poiindex 經(jīng)過規(guī)范排序的矩形網(wǎng)格的點(diǎn)的指數(shù)   
    sptarn 求解廣義稀疏特征值問題   
    tri2grid 從PDE三角形網(wǎng)格到矩形網(wǎng)格進(jìn)行內(nèi)插 


    表Ⅰ-41  自定義算法函數(shù)
     
    函  數(shù) 描             述   
    pdebound 邊界條件M文件   
    pdegeom 幾何模型M文件 


    表Ⅰ-42  演示函數(shù)
     
    函  數(shù) 描             述   
    pdedemo1 單位圓盤上泊松方程的精確解   
    pdedemo2 求解Helmholtz方程,研究反射波   
    pdedemo3 求解最小表面問題   
    pdedemo4 用子域分解求解PDE問題   
    pdedemo5 求拋物線型問題(熱傳導(dǎo)方程)   
    pdedemo6 求雙曲線型PDE問題(波動(dòng)方程)   
    pdedemo7 點(diǎn)源的自適應(yīng)求解   
    pdedemo8 在矩形網(wǎng)格上求解泊松方程 

    posted @ 2007-07-28 14:50 笨蛋啊帆 閱讀(3787) | 評(píng)論 (1)編輯 收藏


    2007年6月29日

    GNU Emacs 是 Emacs, 的版本之一,是由 Emacs, 的原始版本(PDP-10)的作者Richard Stallman所編寫的。
    GNU Emacs的主要文檔在GNU Emacs手冊(cè)中,你可以用Info(Emacs的一個(gè)子系統(tǒng))以行方式去讀。請(qǐng)?jiān)谀抢锊榭赐耆暮妥钚碌奈臋n。本幫助頁的更新依賴于志愿人員; Emacs 的維護(hù)人員的首要目標(biāo)是使使用能本幫助頁面盡可能少地占用其它更有用的項(xiàng)目的時(shí)間。
    GNU Emacs 包含了其它 Emacs 編輯器所擁有的全部功能。由于它的編輯命令是用Lisp寫的,因此很容易擴(kuò)展。
    Emacs 有一個(gè)擴(kuò)展的交互幫助工具,但該工具假設(shè)你能熟練地使用 Emacs 窗口和緩沖區(qū)。CTRL-h (退格或CTRL-h) 可以進(jìn)入該幫助工具。 Help Tutorial(幫助指南,CTRL-h t) 調(diào)用一個(gè)交互式的指南以幫助初學(xué)者在很短的時(shí)間內(nèi)了解 Emacs 的基本知識(shí)。Help Apropos (CTRL-h a) 幫助你找到一個(gè)命令并給出其功能說明,Help Character (字符幫助,CTRL-h c) 描述一個(gè)給定的字符的作用,Help Function (函數(shù)幫助,CTRL-h f) 描述一個(gè)指定名稱的Lisp 函數(shù)。
    Emacs 的Undo(恢復(fù)功能)可以取消最近幾步對(duì)緩沖區(qū)所做的修改,因此很容易從編輯錯(cuò)誤中恢復(fù)
    GNU Emacs 的許多特殊的包可以處理郵件讀取(RMail)和郵件發(fā)送
    (Mail),大綱編輯 (Outline),編譯(Compile), 在 Emacs 窗口中運(yùn)行shell (Shell), 運(yùn)行Lisp 的read-eval-print 循環(huán)(Lisp-Interaction-Mode), 以及自動(dòng)修正(Doctor)。
    還有一個(gè)擴(kuò)充的參考手冊(cè),但是其它版本的 Emacs 用戶即使沒有它,要適應(yīng)GNU Emacs也不會(huì)有什么困難。而Emacs的新用戶通過學(xué)習(xí)指南和使用自身文檔特性,很快就能夠使用GNU Emacs的基本功能。
    Emacs選項(xiàng)
    以下的選項(xiàng)是很常用的:
    file
    編輯 文件。
    +number
    轉(zhuǎn)到由 number 指定的行(在"+"和數(shù)字當(dāng)中不要加入空格)。
    -q
    不載入初始文件。
    -u user
    載入 user 的初始文件。
    -t file
    使用指定的 file 文件作為終端來代替stdin/stdout。該項(xiàng)必須作為命令行的第一個(gè)參數(shù)來說明。
    以下的選項(xiàng)是面向lisp的 (這些選項(xiàng)按照給定的順序處理):
    -f function
    執(zhí)行l(wèi)isp函數(shù) function 。
    -l file
    裝入文件 file 中的Lisp代碼。
    Emacs 作為批處理編輯器來運(yùn)行時(shí),以下選項(xiàng)是有用的:
    -batch
    批處理模式編輯。 編輯器將把消息送至stderr(注1)。這個(gè)選項(xiàng)必須位于參數(shù)列表的第一位。必須用-l和-f選項(xiàng)來指明要執(zhí)行的文件和要調(diào)用的函數(shù)。
    -kill
    在批處理模式下退出Emacs Emacs 。
    在X Window下使用Emacs
    Emacs 已經(jīng)被設(shè)計(jì)得能在X Window系統(tǒng)下很好地工作。如果在X Window下運(yùn)行 Emacs ,將創(chuàng)建其自己的X Window來顯示。這是因?yàn)槟阋苍S會(huì)將Emacs編輯器作為后臺(tái)進(jìn)程來啟動(dòng),并能夠繼續(xù)使用原來的窗口。
    Emacs 在啟動(dòng)時(shí)能帶以下X命令開關(guān):
    -name name
    指定初始的 Emacs 窗口的名字。這使得能象窗口標(biāo)題一樣查詢X資源。
    -title name
    指定起始X窗口的標(biāo)題。
    -r
    反白顯示 Emacs 窗口。
    -i
    當(dāng) Emacs 窗口圖標(biāo)化時(shí),使用"廚房水槽"位圖圖標(biāo)。
    -font font, -fn font
    將 Emacs 窗口字體設(shè)置為指定的字體 font 。在 /usr/lib/X11/fonts 路徑下可以找到不同的 X 字體。注意: Emacs 只接受固定寬度的字體。在X11第四版字體命名協(xié)議下,若字體名的第11個(gè)域的值是"m"或"c",則該字體是固定寬度的字體。此外,若字體名擁有 寬x高 的形式,它一般也是 固定 寬度字體。關(guān)于更多信息,參見xlsfonts(1)。 在指定字體時(shí),別忘了在開關(guān)和字體名之間需要一個(gè)空格。
    -b pixels
    設(shè)置 Emacs 窗口邊框?qū)挾葹?pixels 指定的點(diǎn)數(shù)。缺省值是窗口每邊寬為1點(diǎn)。
    -ib pixels
    設(shè)置Emacs窗口內(nèi)部邊框?qū)挾葹?pixels 指定的點(diǎn)數(shù)。缺省值是窗口每邊填充1點(diǎn)。
    -geometry geometry
    按照給定的值設(shè)置 Emacs Emacs窗口的寬,高及位置。幾何參數(shù)的指定應(yīng)符合標(biāo)準(zhǔn)X格式,關(guān)于更多信息,參見 X(1) 。寬和高用字符來指定,缺省值是80 x 24。
    -fg color
    在彩色顯示下,設(shè)置文本的顏色。有效的顏色名列表見 /usr/lib/X11/rgb.txt 。
    -bg color
    在彩色顯示下,設(shè)置窗口背景的顏色。
    -bd color
    在彩色顯示下,設(shè)置窗口邊框的顏色。
    -cr color
    在彩色顯示下,設(shè)置窗口文本光標(biāo)的顏色。
    -ms color
    在彩色顯示下,設(shè)置窗口鼠標(biāo)光標(biāo)的顏色。
    -d displayname, -display displayname
    在由 displayname. 指定的顯示器上創(chuàng)建 Emacs 窗口。必須是在命令行中指定的第一個(gè)選項(xiàng)。
    -nw
    告訴 Emacs 不使用其到 X 的特定界面。如果在從 xterm(1) 窗口調(diào)用 Emacs 時(shí),使用此開關(guān),則在該窗口中打開顯示器。這必須是命令行中指定的第一個(gè)選項(xiàng)。
    您可以在 .Xresources 文件(請(qǐng)參閱 xrdb(1) )中為 Emacs 窗口設(shè)置 X 缺省值。請(qǐng)使用下列格式:
    emacs.keyword:value
    其中 value(值) 指定 keyword(關(guān)鍵字) 的缺省值。 Emacs 允許您為下列關(guān)鍵字設(shè)置缺省值:
    font (Font 類)
    設(shè)置窗口的文本 痔濉?
    reverseVideo (ReverseVideo 類)
    如果把 reverseVideo 的值設(shè)置為 ,則反白顯示窗口。
    bitmapIcon ( BitmapIcon 類)
    如果 bitmapIcon 的值設(shè)置為 ,則窗口將圖符化為凹入狀。
    borderWidth (BorderWidth 類)
    設(shè)置窗口的邊框?qū)挾龋ㄒ?pixel 為單位)。
    internalBorder (BorderWidth 類)
    設(shè)置窗口的內(nèi)部邊框?qū)挾龋ㄒ?pixel 為單位)。
    foreground (Foreground 類)
    對(duì)于彩色顯示器,設(shè)置窗口的文本顏色。
    background (Background 類)
    對(duì)于彩色顯示器,設(shè)置窗口的背景顏色。
    borderColor (BorderColor 類)
    對(duì)于彩色顯示器,設(shè)置窗口的邊框顏色。
    cursorColor (Foreground ?
    對(duì)于彩色顯示器,設(shè)置窗口文本光標(biāo)的顏色。
    pointerColor (Foreground 類)
    對(duì)于彩色顯示器,設(shè)置窗口鼠標(biāo)光標(biāo)的顏色。
    geometry (Geometry 類)
    設(shè)置 Emacs 窗口的幾何大小(如上所述)。
    title (Title 類)
    設(shè)置 Emacs 窗口的標(biāo)題。
    iconName (Title 類)
    設(shè)置 Emacs 窗口圖符的圖符名稱。
    如果你在使用黑白顯示器時(shí)試圖設(shè)置顏色值,則窗口的特征將缺省為:前景色將設(shè)置為黑色,背景色將設(shè)置為白色,邊框顏色將設(shè)置為灰色,而文本和鼠標(biāo)光標(biāo)將設(shè)置為黑色。
    使用鼠標(biāo)
    下面列出在X11下 Emacs 窗口的鼠標(biāo)按鈕的捆綁功能。
    左鍵 定點(diǎn)。
    中鍵 粘貼文本
    右鍵 把文本剪貼到X的剪貼緩沖區(qū)
    SHIFT-中鍵 把文本剪貼到X的剪貼緩沖區(qū)。
    SHIFT-右鍵 粘貼文本
    CTRL-中鍵 把文本剪貼到X的剪貼緩沖區(qū)并把它刪除
    CTRL-右鍵 選擇窗口并分割它成兩個(gè)窗口,和輸入CTRL-X 2一樣
    CTRL-SHIFT-左鍵 對(duì)X緩沖區(qū)菜單操作,掛起按鈕和鍵盤,等待菜單出現(xiàn),
    選擇緩沖區(qū)和釋放它。把鼠標(biāo)移離菜單和釋放操作。
    CTRL-SHIFT-中鍵 彈出X菜單幫助索引Emacs幫助。
    CTRL-SHIFT-右鍵 用鼠標(biāo)選擇窗口并刪除所有其他窗口,和輸入CTRL-X 1一樣。
    手冊(cè)
    你可以從開發(fā)GNU軟件的自由軟件基金會(huì)獲得GNU Emacs手冊(cè)的拷貝。
    要獲得信息仔細(xì)查看文件ORDERS。
    你本地的Emacs維護(hù)也有有效的拷貝。對(duì)于所有從FSF獲得的軟件和印刷品,每個(gè)人都有權(quán)制造和發(fā)布Emacs手冊(cè)的副本。
    手冊(cè)的TeX源文檔也被包含在Emacs源代碼發(fā)布中。
    文件
    /usr/local/info - 通過Info文檔瀏覽器(Emacs的一個(gè)子系統(tǒng))查閱的文件。
    現(xiàn)在還沒有太多的Unix在以此為文檔,但Emacs參考手冊(cè)的完整文本以便利的樹結(jié)?p> 形式包含于其中。 /usr/local/share/emacs/$VERSION/src - C源文件和目標(biāo)文件。 /usr/local/share/emacs/$VERSION/lisp - 定義了大部分編輯命令的Lisp源文件和編譯后的文件。 有些已經(jīng)裝入了;其它的則在使用時(shí)自動(dòng)從本目錄中裝入。 /usr/local/share/emacs/$VERSION/etc - 與GNU Emacs一同使用的各種程序,還有一些文件的信息。 /usr/local/share/emacs/$VERSION/etc/DOC.* - 包含了Lisp原語和GNU Emacs 的預(yù)裝入Lisp函數(shù)的文檔字符串。 它們被儲(chǔ)存在這里以減小Emacs的體積。 /usr/local/share/emacs/$VERSION/etc/OTHER.EMACSES 討論GNU Emacs與其它版本的Emacs之間的不同。
    /usr/local/share/emacs/$VERSION/etc/SERVICE 列舉為幫助GNU Emacs的用戶提供各種服務(wù)的人們,包括教學(xué)、疑難解答、移植和定制。
    這些文件還含有對(duì)那些希望用Emacs Lisp擴(kuò)展語言編寫程序的人有用的信息,該語言含沒有完整的文檔。 /usr/local/com/emacs/lock - 為使用Emacs修改的所有文件保存鎖文件,以防止由兩個(gè)用戶在同時(shí)對(duì)一個(gè)文件進(jìn)行修改。 /usr/lib/X11/rgb.txt - 合法的X顏色名的列表。
    臭蟲
    此處有一個(gè)郵件列表,因特網(wǎng)上的bug-gnu-emacs@prep.ai.mit.edu,用于報(bào)告Emacs的臭蟲和修補(bǔ)。但在報(bào)告作為一個(gè)臭蟲的 某件事之前,請(qǐng)盡量肯定它真是一個(gè)臭蟲,而不是一個(gè)誤會(huì)或一個(gè)故意的特性。我們要求你閱讀在此參考手冊(cè)末尾附近的"Reporting
    Emacs Bugs"(報(bào)告 Emacs 臭蟲)章節(jié)(或Info系統(tǒng)),用于提示如何和什么時(shí)候報(bào)告臭蟲。 還有,在每個(gè)你發(fā)送的臭蟲報(bào)告中包含你所運(yùn)行的Emacs的版本號(hào)。 不要期望對(duì)一個(gè)錯(cuò)誤報(bào)告給出個(gè)人的答案。報(bào)告錯(cuò)誤的目的是為了大家在下一個(gè)版本中可以修復(fù)它。 對(duì)個(gè)人來說,我們可以去參考服務(wù)文件(見上)的一個(gè)列表。 除非是向這個(gè)郵件列表報(bào)告臭蟲,請(qǐng)不要發(fā)任何東西到這里來。你可以將申請(qǐng)加入郵件列表的請(qǐng)求寄到 info-gnu-emacs-request@prep.ai.mit.edu(或者相應(yīng)的UUDP地址)中去。關(guān)于Emacs(UNIX編輯程序宏指 令)郵件列表的詳情,請(qǐng)閱讀文件
    /usr/local/emacs/etc/MAILINGLISTS。 如果錯(cuò)誤是孤立的,往往是可以修復(fù)的。因此如果你對(duì)報(bào)道那些錯(cuò)誤感興趣的話,你可以很容易將它復(fù)制出來。
    我所知道的一些錯(cuò)誤是:在一些UNIX版本中,SHELL不能很好的和應(yīng)用程序一起工作。
    非限制的
    Emacs 是免費(fèi)的; 任何人都可以按照與每個(gè) Emacs 的副本在一起的 Emacs General Public License中陳述的條款把 Emacs 的副本分發(fā)?p> 任何人,該許可證的也出現(xiàn)在參考手冊(cè)中。
    Emacs 的副本有時(shí)與UNIX系統(tǒng)在一起打包進(jìn)行分發(fā),但是它永遠(yuǎn)不會(huì)包含在任何哺欽廡┎僮饗低車男砜芍さ姆段е凇O笳庋シ戳頌蹩畹陌鍤潛輝市淼模率瞪 希珿eneral Public License的主要目的是讓那些分發(fā) Emacs. 的人可以免受更多的干擾。
    Richard Stallman鼓勵(lì)你改善和擴(kuò)展Emacs,鼓勵(lì)你把你對(duì)GNU庫的擴(kuò)展貢獻(xiàn)給GNU庫。最后GNU(Gnus Not Unix)將成為伯克利UNIX最好的替代品。每個(gè)人都可以自由的使用,拷貝,研究和更改GNU的系統(tǒng)。
    參見
    X(1), xlsfonts(1), xterm(1), xrdb(1)
    作者
    Emacs 是由Richard Stallman和自由軟件基金會(huì)合作完成的。 Joachim Martillo和Robert Krawitz為系統(tǒng)加入了X界面。

    posted @ 2007-06-29 09:10 笨蛋啊帆 閱讀(562) | 評(píng)論 (0)編輯 收藏

    Emacs 的命令通常包括控制鍵(就是上面標(biāo)有 Ctrl或Ctl的那個(gè))或者是META鍵(上面標(biāo)有EDIT或ALT)。為了方便起見我們將用下面的縮寫來代替這些鍵的全稱:

    C- 意思是當(dāng)敲入字符 時(shí)同時(shí)按住控制鍵,因此,C-f表 示:按住控制鍵并且按 f 。 M- 表示當(dāng)鍵入 時(shí)按住META或ALT或EDIT鍵。如果沒有META 或ALT或EDIT鍵,則用ESC鍵代替。 表示ESC鍵

    注意:退出Emacs,按C-x C-c(兩個(gè)字符)。在文本左邊區(qū)域的“>>”符號(hào)表示讓你試著使用一個(gè)命令。比如:
    >> 現(xiàn)在鍵入C-v(觀看下一屏)移動(dòng)到下一屏。(就象前面說的,按v的同時(shí)也按住控制鍵)。從現(xiàn)在開始,每當(dāng)你讀完一屏的時(shí)候都可以用它來翻屏。
    注意在翻屏后會(huì)保留上屏的最后一行;這是為你繼續(xù)閱讀文本提供某些連貫性。
    你所需要知道的第一件事是如何把光標(biāo)從一個(gè)地方移動(dòng)到另一個(gè)地方。你已經(jīng)知道了如何向前翻一屏--用 C-v。要向后翻一屏,鍵入M-v。
    >> 試著鍵入 M-v 和 C-v 幾次。
    * 摘要(SUMMARY)
    ---------------------------
    下面幾個(gè)命令對(duì)整屏觀看時(shí)有用:

    C-v 向前翻一整屏。
    M-v 向后翻一整屏。
    C-l 清除屏幕并重新顯示所有的文本,然后把光標(biāo)移動(dòng)到屏幕的中央。 (注意是Control-L,而不是 Control-1)。
    >> 尋找光標(biāo),并且注意它在文本里的位置。然后鍵入C-l。再尋找光標(biāo)你會(huì)注意到光標(biāo)現(xiàn)在會(huì)出現(xiàn)在同樣的文本附近。
    * 基本光標(biāo)控制(BASIC CURSOR CONTROL)
    -----------------------------------------------------------------
    整屏整屏的移動(dòng)是很有用的,可是如何把光標(biāo)移動(dòng)到屏幕上文本里的一個(gè)指定的地方呢?
    有好幾個(gè)方法可以實(shí)現(xiàn)。最基本的方法是用命令 C-p,C-b,C-f,和C-n。這些命令每個(gè)都使光標(biāo)在屏幕上往特定的方向移動(dòng)一行或者一列。下面是一個(gè)圖表顯示了這四個(gè)命令和它們所移動(dòng)的方向:


    上一行,C-p
    :
    :
    向前,C-b ...... 當(dāng)前光標(biāo)的位置 ...... 向后,C-f
    :
    :
    下一行,C-n
    >> 用C-n或C-p把光標(biāo)移動(dòng)到圖表中間。然后鍵入C-l會(huì)看到整個(gè)圖表出現(xiàn)在屏幕的中央。



    你也許會(huì)發(fā)現(xiàn)這些字母很容易記住:P 代表上面的(previous),N 代表下一個(gè) (next),B 代表向前(backward),F(xiàn) 代表向后(forward)。這些是基本的光標(biāo)位置命令,你將經(jīng)常會(huì)用到它們。所以現(xiàn)在學(xué)習(xí)它們很有好處。


    >> 用幾次 C-n 把光標(biāo)向下移動(dòng)到這一行。

    >> 用 C-f 把光標(biāo)移動(dòng)到行里,再用C-p把光標(biāo)上移。觀察當(dāng)光標(biāo)在行的中間時(shí) C-p做了些什么。
    每一個(gè)文本行都以一個(gè)換行符結(jié)尾,它用來當(dāng)作行與行之間的分格。你的文件的最后一行的尾部應(yīng)該有一個(gè)換行符(但Emacs并不要求一定要有一個(gè))。
    >> 試著在行的開頭使用C-b。它將會(huì)把光標(biāo)移到上一行的末尾。這是因?yàn)樗蚝笠频臅r(shí)候穿過了換行符。
    C-f 也能象 C-b一樣穿過換行符。
    >> 使用幾次C-b,使您能知道光標(biāo)在哪。然后用C-f移動(dòng)到行的末尾。然后再用一次C-f,使光標(biāo)移動(dòng)到下一行。

    當(dāng)你移動(dòng)超過屏幕的頂部或底部,光標(biāo)回移動(dòng)到下一屏的中間,這叫做“滾屏 (scrolling)”。它使得Emacs滾屏移動(dòng)到文本上指定的部位而不是移出屏幕。

    >> 試著用C-n把光標(biāo)移過屏幕的底部,看看回發(fā)生什么。

    如果覺得一個(gè)一個(gè)字符的移動(dòng)太緩慢,可以一個(gè)單詞一個(gè)單詞的移動(dòng)。M-f(Meta-f) 向前移一個(gè)單詞,M-b向后移一個(gè)單詞。
    >> 鍵入幾個(gè)M-f和M-b。

    當(dāng)光標(biāo)在一個(gè)單詞的中間,M-f移動(dòng)到單詞的末尾。當(dāng)光標(biāo)在兩個(gè)單詞間的空白部分 M-f移動(dòng)到后一個(gè)單詞的末尾。M-b與M-f一樣,只是移動(dòng)的方向相反。
    >> 鍵入M-f和M-b幾次,中間穿插一些C-f和C-b以使你能觀察到M-f和M-b在單詞中和單詞間的不同行為。

    注意比較C-f,C-b與M-f,M-b。通常情況下Meta鍵用于有關(guān)語言單位(詞,句,段落) 的操作;而控制鍵用于編輯時(shí)的基本單位(字符,行等)。
    這是句與行的比較:C-a和C-e移動(dòng)到一行的開頭和末尾,M-a和M-e移動(dòng)到一個(gè)句子的開頭和末尾。
    >> 鍵入一對(duì)C-a,再鍵入一對(duì)C-e。 鍵入一對(duì)M-a,再鍵入一對(duì)M-e。

    你會(huì)看到重復(fù)鍵入的C-a什么也不做,而重復(fù)鍵入的M-a則會(huì)移動(dòng)一個(gè)以上的句子。
    光標(biāo)在文本中的位置也叫“點(diǎn)(point)”。在段落里,光標(biāo)標(biāo)示出了點(diǎn)在屏幕上文本里的位置。
    下面是簡(jiǎn)單的光標(biāo)移動(dòng)命令的總結(jié),包括單詞和句子的移動(dòng)命令:

    C-f 向前移動(dòng)一個(gè)字符。
    C-b 向后移動(dòng)一個(gè)字符。

    M-f 向前移動(dòng)一個(gè)單詞。
    M-b 向后移動(dòng)一個(gè)單詞。

    C-n 移動(dòng)到下一行。
    C-p 移動(dòng)到上一行。

    C-a 移動(dòng)到行首。
    C-e 移動(dòng)到行尾。

    M-a 向前移動(dòng)到句子的開頭。
    M-e 向后移動(dòng)到句子的末尾。

    >> 試著對(duì)每一個(gè)命令都實(shí)踐幾次,它們都是經(jīng)常要用到的命令。
    另外兩個(gè)重要的光標(biāo)移動(dòng)命令是M-<(Meta小于),它移動(dòng)光標(biāo)到整個(gè)文本的開頭,M-> (Meta大于)它移動(dòng)光標(biāo)到整個(gè)文本的末尾。
    在多數(shù)終端上,“<”在逗號(hào)的上面,所以你必須用Shift鍵來輸入它。在這些終端上,你也必須用Shift鍵來輸入M-<;沒有Shift鍵,你可以輸入M-逗號(hào)。
    >> 現(xiàn)在就試試M-<,移動(dòng)到本教程的開頭,然后再用C-v移回這里。 現(xiàn)在就試試M->,移動(dòng)到本教程的末尾,然后再用M-v移回這里。

    你也可以用方向鍵來移動(dòng)光標(biāo),如果你的終端有方向鍵的話。我們建議學(xué)習(xí)C-b, C-f,C-n和C-p有三個(gè)原因。第一,它們能在所有類型的終端上工作。第二,你獲得了使用Emacs的鍛煉,你將會(huì)發(fā)現(xiàn)輸入這些CTRL加字符比按方 向鍵要快(因?yàn)槟悴槐匕涯愕氖謴逆I盤上移開)。第三,一旦你養(yǎng)成了使用這些CTRL加字符的命令的習(xí)慣,你就能一樣容易的學(xué)習(xí)其他高級(jí)的光標(biāo)移動(dòng)命令。
    大多數(shù)Emacs命令接收一個(gè)數(shù)字參數(shù);對(duì)大多數(shù)命令來說,這表示命令重復(fù)的次數(shù)。輸入重復(fù)命令次數(shù)的方法是在輸入命令之前按C-u和數(shù)字。如果你有 META(或EDIT或 ALT)鍵,則有另一種方法輸入數(shù)字參數(shù):在按住META鍵的時(shí)候輸入數(shù)字,我們建議學(xué)習(xí)C-u方法,因?yàn)樗茉谌魏谓K端上工作。
    例如,C-u 8 C-f 向前移動(dòng)8個(gè)字符。
    >> 試著使用帶數(shù)字參數(shù)的C-n或C-p,只用一個(gè)命令就把光標(biāo)移動(dòng)到與本行相鄰的 行上。

    絕大多數(shù)命令把數(shù)字參數(shù)當(dāng)作重復(fù)次數(shù),但也有幾個(gè)例外。C-v和M-v就是。當(dāng)給出一個(gè)參數(shù),只是上滾或下滾數(shù)字指定的行數(shù)而不是屏數(shù)。比如,C-u 4 C-v滾動(dòng)4行屏幕。


    >> 現(xiàn)在試試 C-u 8 C-v。
    這將使屏幕滾動(dòng)8行,如果你想往回滾動(dòng)的話,鍵入一個(gè)帶參數(shù)的M-v。
    如果你正在使用X窗口,在Emacs窗口的左手邊有一個(gè)叫做滾動(dòng)條的矩形區(qū)域。你能通過用鼠標(biāo)點(diǎn)擊滾動(dòng)條來滾動(dòng)文本。
    >> 試著在滾動(dòng)條頂部的高亮區(qū)域點(diǎn)擊中鍵。這將使文本滾動(dòng),滾動(dòng)的位置取決于 你點(diǎn)擊的長(zhǎng)短。

    >> 試著按住鼠標(biāo)中鍵上移或下移鼠標(biāo),你將看到當(dāng)你移動(dòng)鼠標(biāo)時(shí)文本會(huì)上下滾動(dòng)。
    * 當(dāng)EMACS掛起時(shí)(WHEN EMACS IS HUNG)
    ------------------------------------------------------------------
    當(dāng)Emacs停止響應(yīng)你的命令時(shí),你能用C-g把它安全的停止。當(dāng)一個(gè)命令執(zhí)行了太長(zhǎng)的時(shí)間時(shí)你可以用C-g把它終止。
    你也可以用C-g來取消數(shù)字參數(shù)和輸入后又不想執(zhí)行的命令。
    >> 鍵入C-u 100 產(chǎn)生一個(gè)值為100的數(shù)字參數(shù),然后按C-g。再按C-f。它只會(huì)移動(dòng) 一個(gè)字符,因?yàn)槟阌肅-g取消了參數(shù)。


    如果錯(cuò)誤的輸入了一個(gè) ,你能用C-g消掉它。
    * 禁止命令(DISABLED COMMAND)
    ----------------------------------------------------
    一些Emacs命令是“禁止”的,所以新手不會(huì)因偶然而執(zhí)行它。
    如果你鍵入了一個(gè)禁止命令,Emacs會(huì)顯示一條消息說明這條命令是干什么的,并且問你是否需要執(zhí)行它。
    如果你真的想要執(zhí)行,敲空格鍵繼續(xù)。通常,如果你不想執(zhí)行禁止命令,用“n”來回答。

    >> 輸入 :(一條禁止命令),然后用n來回答。

    * 窗口(WINDOWS)
    -----------------------------
    Emacs 能有好幾個(gè)窗口,每一個(gè)顯示自己的文本。我們將在后面解釋怎樣對(duì)多窗口操作。現(xiàn)在我們要解釋怎樣去除多余的窗口屏回到基本的單窗口編輯狀態(tài)。這是一個(gè)例子:
    C-x 1 一個(gè)窗口(也就是除去其他所有的窗口)。
    因?yàn)镃ontrol-x跟了數(shù)字1。C-x 1使包含光標(biāo)的窗口占滿整個(gè)屏幕,屏刪除其他所有窗口。
    >> 把光標(biāo)移動(dòng)本行并輸入 C-u 0 C-l。
    >> 鍵入Control-h k Control-f。 看這個(gè)窗口如何縮小,并在按Control-f的時(shí)候出現(xiàn)了一個(gè)新的文檔窗口。
    >> 鍵入C-x 1 并且看到那個(gè)文檔窗口消失了。

    * 插入和刪除(INSERTING AND DELETING)
    ---------------------------------------------------------------
    如果你要插入文本,只須輸入文本。輸入的字符你能見到,比如A,7,*等等。Emacs 會(huì)立即把它們插入。鍵入 (回車鍵)插入一個(gè)換行符。
    你能用 刪除你輸入的最后一個(gè)字符。 就是鍵盤上標(biāo)著“Del”的鍵。在某些情況下,“Backspace”鍵作用和 一樣,但不總是這樣!


    通常, 立即刪除光標(biāo)前面的那個(gè)字符。


    >> 輸入幾個(gè)字符,然后用 刪除它們。不必?fù)?dān)心這個(gè)文件回被改變;你不會(huì) 替換主教程。這只是你的個(gè)人拷貝。

    當(dāng)一行文本太長(zhǎng)而超過屏幕寬度時(shí),這一行會(huì)在屏幕的下一行被“繼續(xù)”。文本的右邊會(huì)有一個(gè)反斜杠“”表示它被繼續(xù)。
    >> 插入文本直到最右邊,然后再插入。你將看到一個(gè)繼續(xù)了的行。
    >> 使用 刪除文本直到行的長(zhǎng)度在屏幕的寬度以內(nèi)。繼續(xù)的行將會(huì)消失。

    你能像刪除其他任何字符一樣刪除換行符。刪除兩個(gè)行間的換行符會(huì)使它們合并為一行。如果這一行很長(zhǎng)屏幕顯示不下的話,將會(huì)用一個(gè)繼續(xù)的行來表示。
    >> 把光標(biāo)移動(dòng)到一行的開頭按 這將使本行和上一行合為一行。
    >> 按 重新插入你刪除的換行符。

    記住大多數(shù)的Emacs命令能接收一個(gè)重復(fù)次數(shù)。這包括文本字符,把一個(gè)文本字符重復(fù)的插入幾次。
    >> 鍵入這個(gè)-- C-u 8 * 來插入 ********

    你現(xiàn)在已經(jīng)學(xué)習(xí)了Emacs的大多數(shù)輸入和排錯(cuò)的方法。你也能一樣的刪除單詞或行。這是刪除操作的摘要:
    刪除光標(biāo)前面的字符
    C-d 刪除光標(biāo)后面的字符
    M- 除去光標(biāo)前面的單詞
    M-d 除去光標(biāo)后面的單詞
    C-k 除去從光標(biāo)位置到行尾的內(nèi)容
    M-k 除去到當(dāng)前句子的末尾
    注意比較 ,C-d與M ,M-d和C-f,M-f( 不是一個(gè)控制字符,但不用擔(dān)心)。C-k和M-k就象C-e,M-e。
    當(dāng)你一次除去不止一個(gè)字符時(shí),Emacs將保存著這些文本,所以你可以恢復(fù)它們。恢復(fù)那些被除去的文本稱作“拉(yanking)”。你能在除去文本的同一地方拉回它們,或是在文本的其他地方。你能對(duì)文本拉上幾次以產(chǎn)生它們的多個(gè)拷貝,拉的命令是 C-y。
    注意“除去(killing)”與“刪除(Deleting)”之間的區(qū)別,被除去的東西能被拉回來,而被刪除的不能。通常除去能除去很多的文本屏保存,而刪除只能除去一個(gè)字符,或是空行或空格,并且不保存。


    >> 把光標(biāo)移到一個(gè)空行的開頭,鍵入C-k除去這一行。
    >> 按第二次C-k,你將看到剩下的空行也被除去了。



    注意單個(gè)的C-k除去行的內(nèi)容,第二個(gè)C-k除去行本身,并且使后面的所有行上移。特別要注意數(shù)字參數(shù):它除去很多行和它們的內(nèi)容,這不僅僅是重復(fù)。C-u 2 C-k 除去兩行和它們剩下的空行;而按兩次C-k并不會(huì)這樣做。


    要在當(dāng)前光標(biāo)處找回上次被除去的文本;按C-y


    >> 試一試,用C-y把文本拉回來。



    把C-y考慮為你把某人從你這里拿走的東西再拿回來。注意你如果在一行上按了幾次 C-y,所有被除去的文本是存在一起的,所以按一次C-y將拉回全部的行。


    >> 現(xiàn)在就試一下,按幾次C-k。 現(xiàn)在找回被除去的文本;


    >> 按C-y。然后把光標(biāo)下移幾行再按一次C-y,你現(xiàn)在會(huì)看到怎樣拷貝這些文本。



    當(dāng)你要拉回一些被除去的文本該怎樣做呢?C-y只能拉回最近被除去的文本。但以前的文本并沒有消失。你能用M-y來恢復(fù)它。當(dāng)你用C-y拉回最近被除去的 文本后,換成 M-y可以拉回以前被除去的文本。鍵入一次又一次的M-y可以拉回更早以前被除去的文本。當(dāng)你找到要尋找的文本,不必做任何事來保持它,只須離開拉文本的 地方繼續(xù)你的編輯。


    如果你M-y了足夠多的次數(shù),你會(huì)回到開始點(diǎn)(最近被除去的)。


    >> 除掉一行,移開,再除掉另一行。 然后用C-y拉回第二行。 然后換成M-y拉回被除掉的第一行。 再按一次M-y看看得到了什么。繼續(xù)按直到拉回被除去的第二行;然后再做幾次。 如果原意的話,你可以給M-y加正的或負(fù)的數(shù)字參數(shù)。





    * 撤銷(UNDO)
    --------------------



    如果你對(duì)文本作了一些改動(dòng),然后又發(fā)現(xiàn)這樣做是錯(cuò)誤的,你能用撤銷命令,C-x u 撤銷這些改變。


    通常,一次C-x u撤銷一個(gè)改變;如果你在一行上重復(fù)幾次C-x u,就會(huì)重復(fù)幾次撤銷操作。


    但有兩個(gè)例外:不改變文本的操作(包括光標(biāo)移動(dòng)和滾屏命令)不算在內(nèi);只能處理20 次。


    >> 用C-k除去這一行,然后按C-x u 它將重現(xiàn)出來。



    C-_是一個(gè)可選擇的撤銷命令;它所作的工作和C-x u 完全一樣,只是更容易輸入。 C-_的缺點(diǎn)是有些鍵盤上沒有它,這就是為什么還提供C-x u的原因。在某些終端上你可以按住CTRL的時(shí)候再敲/來輸入C-_。C-_或C-x u把數(shù)參數(shù)字當(dāng)作重復(fù)次數(shù)。


    * 文件(FILES)
    -------------------

    為了永久保存你編輯的文本,你必須把它放到一個(gè)文件里。否則當(dāng)你退出Emacs的時(shí)候它就會(huì)消失。你通過“查找(finding)”文件,把你編輯的內(nèi)容放到文件里。(也稱為 “訪問(visiting)文件”)。


    (譯注:為了保持與原文的一致性,把find譯為“查找”,但是這里和后面出現(xiàn)的 “查找文件”指的都是打開文件的意思。)


    查找(finding)一個(gè)文件意味著你在Emacs里看文件的內(nèi)容,在多數(shù)情況下,也就是你在編輯它。但是,你用Emacs對(duì)它作的改變并不是永久行 的,除非你“保存(saving)” 它。所以你可以避免把一個(gè)改了一半的文件留在系統(tǒng)上。甚至你保存了文件,Emacs也會(huì)把原始文件換個(gè)名字保留下來,以防過后你發(fā)現(xiàn)對(duì)文件的改動(dòng)是錯(cuò)誤 的。


    如果你觀察屏幕的你將看見一個(gè)開始和結(jié)尾都是破折號(hào)的行,并且以“--:**-- TUTORIAL”或之類的東西開始。屏幕的這部分通常顯示你正在訪問的文件的名字。現(xiàn)在,一個(gè)叫做“TUTORAL”的文件,它是你的Emacs教程的 個(gè)人拷貝。當(dāng)你用Emacs 查找一個(gè)文件,文件名會(huì)出現(xiàn)在同樣的位置。


    查找和保存文件命令不像前面學(xué)的那些命令。它們都以字符Control-x開始。以 Control-x起頭的是一個(gè)完整的命令系列;它們中的許多都是對(duì)文件,緩沖,和相關(guān)的東西進(jìn)行操作的。這些命令有兩個(gè),三個(gè)或四個(gè)字符長(zhǎng)。


    關(guān)于查找文件命令的另一件事是你必須給出你需要的文件的文件名。我們說這個(gè)命令 “從終端讀取一個(gè)參數(shù)”。(在這種情況下,參數(shù)是文件的名字);當(dāng)你鍵入命令C-x C-f后,Emacs會(huì)提示你輸入文件的名字。你輸入的文件名會(huì)出現(xiàn)在屏幕底部的行上。這個(gè)底部的行稱為微型緩沖(minibuffer)用于這類較短的 輸入。你能用Emacs本身的編輯命令來編輯文件名。


    當(dāng)你正在輸入文件名(或其他任何微型緩沖區(qū)輸入),你能用命令C-g來取消。


    >> 鍵入命令C-x C-f,然后輸入C-g。這將取消微型緩沖,也取消了C-x C-f命令所使 用的微型緩沖,所以你不查找任何文件。



    當(dāng)你輸完文件名后用 來結(jié)束。然后C-x C-f開始工作,并開始尋找你所選擇的文件。當(dāng)C-x C-f命令結(jié)束后微型緩沖區(qū)也消失了。


    過一小會(huì)兒文件的內(nèi)容就會(huì)顯示在屏幕上,然后你就能對(duì)它進(jìn)行編輯了。當(dāng)想永久保留你的改動(dòng)時(shí)用命令:


    C-x C-s 保存文件(save the file)。


    這個(gè)操作會(huì)把Emacs里的文本拷貝到文件里。在你第一次作的時(shí)候,Emacs把原始文 件改為一個(gè)新名字以使它不至于丟失。新名字是在原來名字的后面加一個(gè)“~”。


    保存結(jié)束后,Emacs打印出被寫的文件的文件名。你應(yīng)當(dāng)經(jīng)常的保存,萬一系統(tǒng)崩潰 的話你不至于丟失太多的工作。


    >> 鍵入C-x C-s來保存你的教程的拷貝。屏幕的底部會(huì)打印出“Wrote.....TUTORIAL”。



    注意:在某些系統(tǒng)上,輸入C-x C-s 會(huì)把屏幕凍結(jié)住使你從Emacs看不到更多的輸出。這 表示這個(gè)操作系統(tǒng)的“特性”叫做“控制流程”,它攔截了C-x不讓它到達(dá)Emacs那里。 要使屏幕解凍,輸入C-q,然后看Emacs手冊(cè)里的“Spontaneous Entry to Incremental Search”一節(jié),按上面的建議來對(duì)付這種“特性”。


    你能查找一個(gè)已存在的文件,來查看它或編輯它。你也可以查找一個(gè)尚未存在的文件。這是 Emacs:里創(chuàng)建文件的方法:查找文件,將會(huì)出現(xiàn)一個(gè)空白,然后插入文件的文本。當(dāng)你 “保存(saving)”的時(shí)候,Emacs將會(huì)用你插入的文本創(chuàng)建文件。從那時(shí)候起,你可以認(rèn)為你在編輯一個(gè)存在的文件了。




    * (緩沖)BUFFERS
    --------------------------



    如果你用C-x C-f查找第二個(gè)文件,第一個(gè)文件仍然留在Emacs里。你可以再用C-x C-f查找一次來切換回去。用這種方法你在Emacs里有很多文件。


    >> 輸入C-x C-f foo 來建立一個(gè)名為foo的文件。然后插入一些文本,編輯它,并 用C-x C-s來保存“foo”。 最后輸入C-x C-f TUTORIAL 以回到本教程。




    Emacs把每個(gè)文件的文本都保存在一個(gè)叫“緩沖(buffer)”的東西里。查找(打開)一個(gè)文件就會(huì)在Emacs里產(chǎn)生一個(gè)新的緩沖。要看你當(dāng)前運(yùn)行的Emacs里存在的緩沖列表,輸入:


    C-x C-b 列出緩沖(list buffers)


    >> 輸入 C-x C-b



    觀察每個(gè)緩沖都有一個(gè)名字,它可能也有一個(gè)它所保存的文件的文件名。一些緩沖不對(duì)應(yīng)文件。比如,叫“*Buffers List*”的緩沖沒有任何文件。這個(gè)緩沖只包含由C-x C-b產(chǎn)生的緩沖列表。你在Emacs窗口里看到的任何文本都是某個(gè)緩沖的一部分。


    >> 輸入 C-x 1 消除緩沖列表。



    如果你對(duì)一個(gè)文件的文本作了改動(dòng),然后查找另一個(gè)文件,第一個(gè)文件并不保存。它的改變保存在Emacs里,在那個(gè)文件的緩沖里。被建立或編輯的第二個(gè)文件 的緩沖并不影響第一個(gè)的。這一點(diǎn)很有用,但這也意味著要有一個(gè)便捷的方法來保存第一個(gè)文件的緩沖。如果要用 C-x C-f切換回去只是為了按C-x C-s保存它將會(huì)是一件令人討厭的事。所以我們用


    C-x s 保存緩沖(save the buffer)


    C-x s 向你詢問每個(gè)改動(dòng)過但未存盤的緩沖,對(duì)每個(gè)這樣的緩沖都詢問是否保存。


    >> 插入一行文本,然后按C-x s。 將會(huì)問你是否保存叫TUTORIAL的緩沖。 輸入“y”來回答是。





    * 擴(kuò)展命令集(EXTENDING THE COMMAND SET)
    -----------------------------------------------------------------------



    有太多的Emacs命令,大大超過了Contorl和meta加上字符所能表示的數(shù)量。Emacs用X(擴(kuò)展 eXtand)命令來解決這個(gè)問題。有兩種風(fēng)格:


    C-x 字符擴(kuò)展,后跟一個(gè)字符。
    M-x 名字命令擴(kuò)展,后跟一個(gè)長(zhǎng)名字。


    這些命令通常有用,但不如你已經(jīng)學(xué)過的那些命令使用的頻繁。你已經(jīng)見過了它們中的兩個(gè):文件命令C-x C-f 用于查找和C-x C-s用于保存。


    另一個(gè)例子是結(jié)束Emacs的命令C-x C-c(不必?fù)?dān)心你所作的改動(dòng)會(huì)丟失,在退出Emacs 之前,C-x C-c會(huì)提示你保存每一個(gè)改動(dòng)過的文件)。


    C-z命令用于*臨時(shí)*退出Emacs,所以你能回到原來運(yùn)行的Emacs里。在允許這樣做的系統(tǒng)上,C-z把Emacs“掛起”;就是說回到外殼(shell)下,但并不破壞運(yùn)行的Emacs。在大多數(shù)外殼上,你能用‘fg'命令或‘%emacs'來繼續(xù)Emacs。


    在不支持掛起的系統(tǒng)上,C-z建立一個(gè)子外殼(subshell)運(yùn)行于Emacs下以使你能運(yùn)行其他程序然后回到Emacs;這并不是真正的“退出” Emacs。在這種情況下,通常從子外殼回到Emacs的外殼命令是‘exit'。 有很多C-x 命令,這是已學(xué)過的一個(gè)列表:


    C-x C-f 查找文件
    C-x C-s 保存文件
    C-x C-b 緩沖列表
    C-x C-c 退出Emacs


    C-x u 撤銷操作


    被稱作擴(kuò)展命令的命令的使用頻率都不太高。或者是只在某些模式下使用。一個(gè)例子是替換字符串的命令,它在全文里把字符串替換為其他的。當(dāng)你鍵入M-x, Emacs會(huì)在屏幕的底部提示你輸入命令;在這種情況下,是“replace-string”。比如輸入“repl s ”, Emacs會(huì)把命令補(bǔ)全。用 來結(jié)束命令。


    替換字符串命令要求兩個(gè)參數(shù)--要被替換的字符串和用來替換的字符串。你必須用 來結(jié)束兩個(gè)參數(shù)。


    >> 把光標(biāo)移上兩行,然后輸入M-x repl s changed altered 。 注意現(xiàn)在這一行改變了:你把光標(biāo)初始位置后的所有單詞c-h-a-n-g-e-d替換為了 “altered”





    * 自動(dòng)保存(AUTO SAVE)
    ------------------------------------



    當(dāng)你改動(dòng)了一個(gè)文件還未存盤的話,所作的改動(dòng)也許會(huì)由于系統(tǒng)崩潰而丟失。為防止這種情況發(fā)生,Emacs在編輯時(shí)為每個(gè)文件提供了“自動(dòng)保存(auto save)”。自動(dòng)保存的文件的文件名前后都有一個(gè)#號(hào);例如,如果你編輯的文件名叫“hello.c”,自動(dòng)保存的文件的文件名就叫 “#hello.c#”。當(dāng)你正常的保存了文件后,Emacs會(huì)刪除這個(gè)自動(dòng)保存的文件。如果遇到死機(jī),你能打開那個(gè)文件后按M-x recover file 來恢復(fù)你的編輯,(是你編輯的文件而不是自動(dòng)保存的文件)。當(dāng)提示確認(rèn)時(shí),輸入yes 來繼續(xù)恢復(fù)自動(dòng)保存的數(shù)據(jù)。




    * 回顯區(qū)域(ECHO AREA)
    ------------------------------------



    如果Emacs發(fā)現(xiàn)你輸入命令的速度很慢的話它會(huì)在屏幕底部為你顯示出來,這個(gè)區(qū)域叫 “回顯區(qū)域”。




    * 模式行(MODE LINE)
    ---------------------------------



    回顯區(qū)域上面的一行稱為“模式行(mode line)”。模式行顯示與下面類似的東西:


    --**-Emacs: TUTORIAL (Fundamental)--L670--58%----------------


    這一行給出了有關(guān)你在編輯的文件和Emacs狀態(tài)的有用信息。


    你已經(jīng)知道了文件名意味著什么。--NN%--指出你現(xiàn)在在文本里的位置;它意味著上面還有NN%的文本。如果是在文件的開頭,會(huì)用--Top-- 來代替--0%--。如果是在行的末尾,會(huì)顯示--Bot--。如果你正在看的文本內(nèi)容很少,可以全部顯示在屏幕上,模式行會(huì)說 --All--。


    前面的星號(hào)表示你已經(jīng)改動(dòng)過文本了。一旦你保存了文件或打開了一個(gè)新文件,模式行的這部分就不是星號(hào)而是破折號(hào)了。


    模式行上括號(hào)里的部分是現(xiàn)在的編輯模式。現(xiàn)在是缺省的基本(Fundamental)模式。它是 “主模式(major mode)”的一種。


    Emacs有很多不同的主模式。有些意味著不同的語言或不同的文本。如Lisp模式(Lisp mode),文本模式(text mode)等等。在任何時(shí)候有且只能有一種主模式被激活。并且它的名字會(huì)出現(xiàn)在現(xiàn)在顯示“Fundamental”的位置上。


    每一個(gè)主模式都有些自己的命令。就象不同的編程語言的注釋看起來不同一樣。每種主模式插入的注釋也不同。可以用擴(kuò)展命令切換進(jìn)某種主模式。例如,M-x fundamental-mode 是切換進(jìn)基本模式。


    >> 輸入 M-x text-mode



    不必?fù)?dān)心,沒有命令會(huì)給Emacs帶來很大改變。但是你可以看到現(xiàn)在M-f和M-b把省略號(hào)當(dāng)作單詞的一部分。而先前,在基本模式里,M-f 和M-b把省略號(hào)當(dāng)成當(dāng)成分隔符。


    主模式通常作諸如此類微小的變化:大多數(shù)命令在每個(gè)主模式里作“同樣的工作”,但又有些微小的不同。


    要觀看關(guān)于你現(xiàn)在的主模式的文檔,按C-h m。


    >> 鍵入C-u C-v一次和多次使本行接近屏幕的頂端。
    >> 輸入C-h m ,看看文本模式和基本模式有些什么不同。
    >> 按C-x 1 從屏幕上關(guān)掉這個(gè)文檔。



    主模式之所以叫做主模式是因?yàn)橐泊嬖趶哪J剑瑥哪J脚c主模式完全不同。每個(gè)從模式可以自己打開或者關(guān)閉,獨(dú)立于所有其他從模式,也獨(dú)立于你的主模式。所以你可以不用從模式或者同時(shí)用很多種從模式。


    有一種從模式很有用,特別是在編輯英文文本時(shí)。它是自動(dòng)填充模式(auto fill mode)。當(dāng)這個(gè)模式打開的時(shí)候,當(dāng)輸入的文本過寬的時(shí)候就會(huì)自動(dòng)折行。


    你能用M-x auto-fill-mode 來打開自動(dòng)填充模式。如果此模式已經(jīng)打開M-x auto- fill-mode 則把它關(guān)閉。我們把這叫做切換開關(guān)。


    >> 輸入M-x auto-fill-mode 。然后插入一些“asdf”直到看到這行被分為兩行。你必須在中間放一些空格,只有到空格的時(shí)候才會(huì)換行。



    通常邊界寬度是70,但你能用帶數(shù)字參數(shù)的C-x f 命令來改變它。


    >> 鍵入帶參數(shù)20的C-x。(C-u 20 C-x f) 然后輸入一些文本看現(xiàn)在每行只有20個(gè)字符了。然后用C-x f把它改回70。



    如果你在一個(gè)段落的中間產(chǎn)生了改變,自動(dòng)填充模式將不會(huì)重新填充。要想重新填充段落,當(dāng)光標(biāo)在段落里的時(shí)候按M-q。


    >> 把光標(biāo)移到上一段按 M-q。

    * 搜索(SEARCHING)
    -----------------------------

    Emacs 能朝前和朝后搜索字符串(指相鄰的一些字符或單詞)。搜索是一個(gè)移動(dòng)光標(biāo)的操作,它把光標(biāo)移動(dòng)到字符串出現(xiàn)的下一個(gè)地方。


    Emacs 的搜索命令和其他大多數(shù)編輯器不同,它是“增量式(incremental)”的,這意味著搜索在你鍵入字符串時(shí)就開始了。


    開始一個(gè)向前搜索的命令是C-s,C-r是往回搜索。但等等,先別忙。


    當(dāng)你輸入C-s是你將注意到在回顯區(qū)域會(huì)出現(xiàn)一個(gè)字符串“I-search”。這告訴你Emacs開始了一個(gè)增量搜索,并在等待你輸入要搜索的東西。 結(jié)束查詢。


    >> 現(xiàn)在鍵入C-s開始一個(gè)搜索。慢慢的輸入單詞‘cousor',在輸入每一個(gè)字母的時(shí)候停頓一 下,注意看光標(biāo)發(fā)生了什么。
    >> 再輸入一次C-s,來搜索“cursor”出現(xiàn)的下一個(gè)地方。
    >> 現(xiàn)在輸入 四次看看光標(biāo)移到了哪里。
    >> 輸入 結(jié)束搜索。


    看到發(fā)生什么了嗎?在Emacs的增量搜索里,你輸入多少字符串它就試著搜索這些字符出現(xiàn)的地方。到字符串出現(xiàn)的下一個(gè)地方,只須再按一次C-s。要搜索 的字符串不存在的話,Emacs 會(huì)發(fā)出蜂鳴并告訴你當(dāng)前的搜索“失敗(failing)”,按 C-g 也是終止搜索。


    注意:在某些系統(tǒng)上,輸入 C-s 會(huì)把屏幕凍結(jié)住使你從Emacs看不到更多的輸出。這 表示這個(gè)操作系統(tǒng)的“特性”叫做“控制流程”,它攔截了C-s不讓它到達(dá)Emacs那里。 要使屏幕解凍,輸入C-q,然后看Emacs手冊(cè)里的“Spontaneous Entry to Incremental Search”一節(jié),按上面的建議來對(duì)付這種“特性”。
    如果你在搜索的過程里按了 ,你將注意到要搜索的字符串的最后一個(gè)字符會(huì)被刪除并且光標(biāo)會(huì)回到上一個(gè)被搜索到的地方。比如,假設(shè)你鍵入了“c”,將會(huì)搜索“c”第一次出現(xiàn)的地方。然 后如果你鍵入“u”,光標(biāo)將移到“ cu”第一次出現(xiàn)的地方。現(xiàn)在鍵入 。這將從搜索的字符串里把“u”刪掉,這時(shí)光標(biāo)回到“c”第一次出現(xiàn)的地方。


    如果你在搜索時(shí)按了Control或meta鍵加字符(少數(shù)幾個(gè)少數(shù)命令例外,如C-s和C-r),搜索將被終止。


    C-s向當(dāng)前光標(biāo)的后面搜索字符串出現(xiàn)的地方。如果你需要搜索前面文本里的東西,用C-r來代替。我們所介紹的C-s的每個(gè)特性C-r也支持,除了方向相反。


    * 多窗口(MULTIPLE WINDOWS)
    ------------------------------------------------


    Emacs有一個(gè)非常好的特性是能同時(shí)在屏幕上顯示不止一個(gè)的窗口。


    >> 把光標(biāo)移到本行上按C-u 0 C-l。


    >> 現(xiàn)在按C-x 2,它把屏幕分裂成兩個(gè)窗口,每個(gè)窗口都顯示本教程。光標(biāo)在上面的窗口里。


    >> 按C-M-v 滾動(dòng)到下面的窗口里。(如果你沒有一個(gè)真正的Meta鍵,那么按ESC C-v)

    >> 按 C-x o (“o” 指 “其他(other)”) 把光標(biāo)移到到下面的窗口里。
    >> 用 C-v 和 M-v 滾動(dòng)下面窗口里的文本。 在上面的窗口里看本教程。


    >> 再次按 C-x o 使光標(biāo)回到上面的窗口里。 現(xiàn)在光標(biāo)象以前一樣在上面的窗口里了。



    你能一直用C-x o在窗口間切換。每個(gè)窗口都有它自己的光標(biāo)位置,但僅有一個(gè)窗口能顯示活動(dòng)的光標(biāo)。所有的編輯命令都發(fā)生在那個(gè)顯示光標(biāo)的窗口上。我們把這個(gè)窗口叫做“選中窗口( selected window)”。


    當(dāng)你在一個(gè)窗口里編輯文本,而用另一個(gè)窗口作參考時(shí)命令C-M-v非常有用。你總是能把光標(biāo)留在所編輯的地方,而用C-M-v來翻閱另一窗口。


    C-M-v 是 CONTROL-META 加字符的一個(gè)例子。 如果你有一個(gè)真正的META 鍵,你能同時(shí)按住 CTRL 和 META 再按“v”來輸入C-M-v。CTRL 和 META 誰先按誰后按無所謂。


    如果你沒有一個(gè)真正的META 鍵, 你可以用 ESC 來代替。這時(shí)候次序是有關(guān)系的: 你必須讓 ESC 跟在 CTRL-v后面; 否則 CTRL-ESC v 將不工作。 這是因?yàn)?ESC 是一個(gè)有意義的字符而不是一個(gè)修飾字符。


    >> 輸入 C-x 1 (在上面的窗口里) 以消除下面的窗口。



    (如果你在下面的窗口里鍵入C-x 1,將會(huì)把上面的窗口去掉。可以把這個(gè)命令看作是“只保留你現(xiàn)在在的那個(gè)窗口。)


    你不必一定要在兩個(gè)窗口里顯示同樣的緩沖。如果你在一個(gè)窗口里鍵入C-x C-f查找文件,另一個(gè)窗口的內(nèi)容不會(huì)改變。你能獨(dú)立的在每個(gè)窗口里查找文件。


    這是讓兩個(gè)窗口顯示不同內(nèi)容的另一種方法:


    >> 在你輸入的文件名后再輸入C-x 4 C-f,然后用 結(jié)束。會(huì)看到指定的文件出現(xiàn)在下面 的窗口里。光標(biāo)也在那里面。


    >> 鍵入C-x o 回到上面的窗口,然后輸入C-x 1刪掉下面的窗口。



    * 遞歸編輯層(RECURSIVE EDITING LEVELS)
    ----------------------------------------------------------------

    有時(shí)候你會(huì)進(jìn)入“遞歸編輯層(recursive editing level)”。由模式行上的方括號(hào)指示。它在主模式名的括號(hào)外面。例如你也許會(huì)看到(Fundamental)變成了[(Fundamental)]。


    要退出遞歸編輯層,按ESC ESC ESC。這是一個(gè)通用的退出命令,你也可以用它除去額外的窗口,或者退出微型緩沖。


    >> 輸入 M-x 進(jìn)入一個(gè)微型緩沖; 然后用 ESC ESC ESC 離開。

    你不能用C-g來退出遞歸編輯層。這是因?yàn)镃-g只能取消在遞歸編輯層里面的命令。


    * 獲取更多的幫助(GETTING MORE HELP)
    --------------------------------------------------------------

    在本教程里我們?cè)囍鵀槟汩_始使用Emacs提供了足夠多的信息。但是有關(guān)Emacs的信息實(shí)在是太多以至于不能全部都在這里說明。但是,你還應(yīng)該學(xué)習(xí)更多 有關(guān)Emacs的東西,因?yàn)樗硗膺€有很多有用的特性。Emacs提供了很多讀取有關(guān)命令的文檔的命令。這些“幫助”命令都以 Control-h開頭,叫做“幫助字符”。


    為了使用幫助特性,輸入字符C-h,然后再輸入一個(gè)字符來說明你需要哪種幫助。如果你真的不知道,輸入C-h ? 然后 Emacs會(huì)告訴你它能給你什么樣的幫助。如果你輸入了C-h 又覺得不需要任何幫助,你可以用C-g來取消它。


    (在有的地方,C-h的作用被改變了。如果按C-h在屏幕的底部沒有出現(xiàn)有關(guān)幫助的信息的話,試試用F1和M-x help RET來代替。)


    最基本的幫助特性是C-h c。輸入C-h,然后是字符 c,然后輸入一個(gè)命令字符和序列;然后 Emacs 會(huì)顯示這個(gè)命令的簡(jiǎn)潔的描述。


    >> 輸入 C-h c Control-p.

    顯示的消息看起來會(huì)象這樣:


    C-p runs the command previous-line


    這告訴你“功能的名字”。功能的名字主要用于對(duì)Emacs的功能擴(kuò)充和定制。但因?yàn)楣δ艿拿种赋隽嗣畹挠猛荆宰詈貌灰膭?dòng)它。


    C-h c后面可跟多字符命令,比如 C-x C-s 和 (如果你沒有 META 或者 EDIT 或者 ALT 鍵) v 。


    要獲取有關(guān)命令的更多信息,用C-h k 代替 C-h c。


    >> 輸入 C-h k Control-p.



    這將在一個(gè)Emacs窗口里顯示命令的文檔。當(dāng)你讀完后可以用C-x 1除去幫助文本。如果不想馬上離開,你可以一邊編輯一邊參考幫助文本,然后再按C-x 1。


    這是一些有用的 C-h 選項(xiàng):


    C-h f 描述一個(gè)功能,在你輸入了這個(gè)功能的名字后。

    >> 輸入 C-h f previous-line 。 將打印出C-p命令所實(shí)現(xiàn)的所有功能。



    C-h a 命令查找。輸入一個(gè)關(guān)鍵字,Emacs將列出所有名字里有這個(gè)關(guān)鍵字的命令。 包括所有以Meta-x開始的命令。對(duì)有些命令,C-h a 也將列出實(shí)現(xiàn)同一功能的 幾個(gè)命令序列。


    >> 輸入 C-h a file .




    這將在窗口里顯示所有名字里有單詞“file”的M-x命令。


    >> 輸入 C-M-v 來滾動(dòng)幫助窗口,做上幾次。


    >> 輸入 C-x 1 來刪除幫助窗口。





    * 總結(jié)(CONCLUSION)
    --------------------------------

    記住,永遠(yuǎn)都用C-x C-c來退出Emacs。用C-z來退到一個(gè)臨時(shí)的外殼里,以使你過后還能回到 Emacs。
    本教程盡量讓所有的初學(xué)者都能理解,如果你發(fā)現(xiàn)有些東西不清楚的話,別責(zé)備你自己-抱怨吧!

    posted @ 2007-06-29 09:07 笨蛋啊帆 閱讀(915) | 評(píng)論 (0)編輯 收藏


    2007年6月12日

    理解finalize()-析構(gòu)函數(shù)的替代者

    by Tim Gooch

    在許多方面,Java 類似于 C++。Java 的語法非常類似于 C++,Java 有類、方法和數(shù)據(jù)成員;Java 的類有構(gòu)造函數(shù); Java 有異常處理。

    但是,如果你使用過 C++ 會(huì)發(fā)現(xiàn) Java 也丟掉一些可能是你熟悉的特性。這些特性之一就是析構(gòu)函數(shù)。取代使用析構(gòu)函數(shù),Java 支持finalize() 方法。

    在本文中,我們將描述 finalize() 與 C++ 析構(gòu)函數(shù)的區(qū)別。另外,我們將創(chuàng)建一個(gè)簡(jiǎn)單的 Applet 來演示 finalize() 是如何工作的。

    最終的界限

    與 Java 不同,C++ 支持局部對(duì)象(基于棧)和全局對(duì)象(基于堆)。因?yàn)檫@一雙重支持,C++ 也提供了自動(dòng)構(gòu)造和析構(gòu),這導(dǎo)致了對(duì)構(gòu)造函數(shù)和析構(gòu)函數(shù)的調(diào)用,(對(duì)于堆對(duì)象)就是內(nèi)存的分配和釋放。

    在 Java 中,所有對(duì)象都駐留在堆內(nèi)存,因此局部對(duì)象就不存在。結(jié)果,Java 的設(shè)計(jì)者覺得不需要析構(gòu)函數(shù)(象 C++ 中所實(shí)現(xiàn)的)。

    取而代之,Java 定義了一個(gè)特殊的方法叫做finalize() ,它提供了 C++ 析構(gòu)函數(shù)的一些功能。但是,finalize() 并不完全與 C++ 的析構(gòu)函數(shù)一樣,并可以假設(shè)它會(huì)導(dǎo)致一系列的問題。finalize() 方法作用的一個(gè)關(guān)鍵元素是 Java 的垃圾回收器。

    垃圾回收器

    在 C/C++、Pascal和其他幾種多種用途的編程語言中,開發(fā)者有責(zé)任在內(nèi)存管理上發(fā)揮積極的作用。例如,如果你為一個(gè)對(duì)象或數(shù)據(jù)結(jié)構(gòu)分配了內(nèi)存,那么當(dāng)你不再使用它時(shí)必須釋放掉該內(nèi)存。

    在 Java 中,當(dāng)你創(chuàng)建一個(gè)對(duì)象時(shí),Java 虛擬機(jī)(JVM)為該對(duì)象分配內(nèi)存、調(diào)用構(gòu)造函數(shù)并開始跟蹤你使用的對(duì)象。當(dāng)你停止使用一個(gè)對(duì)象(就是說,當(dāng)沒有對(duì)該對(duì)象有效的引用時(shí)),JVM 通過垃圾回收器將該對(duì)象標(biāo)記為釋放狀態(tài)。

    當(dāng)垃圾回收器將要釋放一個(gè)對(duì)象的內(nèi)存時(shí),它調(diào)用該對(duì)象的finalize() 方法(如果該對(duì)象定義了此方法)。垃圾回收器以獨(dú)立的低優(yōu)先級(jí)的方式運(yùn)行,只有當(dāng)其他線程掛起等待該內(nèi)存釋放的情況出現(xiàn)時(shí),它才開始運(yùn)行釋放對(duì)象的內(nèi)存。(事實(shí)上,你可以調(diào)用System.gc() 方法強(qiáng)制垃圾回收器來釋放這些對(duì)象的內(nèi)存。)

    在以上的描述中,有一些重要的事情需要注意。首先,只有當(dāng)垃圾回收器釋放該對(duì)象的內(nèi)存時(shí),才會(huì)執(zhí)行finalize()。如果在 Applet 或應(yīng)用程序退出之前垃圾回收器沒有釋放內(nèi)存,垃圾回收器將不會(huì)調(diào)用finalize()。

    其次,除非垃圾回收器認(rèn)為你的 Applet 或應(yīng)用程序需要額外的內(nèi)存,否則它不會(huì)試圖釋放不再使用的對(duì)象的內(nèi)存。換句話說,這是完全可能的:一個(gè) Applet 給少量的對(duì)象分配內(nèi)存,沒有造成嚴(yán)重的內(nèi)存需求,于是垃圾回收器沒有釋放這些對(duì)象的內(nèi)存就退出了。

    顯然,如果你為某個(gè)對(duì)象定義了finalize() 方法,JVM 可能不會(huì)調(diào)用它,因?yàn)槔厥掌鞑辉尫胚^那些對(duì)象的內(nèi)存。調(diào)用System.gc() 也不會(huì)起作用,因?yàn)樗鼉H僅是給 JVM 一個(gè)建議而不是命令。

    finalize() 有什么優(yōu)點(diǎn)呢?

    如果finalize() 不是析構(gòu)函數(shù),JVM 不一定會(huì)調(diào)用它,你可能會(huì)疑惑它是否在任何情況下都有好處。事實(shí)上,在 Java 1.0 中它并沒有太多的優(yōu)點(diǎn)。

    根據(jù) Java 文檔,finalize() 是一個(gè)用于釋放非 Java 資源的方法。但是,JVM 有很大的可能不調(diào)用對(duì)象的finalize() 方法,因此很難證明使用該方法釋放資源是有效的。

    Java 1.1 通過提供一個(gè)System.runFinalizersOnExit() 方法部分地解決了這個(gè)問題。(不要將這個(gè)方法與 Java 1.0 中的System.runFinalizations() 方法相混淆。)不象System.gc() 方法那樣,System.runFinalizersOnExit() 方法并不立即試圖啟動(dòng)垃圾回收器。而是當(dāng)應(yīng)用程序或 Applet 退出時(shí),它調(diào)用每個(gè)對(duì)象的finalize() 方法。

    正如你可能猜測(cè)的那樣,通過調(diào)用System.runFinalizersOnExit() 方法強(qiáng)制垃圾回收器清除所有獨(dú)立對(duì)象的內(nèi)存,當(dāng)清除代碼執(zhí)行時(shí)可能會(huì)引起明顯的延遲。現(xiàn)在建立一個(gè)示例 Applet 來演示 Java 垃圾回收器和finalize() 方法是如何相互作用的。

    回收垃圾

    通過使用Java Applet Wizard 創(chuàng)建一個(gè)新的 Applet 開始。當(dāng)提示這樣做時(shí),輸入 final_things 作為 Applet 名,并選擇不要生成源文件注釋。

    接下來,在Java Applet Wizard 進(jìn)行第三步,不要選擇多線程選項(xiàng)。在第五步之前,根據(jù)需要修改 Applet 的描述。

    當(dāng)你單擊Finish 后,Applet Wizard 將生成一個(gè)新的工作空間,并為該項(xiàng)目創(chuàng)建缺省的 Java 文件。從列表 A 中選擇適當(dāng)?shù)拇a輸入(我們已經(jīng)突出顯示了你需要輸入的代碼)。

    當(dāng)你完成代碼的輸入后,配置Internet 瀏覽器將System.out 的輸出信息寫到Javalog.txt 文件中。(在IE 選項(xiàng)對(duì)話框的高級(jí)頁面中選擇起用 Java Logging。)

    編譯并運(yùn)行該 Applet。然后,等待 Applet 運(yùn)行(你將在狀態(tài)欄中看到 Applet 已啟動(dòng)的信息),退出瀏覽器,并打開Javalog.txt 文件。你將會(huì)發(fā)現(xiàn)類似于下列行的信息:

            1000 things constructed

            0 things finalized

    正如你能夠看到的那樣,建立了1,000個(gè)對(duì)象仍然沒有迫使垃圾回收器開始回收空間,即使在 Applet 退出時(shí)也沒有對(duì)象被使用。

    現(xiàn)在,刪除在stop() 方法第一行中的注釋符以起用System.gc() 方法。再次編譯并運(yùn)行該 Applet ,等待 Applet 完成運(yùn)行,并退出瀏覽器。當(dāng)你再次打開Javalog.txt 文件,你將看到下列行:

            1000 things constructed

            963 things finalized

    這次,垃圾回收器認(rèn)為大多數(shù)對(duì)象未被使用,并將它們回收。按順序,當(dāng)垃圾回收器開始釋放這些對(duì)象的內(nèi)存時(shí),JVM 調(diào)用它們的finalize() 方法。

    繼承finalize()?

    順便,如果你在類中定義了finalize() ,它將不會(huì)自動(dòng)調(diào)用基類中的方法。在我們討論了finalize() 與 C++ 的析構(gòu)函數(shù)的不同點(diǎn)后,對(duì)這個(gè)結(jié)論不會(huì)驚訝,因?yàn)闉槟硞€(gè)類定制的清除代碼另一個(gè)類不一定會(huì)需要。

    如果你決定要通過派生一個(gè)類的finalize() 方法來調(diào)用基類中的finalize() 方法,你可以象其他繼承方法一樣處理。

            protected void finalize()

            {

              super.finalize();

              // other finalization code...

            }

    除了允許你控制是否執(zhí)行清除操作外,這個(gè)技術(shù)還使你可以控制當(dāng)前類的finalize() 方法何時(shí)執(zhí)行。

    結(jié)論

    然而有益的是,Java 的自動(dòng)垃圾回收器不會(huì)失去平衡。作為便利的代價(jià),你不得不放棄對(duì)系統(tǒng)資源釋放的控制。不象 C++ 中的析構(gòu)函數(shù),Java Applet 不會(huì)自動(dòng)執(zhí)行你的類中的finalize() 方法。事實(shí)上,如果你正在使用 Java 1.0,即使你試圖強(qiáng)制它調(diào)用finalize() 方法,也不能確保將調(diào)用它。

    因此,你不應(yīng)當(dāng)依靠finalize() 來執(zhí)行你的 Applet 和應(yīng)用程序的資源清除工作。取而代之,你應(yīng)當(dāng)明確的清除那些資源或創(chuàng)建一個(gè)try...finally 塊(或類似的機(jī)制)來實(shí)現(xiàn)。

    列表 A: final_things.java

    import java.applet.*;

    import java.awt.*;

     

    class thing

    {

      public static int thingcount = 0;

      public static int thingfinal = 0;

     

      public thing()

      {

        ++thingcount;

      }

     

     

      protected void finalize()

      {

        ++thingfinal;

      }

    }

     

    public class final_things extends Applet

    {

     

      public final_things()

      {

      }

     

      public String getAppletInfo()

      {

        return "Name: final_thing\r\n" +

               "Author: Tim Gooch\r\n" +

               "Created with Microsoft " +

               "Visual J++ Version 1.1";

      }

     

     

      public void init()

      {

          resize(320, 240);

     

      }

     

      public void destroy()

      {

      }

     

      public void paint(Graphics g)

      {

        g.drawString("Created with Microsoft" +

          "Visual J++ Version 1.1", 10, 20);

      }

     

      public void start()

      {

        while(thing.thingfinal < 1)

        {

          new thing();

        }

      }

     

      public void stop()

      {

        // System.gc();

        System.out.println(thing.thingcount +

          " things constructed");

        System.out.println(thing.thingfinal +

          " things finalized");

      }

     

    }

    posted @ 2007-06-12 18:13 笨蛋啊帆 閱讀(361) | 評(píng)論 (0)編輯 收藏


    僅列出標(biāo)題  下一頁

    posts - 51, comments - 17, trackbacks - 0, articles - 0

    Copyright © 笨蛋啊帆

    主站蜘蛛池模板: 亚洲免费一级视频| 两个人日本WWW免费版| 婷婷亚洲久悠悠色悠在线播放 | 激情五月亚洲色图| 亚洲一区免费在线观看| 亚洲另类自拍丝袜第1页| 中国人xxxxx69免费视频| 久久青青草原亚洲av无码app | 久久精品国产亚洲AV麻豆网站| 久久免费观看国产99精品| 久久久久久久久亚洲| 99爱在线精品视频免费观看9| 久久99亚洲网美利坚合众国 | 免费无码又爽又刺激网站直播| 亚洲日韩中文无码久久| 久久精品免费观看| 午夜无遮挡羞羞漫画免费| 亚洲中文字幕久久精品无码A | 国产成人亚洲精品影院| 大地资源中文在线观看免费版 | 亚洲av福利无码无一区二区 | 亚洲精品无码不卡在线播HE| 亚洲欧美乱色情图片| 国产一区在线观看免费| 亚洲av午夜精品无码专区| 日美韩电影免费看| XXX2高清在线观看免费视频| 久久夜色精品国产噜噜噜亚洲AV| 91嫩草国产在线观看免费| 国产亚洲精品精品精品| 成人免费毛片视频| 一本大道一卡二大卡三卡免费| 亚洲热线99精品视频| 免费视频专区一国产盗摄| 美女扒开尿口给男人爽免费视频 | 久久精品国产亚洲AV无码麻豆 | fc2免费人成在线视频| 亚洲AV永久无码精品一区二区国产| 亚洲国产高清美女在线观看| 国产午夜影视大全免费观看 | 亚洲另类无码专区首页|