感謝鳥哥
索引
說明基礎
一般模式,切換,指令
vim高階特性
多檔案編輯,多視窗編輯,區塊選擇,檔案恢復
vim配置檔案
中文編碼
亂碼分析解決
dos與linux換行符問題,及轉換
dos2unix,unix2dos
字元編碼檔案轉換
iconv
一般模式下:
游標移動類:
h,j,k,l移動游標向左,下,上,右例如向下移動 30 行,可以使用 "30j"
也可以使用方向鍵來進行移動(可以加上數字移動5h移動5個字元)
翻頁:ctrl+f(forward),ctrl+b(behind)
home或0/end或$移動到行首、尾
h,m,l分別表示游標移動到螢幕上嘴上,最中,最下的一行
g移動到這個檔案的最後一行
ng移動到第n行 gg移動到第一行
n游標向下移動n行
查詢類:
/ 向下查詢; ?向上查詢
n,n分別表示向下,上重複前乙個查詢或替換動作
:n1,n2s/word1/word2/g在第n1至n2行搜尋字串word1並用word2取代它
:1,$s/word1/word2/g在第一行至最後一行搜尋字串word1並用word2取代它
:1,$s/word1/word2/gc相對於上面的,這個會在替換前進行詢問。
複製,貼上,刪除:
x,x分別表示向後,向前刪除乙個字元
nx,向後刪除n個字元
dd刪除一行
ndd刪除游標向下的n行,
d1g刪除游標所在行至第一行的所有行 dg則刪除游標所在到最後一行的所有資料
d0刪除到行首 d$刪除到行末
yy 複製游標所在的那一行
nyy ,y1g,yg,y0,y$
p, p 貼上到下一行、上一行
j 合併當前行與下一行
u undo ctrl+r redo
. 小數點,即重複前乙個動作
一般模式切換到編輯模式:
i,i; i游標處插入,i行首插入
a,游標處追加,a行末插入
o,o;o,向下插入一行,o向上插入一行
r,r:取代模式(replace mode):r 只會取代游標所在的那乙個字元一次;r會一直取代游標所在的文字,直到按下 esc 為止;
指令模式:
:w ,:w!; :q,:q! , :wq
:w [filename]另存為
:r [filename]將另乙個檔案的內容加入到當前檔案
:n1,n2 w [filename] 將 n1 到 n2 的內容儲存成 filename 這個檔案。
:! command 暫時離開 vi 到指令列模式下執行 command 的顯示結果!例如
『:! ls /home』即可在 vi 當中察看 /home 底下以 ls 輸出的檔案資訊!
:set nu 顯示行號; :set nonu取消顯示行號
在 vi 中,『數字』是很有意義的!數字通常代表重複做幾次的意思!
zz 這是大寫的 z 喔!若檔案沒有更動,則不儲存離開,若檔案已經被更動過,則儲存後離開!
1.vim臨時檔案的恢復功能: vim 會在與被編輯的檔案的目錄下,再建立乙個名為 .filename.swp 的檔案。 如果你的系統因為某些原因斷線了, 導致你編輯的檔案還沒有儲存,這個時候 .man.config.swp 就能夠發會救援的功能了!記住在恢復之後記得手動刪除這個swap檔案,否則你本次的編輯就會失效,下次任然會出現這個警告。
2. vim高階特性之區塊選擇:
區塊選擇的按鍵意義
v 字元選擇,會將游標經過的地方反白選擇!
v 行選擇,會將游標經過的行反白選擇!
[ctrl]+v 區塊選擇,可以用長方形的方式選擇資料
y 將反白的地方複製起來
d 將反白的地方刪除掉
4.vim高階特性之多視窗編輯
:sp [filename]開啟乙個新視窗,可以不輸入檔名
ctrl+w+k/j(或者方向鍵上下)切換到上、下乙個視窗。
ctrl+w+q(或者:q)離開關閉視窗
/etc/vimrc,~/.vimrc或者~/.viminfo
配置檔案一些引數:
:set all 顯示目前所有的環境引數設定值。
:set nu
:set nonu 就是設定與取消行號啊!
:set hlsearch
:set nohlsearch hlsearch 就是 high light search(高亮度搜尋)。 這個就是設定是否將搜尋的字串反白的設定值。預設值是 hlsearch
:set autoindent
:set noautoindent 是否自動縮排?autoindent 就是自動縮排。
:set backup 是否自動儲存備份檔?一般是 nobackup 的, 如果設定 backup 的話,那麼當你更動任何乙個檔案時,則原始檔案會被另存成乙個檔名為 filename~ 的檔案。
:set backspace=(012) 一般來說, 如果我們按下 i 進入編輯模式後,可以利用倒退鍵 (backspace) 來刪除任意字元的。 但是,某些 distribution 則不許如此。此時,我們就可以透過 backspace 來設定囉~ 當 backspace 為 2 時,就是可以刪除任意值;0 或 1 時,僅可刪除剛剛輸入的字元, 而無法刪除原本就已經存在的文字了!
:set 顯示與系統預設值不同的設定引數,
:syntax on
:syntax off 是否依據程式相關語法顯示不同顏色?
:set bg=dark
:set bg=light 可用以顯示不同的顏色色調,預設是『 light 』
vim ~/.vimrc
"這個檔案的雙引號 (") 是註解
set hlsearch "高亮度反白
set backspace=2 "可隨時用倒退鍵刪除
set autoindent "自動縮排
set ruler "可顯示最後一行的狀態
set showmode "左下角那一行的狀態
set nu "可以在每一行的最前面顯示行號啦!
set bg=dark "顯示不同的底色色調
syntax on "進行語法檢驗,顏色顯示。
中文編碼有以下幾個方面:
1.系統編碼:/etc/sysconfig/i18n
2.終端的語系:lang
3.開啟終端的軟體的語系
4.文件的語系
主要是下面兩點有影響。
比如我的是使用xshell鏈結遠端ubuntu主機。
ubuntu系統的語系設定不是在上面說的那裡。ubuntu系統語系在/var/lib/locales/supported.d/local檔案中。語系的支援說明在/usr/share/i18n/supported檔案中
如果我們需要新增語系,可以編輯這個檔案新增:
zh_cn.utf-8 utf-8
也可以這樣:
#locale-gen zh_cn.utf-8 ; locale-gen zh_cn
# cat /var/lib/locales/supported.d/local是不是多了語系了。
然後使之生效
:# locale-gen
之後就是關於環境變數lang的設定,我們可以採取設定/etc/environment
vi /etc/env
ironment
加入lang="zh_cn.utf-8"
儲存.使之生效: source /etc/environment
然後就是設定我們開啟終端軟體的編碼。
由於我是採用使用xshell在windows下連線遠端linux主機,所以此時我的顯示仍然亂碼,我需要將xshell中關於終端字元編碼的設定為utf-8即可。
現在就正常了。
我們可以將他們進行相互轉換。:
dos2unix [-kn] file [newfile]
[root@www ~]# unix2dos [-kn] file [newfile]
選項與引數:
-k :保留該檔案原本的 mtime 時間格式 (不更新檔案上次內容經過修訂的時間)
-n :保留原本的舊檔,將轉換後的內容輸出到新檔案,如: dos2unix -n old new
iconv -f 原本編碼 -t 新編碼 filename [-o newfile]
iconv -f big5 -t utf8 vi.big5 -o vi.utf8
不過如果是要將正體中文的 utf8 轉成簡體中文的 utf8 編碼時,那就得費些功夫了!
iconv -f utf8 -t big5 vi.utf8 | \
> iconv -f big5 -t gb2312 | iconv -f gb2312 -t utf8 -o vi.gb.utf8
你也可以參考我的部落格小站
linux學習之vim編輯器
vi是乙個常用的linux下文字編輯器,基本所有的類unix系統都會預設裝有vi編輯器,所以只要學通了vi,則可以在任意linux上進行文字操作。在控制台裡敲入 vi filename 即可啟動vi編輯器,如果該file已經存在,則編輯已存在檔案,如果不存在,則建立新的檔案。vim是公升級版的vi,...
Linux學習之Vim編輯器
vi編輯器是所有unix,linux系統下的內建的標準文字編輯器 vim在vi的基礎上增加了很多的新特性,比如程式編輯能力,是更加強大和使用範圍更廣的文字編輯器 1.vi的幾種模式 一般模式 移動游標,複製貼上,刪除內容 幾種模式間的切換如下示 2.vi的使用 vi 檔名 進入一般模式 yy複製游標...
Linux學習手冊之vim編輯器
插入命令命令 作用a在游標後附加文字 a在本行末附加文字 i在游標前插入文字 i在本行開始插入文字 o在游標下插入新行 o在游標上插入新行 定位命令命令 作用h 方向左鍵 左移乙個字元 j 方向下鍵 下移一行 k 方向上鍵 上移一行 l 方向右鍵 右移乙個字元 移至行尾 0移至行首 h移至螢幕上端 ...