vim/vi 簡介
vim/vi
用於在使用
linuxserver
時,進行指令碼程式設計和配置檔案修改時主要使用,比較好用。
一般使用vim編寫系統配置檔案和寫
shell
指令碼時,需掌握如下命令:
插入命令:
a 在游標後附加文字
a 在本行行末附加文字
i 在游標前插入文字
i 在本行開始插入文字
o 在游標下方插入一行
o 在游標上方插入一行
定位命令:
h、方向左鍵 游標左移乙個字元
j、方向下鍵 游標下移一行
k、方向上鍵 游標上移一行
l、方向右鍵 游標右移乙個字元
(向上、下移動
n行可以用nj、
nk、n方向上鍵、
n方向下鍵;向左向右移動
n個字元可以用nh、
nl、n方向左鍵、
n方向右鍵)
$ 、end鍵 移至行尾
0 (零鍵)、home鍵 移至行首
h 移至螢幕上端
m 移至螢幕**
l 移至螢幕下端
:set nu 顯示行號
:set nonu 取消行號
gg 到第一行
g 到最後一行
ng、:n 到第n行
刪除命令:
x 刪除游標所在處字元
nx 刪除連同游標所在位置及游標後的共n個字元
dd 刪除游標所在行內容,ndd刪除連同游標所在的行及游標下面共n行內容
dg 刪除游標所在行到末尾的所有內容
d 刪除游標所在處到行尾的內容
:n1,n2d 刪除指定範圍的行
複製和剪下命令:
yy、y 複製當前行
nyy、ny 複製包括當前行在內的以下共n行
dd 剪下當前行
ndd 剪下包括當前行在內的以下共n行
p、p 貼上在當前游標所在行下、行上
注意:使用刪除命令所刪除的內容均可用p或
p來進行貼上,但是貼上位置有所不同。其中,d、
x、nx命令刪除的內容在貼上時,
p貼上在游標後,
p貼上在游標前;而dd、
ndd、dg、
:n1,n2d
命令刪除的內容在貼上時,
p貼上在游標所在行的下一行,
p貼上在游標所在行的上一行。
替換和取消命令:
r 替換游標所在處字元
r 從游標所在處開始替換字元,按esc結束
u 取消上一步操作
搜尋和替換命令:
/string 向前搜尋指定字串(搜尋時想忽略大小寫:set ic關閉忽略大小寫:set noic)
n 上搜尋指定字串的下乙個出現位置(n 上乙個出現位置)
:%s/old/new/g 全文替換指定字串
:n1,n2s/old/new/g 在一定範圍內替換指定字串(可用c代替
g,區別就是
c會提示是否替換)
儲存退出命令:
:wq 、zz 儲存並退出
:wq! 強行儲存退出(只有檔案的所有者或者
root
才可以這樣)
:q! 強行不儲存退出(只有檔案的所有者或者
root
才可以這樣)
:w 儲存不退出
:w 新檔名 另存為功能(:w 目錄/新檔名 另存在指定目錄下)
塊選擇命令:
v 字元選擇,會將游標經過的地方反白選擇
v 行選擇,會將游標經過的行反白選擇
ctrl+v 塊選擇,可以用長方形的方式反白選擇資料
y 將反白的地方複製起來
d 將反白的地方刪除
其它技巧命令:
:r 檔名 匯入某檔案內容匯入到當前檔案中
:!命令 在vi中執行命令(按回車退出)
:r!命令 匯入命令的執行結果到當前檔案中
:map 快捷鍵 觸發命令 定義快捷鍵
範例 :map ^p i#^[ (^p
:ctrl+v ctrl+p
或ctrl+v+p ^[
:ctrl+v+esc
鍵)游標移到行首插入#後退出(啟用esc鍵)到命令模式
:map ^b 0x 游標移到行首刪除行首字母
:map ^e ithis is a test! 定義ctrl+e插入i後面的內容(注意:並沒有退回到命令模式)
:unmap 快捷鍵 取消快捷鍵定義
:n1,n2s/^/#/g 連續行注釋(^表示行首)
:n1,n2s/^#//g 連續行取消注釋(^表示行首)
:n1,n2s/#//g 去掉連續行內所有井號
:n1,n2s/^/\/\//g 連續行用//注釋(^表示行首,使用了轉義符)
:ab 內容1 內容2 替換(將輸入的內容1變成內容2)
:unab 內容1 取消替換
關於vim配置:
~
宿主目錄(homedirectory 宿主目錄可以指定,但預設root的宿主目錄是/root 普通使用者的宿主目錄是/home/使用者名稱)
vi 的配置檔案存放在使用者的宿主目錄下
~/.vimrc
使用者只有將定義的快捷鍵等對vi的配置寫在配置檔案中,才能每次都使用,否則,每次對vi的設定是不儲存的。
vim與vi比較:
vim與vi相比,vim具有顏色顯示的功能,且支援許多程式語法(c語言等),可以進行c語言等程式編輯。當使用vim編輯程式時,vim可直接檢查程式的語法錯誤。
vim file1 file2
:files 列出當前使用vim開啟的檔案
:n 編輯下乙個檔案
:n 編輯上乙個檔案
vim的多檔案編輯可以實現將乙個檔案中的某些內容複製、剪下到另乙個檔案中。
在一般的視窗介面下的編輯軟體都會有「切割視窗或凍結視窗」的功能,vim也有這樣的功能。
:sp 將當前檔案在兩個視窗裡顯示
:sp filename1 在當前視窗裡切割出乙個視窗顯示filename1檔案
ctrl+w+j、ctrl+w+方向上鍵
ctrl+w+k、ctrl+w+方向下鍵 在各個視窗之間切換游標
vim會主動將你曾經做過的行為記錄下來,記錄操作的檔案是
~/.viminfo
(.viminfo是自動產生的,使用者在vim裡所做的操作可以在這個檔案內部查詢到)
dos 與linux斷行字元的轉換:
dos2unix [-kn] file [newfile] -k(不更新檔案上次內容經過修訂的時間)
unix 2dos [-kn] file [newfile] -n(保留原本的舊檔案,轉換後並儲存到新檔案)
在dos和linux的文字編輯模式和下,斷行字元是不同的。dos中使用的斷行字元是^m$(我們成為cr lf兩個符號),linux中僅有$(lf)這個斷行符號。
檔案語系編碼的轉換:
iconv --list 列出iconv支援的語系資料
iconv –f 原本編碼 –t 新編碼 filename[-o newfile]
-f from
-t to
-o file 若要保留原來的檔案,使用該選項可建立新編碼檔案
關於adodb的簡單介紹
adodb 不管後端資料庫如何,訪問資料庫的方式都是一致的,開發設計人員不必為了某一套資料庫,而必須再學習另一套不同的 訪問方法,這大大減輕開發人員的知識負擔,過去的知識往後仍可繼續使用 外文名 active data objects data base 簡 稱 adodb 含 義 php 訪問資料...
關於GitHub的簡單介紹
github是目前世界上最先進的分布式版本控制系統,最初由linus torvalds編寫,用作linux核心 的管理。在推出後,git在其它的專案中也取得了很大成功,尤其是在ruby社群中。目前,包括rubinius merb和bitcoin在內的很多知名專案都使用了git。git同樣可以被諸如c...
關於for迴圈的簡單介紹
for迴圈結構是由三部分組成的 初始變數 迴圈條件 變數的變化和迴圈的語句塊。初始變數 迴圈開始時,變數的初始值,當定義多個變數時,他們中間用 隔開。迴圈條件 又叫測試語句,測試給定的條件是真還是假。如果條件為真,那麼就要執行迴圈中給定的 否則迴圈就會退出來。迴圈語句塊 當條件滿足時,所要執行的 給...