標籤:liunx 編輯 文本 vim
vim基本用法
模式化編輯器
模式:
編輯模式: 命令模式
鍵盤操作常被理解為編輯命令
輸入模式
末行模式: vim內建的命令介面,執行vim命令
開啟檔案
vim [option]... [file]...
模式轉換:
編輯模式 --> 輸入模式
i: 在游標所在處的前方轉換為輸入模式
a: 在游標所在處的後方轉換為輸入模式
o: 在游標所在行的下方建立一個空行並轉換為輸入模式
I: 行首
A: 行首
O: 游標所在行的上方建立一個空白行
輸入模式 --> 編輯模式
Esc
編輯模式 --> 末行模式
:
末行模式 --> 編輯模式
ESC
退出檔案:
:q! 不儲存退出
:wq 儲存退出
:x 儲存退出
ZZ 不儲存退出
編輯文本:
游標移動:
#{hjkl}: 跳#個字元
單詞間移動:
w: 下一個單詞詞首
e: 當期單詞或下一個單詞詞尾
b: 當前單詞或前一個單詞詞首
行內移動
^: 行首第一個非空白字元
0: 絕對行首
$: 絕對行尾
行間移動
#G: 直接跳至第#行
G: 最後一行
編輯命令:
x: 刪除游標所在處的字元
d: 刪除命令
結合游標跳轉字元使用,刪除游標跳轉範圍內的字元
dd: 刪除游標所在行
D: d$,刪除游標以後的字元
注意: 最後一次刪除的內容會被儲存至緩衝區
p: paste,粘貼
行層級:
p: 粘貼於當前行上方
P: 粘貼於當前行下方
小於行層級
p: 粘貼於當前游標所在行的後方
P: 粘貼於當前游標所在行的前方
y: yank,複製
結合游標跳轉字元使用,複製游標跳轉範圍內的字元
Y: yy
c: change, 修改
結合游標跳轉字元使用,修改跳轉範圍內的字元
先刪除,再轉換為輸入模式
cc,C: 刪除游標所在處的整行而後轉換為輸入
撤銷操作:
u: undo,撤銷
#u: 撤銷最近的#次操作(50)
撤銷此前的撤銷: ctrl+r
重複前一條命令: .
末行模式:
行間跳轉:
#: 指定行數
$: 最後一行
內容定界
startpos,endpos
#: 第#行
.: 當前行
$: 最後一行
%: 全文,相當於1,$
c,d,y等命令可以直接附加在位址範圍後使用
w /path/to/somefile: 將選定範圍內的內容儲存至某檔案中
r /path/from/sonmefile: 將指定的檔案中的內容讀取到指定位置
s/尋找模式/要替換成的內容/gi
%s/echo/i/gi
尋找模式:可以使用Regex
要替換成的內容: 不能使用模式,僅能使用引用
g: global,全行替換
i: 不區分大小寫
引用匹配模式比對到的所有內容可以用&
練習:
複製/etc/rc.d/init.d/functions至/tmp目錄
替換/tmp/functions檔案中的/etc/sysconfig/init為/var/log
:%s#/etc/sysconfig/init#/var/log#gi
練習:
1. 複製/etc/grub.conf至tmp目錄,刪除/tmp/grub.conf檔案中的行首的空白字元
:%s#^[[:space:]]\{1,\}##gi
2. 複製/etc/rc.d/rc.sysinit至/tmp目錄,將/tmp/rc.sysinit檔案中的以至少一個空白字元開頭的行的行首加#號
:%s/^\([[:space:]]\+\)/#\1/gi
:%s/^[[:space:]]\+/#&/gi
3. 刪除/tmp/rc.sysinit檔案中以#號開頭,且後面跟了至少一個空白字元的行的行首的#號和空白字元
:%[email protected]^#[[:space:]]\{1,\}@@
4. 為/tmp/grub.conf檔案的前三行的行首家#號
:1,[email protected]^@#@
5. 將/etc/yum.repos.d/CentOS-Media.repo檔案中的enable=0和gpgcheck=0兩行最後的0改為1
%[email protected]\(enable\|gpgcheck\)[email protected]\[email protected]
vim可視化模式
v: 游標走過的字元
V: 游標走過的行
文本尋找:
用法同less命令
/pattern
?pattern
翻屏:
ctrl+f: 向檔案尾部翻一屏
ctrl+b: 向檔案首部翻一屏
ctrl+d: 向檔案尾部翻半屏
ctrl+u: 向檔案首部翻半屏
j: 向下走一行
k:想上走一行
多檔案模式:
:next 下一個檔案
:previous 前一個檔案
:last 最後一個檔案
:first 第一個檔案
:wqall 退出儲存所有
多視窗模式:
多檔案
-o: 水平分割兩個視窗
-O: 垂直分割兩個視窗
ctrl+w,arrow
單檔案:
ctrl+w,s: 水平分割
ctrl+w,v: 垂直分割
視窗屬性設定:
:set nu 顯示行號
:set nonu 取消顯示行號
:set ai 自動縮排
:set noai 取消自動縮排
:set ic 忽略字元大小寫
:set sm 顯示自動匹配括弧
:syntax off 文法高亮關閉
設定檔:
全域: /etc/vimrc
使用者: ~/.vimrc
本文出自 “bran” 部落格,請務必保留此出處http://branguo.blog.51cto.com/9768383/1599262
VIM基本用法