在命令模式下輸入 :wq 表示保存離開,輸入 :wq! 表示強制寫入並離開,前提是你的權限可以改變。
一般模式下的按鍵列表:
移動光標的方法
h 或 向左方向鍵(←)
光標向左移動一個字元
j 或 向下方向鍵(↓)
光標向下移動一個字元
k 或 向上方向鍵(↑)
光標向上移動一個字元
l 或 向右方向鍵(→)
光標向右移動一個字元
如果你將右手放在鍵盤上的話,你會發現 hjkl 是排列在一起的,因此可以使用這四個鍵來移動光標。 如果想要進行多次的話,例如向下移動 30 行,可以使用 “30j” 或 “30↓” 的組合按鍵, 亦即加上想要進行的次數(數字)後,按下動作即可!
[Ctrl] + [f]
屏幕『向下』移動一頁,相當於 [Page Down]按鍵 (常用)
[Ctrl] + [b]
屏幕『向上』移動一頁,相當於[Page Up] 按鍵 (常用)
[Ctrl] + [d]
屏幕『向下』移動半頁
[Ctrl] + [u]
屏幕『向上』移動半頁
+
光標移動到非空白字元的下一列
-
光標移動到非空白字元的上一列
n<space>
那個 n 表示『數字』,例如 20 。按下數字後再按空白鍵,光標會向右移動這一行的 n 個字元。例如 20<space> 則光標會向後面移動 20 個字元距離。
0 或^或功能鍵[Home]
這是數字『 0 』:移動到這一行的最前面字元處 (常用)
$ 或功能鍵[End]
移動到這一行的最後面字元處(常用)
H
光標移動到這個屏幕的最上方那一行的第一個字元
M
光標移動到這個屏幕的中央那一行的第一個字元
L
光標移動到到這個屏幕的最下方那一行的第一個字元
G
移動到這個文件的最後一行(常用)
nG
n 為數字。移動到這個文件的第 n 行。例如 20G 則會移動到的第 20 行(可配合 :set nu)
1G或者gg
移動到這個文件的第 1 行 (常用)
n<Enter>
n 為數字。光標向下移動 n 行(常用)
搜尋與取代
/word
向光標之下尋找一個名叫 word 的字串。例如要在文件內搜尋yidao這個字符串,就輸入 /yidao 即可! (常用)
?word
向光標之上尋找一個字串名稱為 word 的字串。
n
這個 n 是英文的小寫按鍵n。代表『重復前一個搜尋動作』。舉例來說, 如果剛剛我們執行 /yidao 去向下搜尋 yidao 這個字符串,則按下 n 後,會向下繼續搜尋名為 yidao的字串。如果是執行 ?yidao 的話,那麼按下 n 則會向上繼續搜尋名為 yidao的字串!
N
這個 N 是英文大寫按鍵N。與n剛好相反,為『反向』進行前一個動作。 例如 /yidao 後,按下 N 則表示『向上』搜尋yidao 。
使用 /word 配合 n 及 N 是非常有幫助的!可以讓你重復的找到一些你搜尋關鍵詞!
:n1,n2s/word1/word2/g
n1與n2為數字。在第 n1 與 n2 行之間尋找 word1 這個字串,並將該字符串替換為 word2 !舉例來說,在 100 到 200 行之間搜尋 yidao並取代為YIDAO:
『:100,200s/yidao/YIDAO/g』。(常用)
:1,$s/word1/word2/g
從第一行到最後一行尋找 word1 字串,並將該字符串替換為 word2 !(常用)
:1,$s/word1/word2/gc
從第一行到最後一行尋找 word1 字串,並將該字符串替換為 word2 !每次替換前會提示用戶消息是否替換!(常用)
刪除、復制、粘貼
x, X
在一行中,x 為向後刪除一個字符 (相當於 [del] 按鍵), X 為向前刪除一個字符(相當於 [backspace] 亦即是倒退鍵) (常用)
nx
n 為數字,連續向後刪除 n 個字元。比如,我要連續刪除 10 個字元, 『10x』。
dd
刪除光標所在的那一行(常用)
ndd
n 為數字。刪除光標所在的向下 n 列,例如 20dd則是刪除 20 行 (常用)
d1G
刪除光標所在到第一行的所有數據
dG
刪除光標所在到最後一行的所有數據
d$
刪除光標所在處,到該行的最後一個字符
d0
那個是數字的 0 ,刪除光標所在處,到該行的最前面一個字符
yy
復制光標所在的那一行(常用)
nyy
n 為數字。復制光標所在的向下 n 行,例如 20yy 則是復制 20 行(常用)
y1G
復制光標所在行到第一個行的所有資料
yG
復制光標所在行到最後一行的所有資料
y0
復制光標所在的字符到該行行首的所有字符
y$
復制光標所在的字符到該行行尾的所有字符
p, P
p 為將已經復制的數據在光標下一行粘貼上,P則為粘貼在光標上一行! (常用)
J
將光標所在行和下一行數據合並成一行
c
重復刪除多個資料,例如向下刪 10 行,[ 10cj ]
u
還原(undo)前一個動作。(常用)
[Ctrl]+r
重做上一個動作。(常用)
這個 u 與 [Ctrl]+r 是很常用的指令!一個是還原,另一個是重做~ 利用這兩個功能按鍵,你的編輯,嘿嘿!很爽的啦!
.
不要懷疑,這個就是小數點!意思是重復前一個動作的意思。 如果你想要重復刪除、重復粘貼等,按下小數點『.』就好了! (常用)
====塊選擇(Visual Block)====
區塊選擇按鍵說明
v
字符選擇,會將光標經過的地方反白選擇
V
行選擇,會將光標經過的行反白選擇!
[Ctrl]+v
列選擇模式
y
將反白的區域復制下來
d
將反白的區域刪除掉
====多文件編輯====
可以用vim file1 file2來打開多個文件同時編輯,多文件的三個命令:
多文件編輯的按鍵 :n 編輯下一個文件 :N 編輯上一個文件 :files 列出目前這個 vim 的開啟的所有文件
====多窗口功能====
在命令模式下輸入:sp [filename],可在新窗口打開filename文件,如果沒有輸入filename,則默認把當前文件切割成兩個。
窗口切換:
* ctrl+w+j把光標移動到下一個窗口
* ctrl+w+k把光標移動到上一個窗口
* ctrl+w+q其實就是:q結束離開的意思
====vim環境設置:~/.vimrc,~/.viminfo====
有沒有發現呢,如果我們以vim查找一個文件內容,然後再次打開後,那個查找的字符串還是會反白顯示。另外我們光標所在行數也是上次你關閉vim時候的行數,這個就是通過~/.viminfo這個文件記錄的。相當於vim編輯的history文件,你編輯的歷史記錄基本都記錄在這裡頭。自動產生的。o(╯□╰)o
vim的配置文件為/etc/vimrc,不過不建議你修改它,因為它是所有用戶公共的默認配置文件,如果你想擁有自己的配置文件,可以修改~/.vimrc,這個文件默認是沒有的,你可以手動建立一個,然後寫入你自己有個性的設置:
復制代碼代碼如下:
[root@www ~]# vim ~/.vimrc
"這個文件的雙引號 (") 是注釋
set hlsearch "高亮度反白
set backspace=2 "可以用Backspace鍵刪除
set autoindent "自動縮進
set ruler "可顯示最後一行的狀態
set showmode "左下角那一行的狀態
set nu "可以在每一行的最前面顯示行號啦!
set bg=dark "顯示不同的底色色調
syntax on "語法高亮顯示。
====DOS與linux斷行字符====
dos斷行字符為CR(回車)與LF(換行)兩個字符,而linux只有LF(換行)一個字符,如果是dos和windows系統需要跟linux系統進行文件文件的交互,需要進行轉換。
命令:
# dos2UNIX [-kn] file [newfile]
# UNIX2dos [-kn] file [newfile]
-k:保留該文件的mtime時間
-n:保留舊文件,將轉換後的內容輸入到新文件newfile中
====語系編碼轉換====
# iconv –list
# iconv -f 原來編碼 -t 新編碼 filename [-o newfile]
實例分析:將繁體中文的utf8轉換成簡體中文的utf8編碼:
# iconv -f utf8 -t big5 vi.utf8 | iconv -f big5 -t gb2312 | iconv -f gb2312 -t utf8 -o vi.gb.utf8
==============End=====================