Linux基礎命令-vim

文本處理工具vim

一、文本編輯工具介紹

1. vim簡介

1.vi: Visual Interface,文本編輯器
2.文本:ASCII, Unicode
3.文本編輯種類:
	行編輯器: sed
	全屏編輯器:nano, vi
	vim - Vi Improved
4.其他編輯器:
	gedit 一個簡單的圖形編輯器
	gvim 一個Vim編輯器的圖形版本

2. vim小炒

在這裏插入圖片描述

3. 打開文件

1.# vim [OPTION]... FILE...
	+# 打開文件後,讓光標處於第#行的行首,+默認行尾
	+/PATTERN 讓光標處於第一個被PATTERN匹配到的行的行首
	–b file 二進制方式打開文件
	–d file1 file2… 比較多個文件
	-m file 只讀打開文件
2.vim -e file 或 ex file 直接進入ex模式
3.如果該文件存在,文件被打開並顯示內容
  如果該文件不存在,當編輯後第一次存盤時創建它

4. 關閉文件

1.擴展命令模式:
	:q 退出
	:q! 強制退出,丟棄做出的修改
	:wq 保存退出
	:x 保存退出
2.命令模式
	ZZ 保存退出
	ZQ 不保存退出

二、vim的三種模式

1. vim:一個模式編輯器

1.擊鍵行爲是依賴於 vim的 的“模式”
2.三種主要模式:
	命令(Normal)模式:默認模式,移動光標,剪切/粘貼文本
	插入(Insert)或編輯模式:修改文本
	擴展命令(extended command )模式:保存,退出等
3.Esc鍵 退出當前模式
4.Esc鍵 Esc鍵 總是返回到命令模式

2. vim模式

在這裏插入圖片描述

3. 模式轉換

1.命令模式 --> 插入模式
	i insert, 在光標所在處輸入
	I 在當前光標所在行的行首輸入
	a append, 在光標所在處後面輸入
	A 在當前光標所在行的行尾輸入
	o 在當前光標所在行的下方打開一個新行
	O 在當前光標所在行的上方打開一個新行
2.插入模式 --------> 命令模式
	ESC
3.命令模式 --------> 擴展命令模式
	:
4.擴展命令模式 --------> 命令模式
	ESC,enter

三、命令模式

1. 命令模式光標跳轉

1.字符間跳轉:
	h: 左 l: 右 j: 下 k: 上
	#COMMAND:跳轉由#指定的個數的字符
2.單詞間跳轉:
	w:下一個單詞的詞首
	e:當前或下一單詞的詞尾
	b:當前或前一個單詞的詞首
	#COMMAND:由#指定一次跳轉的單詞數
3.當前頁跳轉:
	H:頁首 M:頁中間行 L:頁底
	zt:將光標所在當前行移到屏幕頂端
	zz:將光標所在當前行移到屏幕中間
	zb:將光標所在當前行移到屏幕底端
4.行首行尾跳轉:
	^ 跳轉至行首的第一個非空白字符
	0 跳轉至行首
	$ 跳轉至行尾
5.行間移動:
	#G 或者擴展命令模式下:# 跳轉至由第#行
	G 最後一行
	1G, gg 第一行
