一、文本編輯器的種類主要有:
行編輯器:sed
全屏編輯器:nano,vi
vim – Vi Improved(vi文本編輯器的升級版)
二、Vim文本編輯器相關命令:
Vim是從?vi發展出來的一個文本編輯器。代碼補全、編譯及錯誤跳轉等方便編程的功能特別豐富,在程序員中被廣泛使用。
1.vim打開文件:
vim[option]…FILE…
+#??? 打開文件后,讓光標處于第#行行首
-o???? 后跟多個文件可水平顯示多個窗口
-O??? 后跟多個文件可垂直顯示多個窗口
-b???? 以二進制方式打開文件
-d file1 file2… 比較多個文件
注:當一個文件不存在時,用vim打開編輯存盤后會自動創建它
2.vim的三種主要模式:
命令(normal)模式:默認模式,可移動光標,剪切/粘貼文本。左下角顯示文本路徑,行數,字符數,右下角顯示光標位置
插入(insert)模式:也叫編輯模式,修改文本。左下角顯示 –INSERT–
擴展命令(extended command)模式:保存、退出等。左下角顯示 “:”
3.vim模式切換:
命令模式—>插入模式
i:在光標處輸入
I:在光標所在行首輸入
a:在光標所在處后輸入
A:在光標所在行行尾輸入
o:在光標所在行的下方打開一個新行
O:在光標所在行的上方打開一個新行
插入模式—>命令模式
ESC
命令模式—>擴展命令模式
:
擴展命令模式—>命令模式
ESC,Enter
4.vim的其他一些模式:
替換(replace)模式:??????? 命令模式下R切換,可隨意替換字符;右下角顯示–REPALCE–
可視化(visual)模式:v??? 切換面向字符的可視化模式;右下角顯示–VISUAL–
V? 切換面向行的可視化模式
ctrl+v?? 面試塊的可視化模式
5.vim關閉文件
擴展模式
按”:”從命令模式進入Ex模式
wq?? 存盤退出
q?????? 文本未修改,不存盤退出
q!? 文本已被修改,想不存盤退出
w file ???? 文件另存為file
r file 讀取file文件內容到當前文件
!command??? 直接在擴展模式下執行命令
r!command? 讀入命令的輸入到當前文件光標處
命令模式下也可關閉文件(不推薦使用)
ZZ???? 保存退出
ZQ??? 不保存退出
6.命令模式常用命令:
單詞間跳轉:
w????? 下一個單詞詞首
e?????? 下一個單詞詞尾
b?????? 當前或前一個單詞的詞首
當前頁跳轉:
H????? 頁首
M???? 頁中間
L?????? 頁底
行首行尾跳轉:
^?????? 跳轉至行首第一個非空白字符
0?????? 跳轉至行首
$?????? 跳轉至行尾
行間移動:
#G??? 調至第#行;擴展模式下可執行 :G
G????? 最后一行
1G,gg??? 第一行
命令模式下字符操作
x:刪除光標所在處字符
#x:刪除從光標所在處開始#個字符
xp:交換光標所在處字符和它后面字符的位置(原理是剪切粘貼)
~:波浪符轉換大小寫
J:刪除當前行后的換行符
r:替換光標所在處字符
d:刪除命令
d$??? 當前光標刪除至行尾
d^??? 當前光標刪除到非空行首
d0??? 當前光標刪除到行首
dw?? 刪除單詞
dd??? 刪除光標所在的行
#dd? 多行刪除,一下刪除#行
y:復制命令(用法類似d刪除)
y$???? 復制當前光標到行尾
y^???? 復當前光標位置到非空行首
yw??? 復制單詞
yy???? 復制光標所在的行
p:粘貼
p?????? 粘貼至光標所在行下一行
P?????? 粘貼至光標所在行上一行
u:撤銷更改
#u??? 撤銷之前多次修改
U????? 撤銷光標落在這行后所有此行的修改
Ctrl+r?????? 返回上次撤銷
7.擴展命令模式常用命令:
格式:地址定界+編輯命令
地址定界
:#? 跳到第#行
:#,#??? 第左側第#行,到右側第#行;2,5表示第2到第5行
:#,+#? 從左側第#行,加上右側#的行;2,+3表示第2到5行
:.?? 當前行
$?????? 最后一行
%????? 全文,相當于1,$
:/pat1/,/pat2/?????????????? 從pat1匹配到的行開始,到第一次被pat2匹配到的行
:/pat1/,#?? 可混用
使用方式:后跟一個編輯命令
d?????? 刪除
y?????? 復制
w file??????? 將范圍內行另存至指定文件中
r file 在指定位置插入匹配內容
查找字符
/PATTERN:從光標所在處向文件尾部查找
?PATTERN:從光標所在處向文件首部查找
n:與命令同方向
N:與命令反方向
s:查找并替換
格式:s/要查找的內容/替換為的內容/修飾符
修飾符:
i:忽略大小寫
g:全局替換每一行的第一次出現的匹配
gc:全局替換所有匹配,每次替換前詢問
查找替換的分隔符/可用其他分隔符代替:如#,@
命令模式
u:撤銷更改
ctrl+r??????? 恢復上一次撤銷
.??????? 重復執行上一次操作
- 重復執行上一次操作n次
8.vim的剪貼板
有26個命名剪貼板和一個無命名剪貼板,存放不同的剪切內容,可以不同會話間分享
例:”myy 表示復制光標所在行到m剪貼板
“mp 表示將m剪貼板內容粘貼
3″tyy 表示復制3行內容到t剪貼板
“tp?? 表示將t剪貼板內容粘貼
9.vim多文件模式
vim FILE1 FILE2 FILE3
:next???? 下一個文件
:prev???? 上一個文件
:first????? 第一個文件
:last?????? 最后一個文件
:wall????? 保存所有文件
:qall?????? 退出所有
:wqall?? 保存退出
單文件的窗口分隔:方便對照文件內容
ctrl+w放開后按s?????????? 水平分割
ctrl+w放開后按v????????? 垂直分割
ctrl+w放開后按q????????? 取消相鄰窗口
ctrl+w放開后按w???????? ?????? 取消全部窗口;與:wqall相同
三、定制vim的工作特性
擴展命令模式下執行:
set number????? 添加行號
set nonumber 取消行號
此操作僅臨時有效,退出重進vim后,操作失效,要想永久保存vim的工作特性,需寫入配置文件中
配置文件:使vim工作特性永久有效
全局:/etc/vimrc
個人:~/.vimrc
其他一些常用vim特性命令:
忽略大小寫
set ic??????? 忽略大小寫
set noic 取消忽略大小寫
自動縮進
set ai??????? 自動和上一行對齊
set noai?? 取消對齊
文件格式轉換
set fileformat=unix???????? Windows文件轉換Linux文件
set fileformat=dos Linux文件轉換Windows文件
設置光標所在行下劃線
set cursorline?????????? 啟用
set no cursorline???? 禁用
復制時保留格式:
set paste????????? 啟用
set nopaste????????????? 禁用
查看全部已配置的vim工作特性
:set??????? 顯示全部已配置set
:help???? 查看幫助
四、文本處理常用命令
cut??????????? 按列抽取文本
-d???? 指定分隔符
-f????? 指定第幾列
–output-delimiter=’ ‘????? 指定單引號中符號作為分隔符
diff?????????? 比較兩個文件直接的差別,后跟file1,file2
-u
head
-n???? 顯示頭n行
-c???? 顯示頭n個字節
tail
-n???? 顯示最后n行
-c???? 顯示最后n個字節
-f????? 跟蹤文本的變化(追加內容),可寫為tailf
-F???? 跟蹤文件名
sort????????? 排序
-t????? 指定分隔符(類似cut -d)
-k???? 指定第幾列(類似cut -f)
-n???? 以數字排序
-r????? 倒序排列
-f????? 忽略大小寫
-u???? 刪除重復的行壓縮到一行
-R???? 隨機排序
paste??????????????? 合并兩個文件同行號的列到一行
-s????? 合并兩個文件按一行顯示
-d???? 指定分隔符,類似cut -d的用法
grep???????? 基于行過濾的文本過濾工具(grep文本處理三劍客之一)
-v???? 顯示不被匹配到的行
-i????? 忽略字符大小寫
-n???? 添加匹配到的行的行號
-c???? 統計被匹配到的行數
-o???? 僅顯示匹配到的字符
-q???? 靜默模式
-A#?? 包含此匹配行和后#行
-B#?? 包含此匹配行和前#行
-C#?? 包含此匹配行和前后#行
-e???? 實現多個匹配字符的或者(or)關系 -e a -e b:a或b
-w??? 匹配整個單詞,數字、字母、下劃線都算單詞一部分
-r????? 遞歸目錄
-E???? 使用ERE,擴展的正則表達式
-F???? 相當于fgrep
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/95476