文本編輯工具
語法:vim 參數 文件
文本編輯種類:
行編輯器:sed
全屏編輯器:nano,vi,vim – Vi Improved


vim編輯器三大模式
- 編輯模式,
- 輸入模式:
- 末行模式: 內置的命令行接口;
模式轉換:
編輯模式 — > 輸入模式 :
i : 在光標所在處輸入
a : 在光標所在處的后方輸入
o : 在光標所在處下方打開的一個新行;
I :在光標所在行的行首輸入;
A : 在光標所在行的行尾輸入;
O : 在光標所在處的上方打開一個新行;
輸入模式 –> 編輯模式
ESC
編輯模式–> 末行模式
:
末行模式 –> 編輯模式
ESC
—————————————————————————————————————————–
打開文件 :
+# : 打開文件后,直接讓光標處于第#行的行首;
+ : 打開文件后,直接讓光標處于最后一行
+/PATTERN :打開文件后,直接讓光標處于第一個被PATTERN匹配到的行的行首;
關閉文件:
編輯模式
? ? ? ZZ : 保存并退出:
? ? ? ZQ:不保存退出;
末行模式
? ? ?:q 退出
? ? ?:q! 強制退出,不保存
? ? ?:wq 保存并退出
? ? ?: x 保存并退出
? ? ?: w /PATH/TO/SOMEFILE
移動光標操作
光標跳轉
? ? ?k : 上
? ? ?h : 左
? ? ?l :右
? ? ?j : 下
還可以加數字 #hjkl 可以指定跳多少個字符
單詞間調換
? ? ?w : 跳向下一個單詞的詞首
? ? ?e : 當前或后一個單詞的詞尾
? ? ?b : 當前或前一個單詞的詞首
? ? ?同上可以加數字 #web
行內跳轉
? ? ?^ : 跳轉至行首的第一個非空白字符;
? ? ?0 : 跳轉至行首; (絕對行首)
? ? ?$ : 跳轉到行尾 ;
行間跳轉
? ? ?#G :跳轉至指定的行;
? ? ?gg : 跳轉至第一行
? ? ?G: 跳轉至最后一行
句間跳轉
? ? ?) : 上一句
? ? ?( : 下一句
段間跳轉
? ? ?} : 上一段
? ? ?{ : 下一段
翻屏操作
? ? ?Ctrl+f : 向文件尾部翻一屏
? ? ?Ctrl+b : 向文件首部翻一屏
? ? ?Ctrl+d :向文件尾部翻半屏
? ? ?Ctrl+u : 向文件首部翻半屏
? ? ?Enter : 按行向后翻
vim 的編輯命令
刪除單個字符
? ? ?x : 刪除光標所在處的字符;
? ? ?#x: 刪除光標所在處起始地向后的#個字符;
? ? ?xp :交換光標所在處的字符以及后面的字符的位置;
替換命令
? ? ?r : 替換光標所在處的字符;
? ? ?R:轉換為替換模式,替換當前所有字符
刪除命令
? ? ?d : 刪除命令 , 可結合光標跳轉字符 , 實現范圍刪除 ;
? ? ?d$ , d^ , dw , de , db 前面可加數字
? ? ?dd : 刪除光標所在行的一整行 ; 前面可以加數字
? ? ?末行模式下刪除第幾到第幾行
? ?? ? ? ? ? .: 表示當前行
? ?? ? ? ? ?$: 表示最后一行
?? ? ? ? ? ?+#: 向下的#行
粘貼命令
? ? ?小 p : 緩沖區中的內容如果為整行, 則粘貼在當前光標所在行的下方,
? ? ?否則,粘貼至當前光標所在處的后方‘
? ? ?大P :粘貼在光標上方
復制命令
? ? ?y : 復制 , 工作行為類似于d 命令;
? ? ?y^ y$ y0 ye yw yb
? ? ?yy : 復制一整行
? ? ?#yy : 復制#行
撤銷操作 :( 最多保存50次撤銷操作)
? ? ?u : 撤銷此前的操作
? ? ?可以支持前面加數字#u
? ? ?? ? ?? ? ?Ctrl+r : 撤銷此前的撤銷操作
改變命令
? ? ?編輯模式 –> 輸入模式 ; 實現刪除操作且切換至輸入模式
? ? ?c# c$ c^ c0 cb ce cw
? ? ?cc : 刪除光標所在的行,并轉換為輸入模式;
? ? ?#cc :
可視化模式
? ? ?v :按字符選定;
? ? ?V :按行選定 ;
? ? ?? ? ?結合編輯命令 : d , c, y
重復執行前一個編輯操作
? ? ?. :可重復此前的操作
vim 末行模式
? ? ?內建的命令行接口;
(1) 地址定界
? ? ?語法:start_pos[,end_pos]
? ? ?參數
? ? ?#: 特定的第#行,例如5即第5行;
? ? ?. : 表示當前行
? ? ?$ : 最后一行
? ? ?#,#: 指定行范圍,左側為起始行,右側為結束行;
? ? ?#,+# : 指定行范圍,左側為起始絕對編號,右側為相對左側行號的偏移量;
? ? ?例如;3,+7 表示從3行開始向后加7行
? ? ?% : 表示全文
? ? ?/pattern/ : 從光標所在處起始,第一次被模式所匹配到的行;
可同編輯命令一同食用,實現編輯操作: d ,y , c
語法
? ? ?w/PATH/TO/SOMEFILE : 將范圍內的文本保存至指定的文件中;
? ? ?r /PATH/TO/SOMEFILE : 將指定的文件中的文本讀取并插入指定位置;
(2) 查找
? ? ?/PATTERN : 從當前光標所在處向文件尾部查找能夠被當前模式匹配到的所有字符串;
? ? ??PATTREN : 從當前光標所在處想文件首部查找能夠被當前模式匹配到的所有字符串;
? ? ?支持 : n : 下一個,與命令方向相同;
? ? ?N : 上一個,與命令方向相反;
(3) 查找替換
? ? ?s : 末行模式的命令;
? ? ?語法: s/要查找的內容/替換為的內容/修飾符
? ? ?要查找的內容:只可用正則表達式;
? ? ?替換為的內容:不能使用正則表達式,但可引用;
? ? ?如果要查找的內容部分在模式之中使用了分組符號:在替換為的內容中使用后向引用
? ? ?直接引用查找模式匹配到的全部文本;要使用&符號;
? ? ?修飾符
? ? ?i : 查找時忽略大小寫
? ? ?g : 全局替換 , 意為著一行中如果匹配到多次,則均替換;
? ? ?可把分隔符 替換為非常用字符:
? ? ? ? ?例如 : s@
? ? ?? ? ?? ? ?? ? ?? ? ?s#
vim 的多文件功能
多文件
? ? ?vim FILE1 FILE2 FILE3
在文件間切換
? ? ?:next 下一個
? ? ?:prev 上一個
退出所有文件
? ? ?:wqall 保存所有文件并退出 ;
? ? ?:wall 全部保存;
? ? ?:qall 全部退出;
多窗口
? ? ?打開文件時候參數
? ? ?vim -o : 水平分割窗口
? ? ?vim -O: 垂直分割窗口
在窗口間切換 : Ctrl+w , 上下左右
注意 :單個文件也可以分割為多個窗口進查看:
? ? ?Ctrl+w , s :水平分割窗口
? ? ?Ctrl+w , v : 垂直分割窗口
定制vim的工作特性
? ? ?注意:在末行模式下的設定,僅對當前vim進程有效;
? ? ?永久有效:
? ? ?? ? ?? ? ?全局 : /etc/vimrc
? ? ?? ? ?? ? ?當前用戶; 在自己的家目錄下建一個 vimrc文件
1、行號
? ? ?顯示 : set number , 簡寫為 : set nu
? ? ?取消顯示:set nonumber 簡寫為 : set nonu
2、括號匹配高亮
? ? ?匹配: set showmatch , set sm
? ? ?取消: set nosm
3、自動縮進
? ? ?啟用 : set ai
? ? ?禁用 : set noai
4、高亮搜索
? ? ?啟用: set hlsearch
? ? ?禁用: set nohlsearch
5、語法高亮
? ? ?啟用: syntax on
? ? ?禁用: syntax off
6、忽略字符大小寫
? ? ?啟用: set ic
? ? ?禁用: set noic
獲取幫助
? ? ?:help
? ? ?: help subject
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/95396