2014年1月27日 星期一

vim 折疊(fold)功能

以前就已經知道vim有折疊文字(程式碼)功能,不過那時候覺得還不需要,

也以為還要額外裝plugin,怕會很麻煩。

但如今開始會看一些比較長的程式碼,於是決定把它加入.vimrc

只要在.vimrc裡輸入:

set foldmethod=marker

就會以「{{{」來標示折疊的起始行,以「}}}」標示折疊的結束行,

如果沒有設定這一行的話,預設是不會顯示像「{{{」和「}}}」的縮排符號的,

而且一離開vim,fold就會取消,也就是下次開啟vim時fold就會不見。


另外,如果在.vimrc加入:

set foldlevel=0

可以讓開啟檔案時,預設將所有fold關閉。



接著來看fold的操作方式:


zo:開啟fold。
zc:關閉fold。
zm:全部縮起來(將 foldlevel-1)。
zM:全部縮起來(設 foldlevel=0)。
zf:製作出起始 fold 符號。
zF:製作出起始與結尾 fold 符號。
zi:啟用/關閉fold。
zO:打開所有fold。
zC:關閉所有fold。
zx:更新fold,即除了游標所在fold不關,其他都關掉。

其中zm和zM的差別目前還搞不清楚,搞清楚之後會再補上。

php的time()、date()、strtotime()、mktime()初步認識

int time(void):

表示從Unix紀元(1970/01/01 00:00:00)開始到現在的秒數。

傳回值為:int。





string date(string $format[, int $timestamp]):

格式化本地的時間或日期。

第一個參數($format)是格式化字串,詳細請參考:

http://tw2.php.net/manual/en/function.date.php

第二個參數為時間戳($timestamp),預設是time(),可省略。

傳回值為:string。如果參數錯誤,則回傳false。





int strtotime(string $time [, int $now = time() ]):

將英文文字轉換成時間戳(timestamp)。

第一個參數是一個英文字串,php官網範例如下:

<?php
    echo strtotime("now"), "\n";
    echo strtotime("10 September 2000"), "\n";
    echo strtotime("+1 day"), "\n";
    echo strtotime("+1 week"), "\n";
    echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
    echo strtotime("next Thursday"), "\n";
    echo strtotime("last Monday"), "\n";

?>

第二個參數恕時間戳(timestamp),預設是time(),可省略。

傳回值是:int。如果參數錯誤,則回傳false(php 5.1版之前傳回 -1)。






int mktime ([ int $hour = date("H") [, int $minute = date("i") [, int $second = date("s") [, int $month = date("n") [, int $day = date("j") [, int $year = date("Y") [, int $is_dst = -1 ]]]]]]] ):

取得一個日期的Unix時間戳。

第一個參數:小時數。

第二個參數:分鐘數。

第三個參數:秒數。

第四個參數:月份數。

第五個參數:天數。

第六個參數:年數。

第七個參數:當值為1時,表示為夏令時間(Daylight saving time)。0則為非。

(php 5.1.0 以後的版本已取消第七個參數)

參數可以從右向左省略,或者說由後向前省略。

EX:

mktime(0, 0, 0, 2); //省略了天數和年數(還有夏令時間)。

傳回值:int。如果參數錯誤,則回傳false(php 5.1版之前傳回 -1)。

2014年1月9日 星期四

APT:upgrade與dist-upgrade的差別

在Debian或其他基於Debian的distro中(Ubuntu、Linux Mint...等),

要更新系統通常會用:

apt-get update

加上

apt-get upgrade

其中使用upgrade時,有時會發生套件(package)「未被升級」的現象,

這表示指定套件在安裝過程中,與其他套件有相依性的問題,

更具體的說,就是當安裝一個套件時,

發現需要安裝其他新的套件影響到其他套件的相依性,

該套件就不會被升級, 而保留下來。

這時可以使用:

apt-get dist-upgrade

dist-upgrade會自動幫你解決相依性問題,

也就是嘗試去安裝或移除那些新的套件或相依性受影響的套件,

所以通常會被認為是較有風險的升級。



參考資料:
http://blog.longwin.com.tw/2008/03/debian_ubuntu_apt_dist_upgrade_difference_2008/

2014年1月7日 星期二

在Debian下安裝FireFox(tar.bz2)

環境:
Debian:Jessie(testing)
Firefox:Firefox 26

安裝日期:2014年1月7日

--------------------------------------------------------------------------

Debian與Firefox因為商標(trademark)的問題

導致Debian將Firefox從套件庫中移除

而重新編譯原本的Firefox,改名為Iceweasel

詳細內容請看Wikipedia
http://en.wikipedia.org/wik/Mozilla_Corporation_software_rebranded_by_the_Debian_project

不過在使用Iceweasel時,發現Firebug竟然無法使用

於是決定下載Firefox官方提供的.tar.bz2檔來自行安裝

步驟如下:

  1. 將下載好的.tar.bz2檔案解壓縮後搬動至/opt/

    tar -xvf firefox-26.0.tar.bz2 #解壓縮

    mv firefox/ /opt/
  2. 接著解除Iceweasel的安裝

    apt-get --purge remove iceweasel #身份是root
  3. 將/opt/firefox/中的firefox建立連結至/usr/bin/

    ln -s /opt/firefox/firefox /usr/bin/firefox
  4. 接著建立Firefox的icon,並編輯內容

    touch /usr/share/applications/firefox.desktop #建立icon


    vim /usr/share/applications/firefox.desktop #編輯檔案並加入以下內容

    [Desktop Entry]
                Encoding=UTF-8
                Name=Firefox
                Comment=Browse the World Wide Web
                GenericName=Web Browser
                X-GNOME-FullName=Firefox Web Browser
                Exec=/opt/firefox/firefox %u
                Terminal=false
                X-MultipleArgs=false
                Type=Application
                Icon=
    /opt/firefox/browser/icons/mozicon128.png
                Categories=Network;WebBrowser;
                MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/vnd.mozilla.xul+xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https;
                StartupWMClass=Firefox-bin
                StartupNotify=true
     

(注意:Icon=「icon圖片的位置」)

以上步驟就可以成功安裝Firefox於Debian了!!


不確定此安裝法是不是最好的(或者建議的),未來有更好的方法會再修改~


參考資料:
http://blog.chinaunix.net/uid-47131-id-3766899.html
http://www.libre-software.net/how-to-install-firefox-on-ubuntu-linux-mint