6.句間移動:
	) 下一句 ( 上一句
7.段落間移動:
	} 下一段 { 上一段

2. 命令模式翻屏操作

	Ctrl+f 向文件尾部翻一屏
	Ctrl+b 向文件首部翻一屏
	Ctrl+d 向文件尾部翻半屏
	Ctrl+u 向文件首部翻半屏

3. 命令模式操作

1.字符編輯:
	x 刪除光標處的字符
	#x 刪除光標處起始的#個字符
	xp 交換光標所在處的字符及其後面字符的位置
	~ 轉換大小寫
	J 刪除當前行後的換行符
2.替換命令(r, replace)
	r 替換光標所在處的字符
	R 切換成REPLACE模式
3.刪除命令:
	d 刪除命令,可結合光標跳轉字符,實現範圍刪除
	d$ 刪除到行尾
	d^ 刪除到非空行首
	d0 刪除到行首
	dw
	de
	db
	#COMMAND
4.dd:刪除光標所在的行
	#dd 多行刪除
5.D:從當前光標位置一直刪除到行尾,等同於d$
6.複製命令(y, yank):
	y 複製,行爲相似於d命令
	y$
	y0
	y^
	ye
	yw
	yb
	#COMMAND
7.yy:複製行
	#yy 複製多行
8.Y:複製整行
9.粘貼命令(p, paste):
	p(小寫)緩衝區存的如果爲整行,則粘貼當前光標所在行的下方;否則,則粘貼至當前光標所在處的後面
	P(大寫)緩衝區存的如果爲整行,則粘貼當前光標所在行的上方;否則,則粘貼至當前光標所在處的前面
10.改變命令(c, change)
	c: 修改後切換成插入模式
11.命令模式 --> 插入模式
	c$
	c^
	c0
	cb
	ce
	cw
	#COMMAND
12.cc:刪除當前行並輸入新內容,相當於S
	#cc
13.C:刪除當前光標到行尾,並切換成插入模式

4. 命令模式:操作文本

在這裏插入圖片描述

5. 命令模式:查找

查找
	/PATTERN:從當前光標所在處向文件尾部查找
	?PATTERN:從當前光標所在處向文件首部查找
	n:與命令同方向
	N:與命令反方向

6. 命令模式:撤消更改

	u 撤銷最近的更改
	#u 撤銷之前多次更改
	U 撤消光標落在這行後所有此行的更改
	Ctrl - r 重做最後的“撤消”更改
	. 重複前一個操作
	#. 重複前一個操作#次

7. 命令模式

1.100iwang [ESC] 粘貼“wang”1002.<start position><command><end position>
3.常見Command
	y 複製、d 刪除、gU 變大寫、gu 變小寫
	例如: 0y$ 命令
	0 → 先到行頭
	y → 從這裏開始拷貝
	$ → 拷貝到本行最後一個字符
4.di" 光標在”“之間,則刪除”“之間的內容
5.yi( 光標在()之間,則複製()之間的內容
6.vi[ 光標在[]之間,則選中[]之間的內容
7.dtx 刪除字符直到遇見光標之後的第一個 x 字符
8.ytx 複製字符直到遇見光標之後的第一個 x 字符

四、擴展命令模式

1. 擴展命令模式

1.按“:”進入Ex模式
2.創建一個命令提示符: 處於底部的屏幕左側
3.常見命令
	w 寫(存)磁盤文件
	wq 寫入並退出
	x 寫入並退出
	q 退出
	q! 不存盤退出,即使更改都將丟失
	r filename 讀文件內容到當前文件中
	w filename 將當前文件內容寫入另一個文件
	!command 執行命令
	r!command 讀入命令的輸出

2. 擴展命令模式:地址定界

1.地址定界
	:start_pos,end_pos
	# 具體第#行,例如2表示第2行
	#,# 從左側#表示起始行,到右側#表示結尾行
	#,+# 從左側#表示的起始行,加上右側#表示的行數
		示例:2,+3 表示25. 當前行
	$ 最後一行
		.,$-1 當前行到倒數第二行
	% 全文, 相當於1,$
2./pattern/ 匹配pattern的行
3./pat1/,/pat2/
	從第一次被pat1模式匹配到的行開始,一直到第一次被pat2匹配到的行結束
	#,/pat/
	/pat/,$
4.使用方式:後跟一個編輯命令
	d
	y
	w file: 將範圍內的行另存至指定文件中
	r file:在指定位置插入指定文件中的所有內容

3. 擴展命令模式:查找並替換

1.在擴展命令模式下完成查找替換操作
	格式:s/要查找的內容/替換爲的內容/修飾符
	要查找的內容:可使用模式
	替換爲的內容:不能使用模式,但可以使用\1, \2, ...等後向引用符號;還可以使用“&”引用前面查找時查找到的整個內容
	
	修飾符:
	i 忽略大小寫
	g 全局替換,默認情況下,每一行只替換第一次出現
	gc 全局替換,每次替換前詢問
	
2.查找替換中的分隔符/可替換爲其它字符
	s@/etc@/var@g
	s#/boot#/#i

五、其他模式

1. 可視化模式

1.允許選擇的文本塊
	v 面向字符
	V 面向行
	ctrl-v 面向塊
2.可視化鍵可用於與移動鍵結合使用
	w ) } 箭頭等
3.突出顯示的文字可被刪除,複製,變更,過濾,搜索,替換等

六、定製vim特性

1. 定製vim的工作特性

配置文件:永久有效
	全局:/etc/vimrc
	個人:~/.vimrc
擴展命令模式:當前vim進程有效
(1) 行號
	顯示:set number,簡寫 set nu
	取消顯示:set nonumber, 簡寫 set nonu
(2) 忽略字符的大小寫
	啓用:set ignorecase,簡寫 set ic
	不忽略:set noic
(3) 自動縮進
	啓用:set autoindent,簡寫 set ai
	禁用:set noai
(4) 複製保留格式
	啓用:set paste
	禁用:set nopaste
(5) 顯示Tab和換行符 ^I 和$顯示
	啓用:set list
	禁用:set nolist
(6) 高亮搜索
	啓用:set hlsearch
	禁用:set nohlsearch
(7) 語法高亮
	啓用:syntax on
	禁用:syntax off
(8) 文件格式
	啓用windows格式:set fileformat=dos
	啓用unix格式:set fileformat=unix
	簡寫 set ff=dos|unix
(9) 設置文本寬度
	set textwidth=65 (vim only)
	set wrapmargin=15
(10) 設置光標所在行的標識線
	啓用:set cursorline,簡寫 set cul
	禁用:set nocursorline

擴展:
Set 幫助
	:help option-list
	:set or :set all
vi/vim內置幫助
	:help
	:help topic
	Use :q to exit help
vimtutor

七、vim其他特性

1. vim的寄存器

1.26個命名寄存器和1個無命名寄存器,常存放不同的剪貼版內容,可以不同會話間共享
2.寄存器名稱a,b,,z,格式:“寄存器 放在數字和命令之間
	如:3"tyy 表示複製3行到t寄存器中
	"tp 表示將t寄存器內容粘貼
3.未指定,將使用無命名寄存器
4.10個數字寄存器,用01,…,9表示,0存放最近複製內容,1存放最近刪除內容。
當新的文本變更和刪除時,1轉存到22轉存到3,以此類推。數字寄存器不能在不
同會話間共享

2. 標記和宏(macro)

1.ma 將當前位置標記爲a,26個字母均可做標記, mb 、 mc 等等
2.'a 跳轉到a標記的位置,實用的文檔內標記方法,文檔中跳躍編輯時很有用
3.qa 錄製宏 a,a爲宏的名稱
4.q 停止錄製宏
5.@a 執行宏 a
6.@@ 重新執行上次執行的宏

3. 編輯二進制文件

1.以二進制方式打開文件
	vim –b binaryfile
2.擴展命令模式下,利用xxd命令轉換爲可讀的十六進制
	:%!xxd
3.插入模式下,編輯二進制文件
4.擴展命令模式下,利用xxd命令轉換回二進制
	:%!xxd -r
5.保存退出

4. 使用多個“窗口”

1.多文件分割
	vim -o|-O FILE1 FILE2 ...
	-o: 水平分割
	-O: 垂直分割
	在窗口間切換:Ctrl+w, Arrow
2.單文件窗口分割
	Ctrl+w,s:split, 水平分割
	Ctrl+w,v:vertical, 垂直分割
	ctrl+w,q:取消相鄰窗口
	ctrl+w,o:取消全部窗口
	:wqall 退出
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章