最近一直在Linux下開發程式,雖然是跑的虛擬機器但是編碼還是在windows下編碼,然後再到Linux編譯。發覺這樣的效率比較低,為什麼不在Linux下編碼呢?呵呵,原因是不太習慣Linux的環境,不過說回來聽說Linux下的兩大工具vi和emacs功能超強,所以也決定下決心學學這兩個工具,這裡就列一些最近學的關於vi的一些操作:
首先,vi有三種模式,正常模式(命令模式),編輯模式(插入模式),可視模式。具體的網上也有很多了,怎麼操作,簡單的就是
開啟vi,進入的是正常模式(這時候敲鍵盤是輸入不進字元的,除非按i,a,c,o等),按i,或a就進入了插入模式(這時候就可以輸入字元了,注意我下面說的命令都是在命令模式下操作的),再按<ESC>或CTRL-C就回到了命令模式,再按v就進入了可視模式,這是可以進行塊選,複製粘貼等操作。廢話少說:下面就是最近學習的命令(聲明這裡用ESC,CTRL, Backspace,Enter,Space都為鍵盤上的鍵,不是字元)
CTRL-H, LEFT, Backspace
向左移動游標
Space, right
向右移動游標
0
移動到一行的第一個字元
^
移動到行的第一個非Null 字元
$
移動到行的最後一個字元
:f
列出當前檔案的全路徑
[num] -
向上移動num行,如:5 -,向上移動5行
[num] +
向下移動num行,如上
[num] G
從檔案頭移動到num行
[num] %
移動到檔案的num%位置
[num] gk
從當前行向上移動num行
[num] gj
從當前行向下移動num行
[num] w
向後移動num個字
[num] b
向前移動num個字
ge
移動到前一個字的尾部
}
移動到下一個空行
{
移動到上一個空行
[[
移動到檔案頭
]]
移動到檔案尾
[{
匹配到上一個{
]}
匹配到下一個}
[*
前一個/*
]*
下一個*/
/
向後搜尋
?
向前搜尋
*
向下匹配當前字元
#
向上匹配當前字元
gd
goto 本地聲明
gD
goto 全域聲明
``
移動到剛才跳轉前的位置
H
當前螢幕的頭
M
當前螢幕的中間
L
當前螢幕的底端
CTRL-C
跟ESC一樣
:r!
將執行的命令追加到當前文檔
[num] x
刪除後面num個字元
[num] X
刪除前面num個字元
R
修改模式
~
轉換當前字元為大寫
v-u
轉換當前字元為小寫
g~
轉換字母大小寫變化
>>
向後縮排
<<
向前縮排
CTRL-D
向下滾動半屏
CTRL-U
向上滾動半屏
CTRL-G
顯示當前檔案和所在的行
:+ [num]
移動到游標所在行的下num行
:e file
編輯一個檔案
:pwd
顯示當前路徑
:cd path
轉到路徑path
:enew
編輯一個新的未命名的buffer
:cd-
回到當前路徑的上一路徑
:f filename
修改檔案名稱到新的filename
CTRL-W ]
拆分表單,並轉到定義
CTRL-W f
拆分表單,並轉到檔案
CTRL-W o
使得當前表單最大化
CTRL-W j
移動到上一buffer視窗
CTRL-W k
移動到下一buffer視窗
zf <ENTER>
摺疊當前區塊
zd
刪除當前摺疊
zc
關閉當前摺疊
zo
開啟當前摺疊
由於vi的命令很多,這裡就列舉了能協助你完成基本編輯任務的操作,呵呵,至少給新手以一個感性的認識,我也是新手^_^!