Linux 第八天: (08月09日) Linux文本編輯器vim
sed 行編輯器 stream EDitor
sed -n 不輸出模式空間內容的自動打印
sed -e 多點編輯
sed -f /PATH/TO/SCRIPTFILE
sed -i 原處編輯
script
單地址
# 指定的行
/pattern/ 所能匹配到底每一行
地址范圍
#,#
#,+#
/pat1/,/pat2/
#,/pat1/
~ 步進
1~2 奇數行
2~2 偶數行
sed d 刪除模式空間匹配的行
sed p 顯示模式空間中的內容
sed a \text 在行后追加文件, 支持\n多行追加
sed i \test 在行前插入文件, 支持\n多行插入
sed c \text 替換行為單行貨多行文本
sed w /path/to/somefile 保存模式匹配的行到指定文件
sed r /path/form/somefile 讀取指定文件的文本到模式空間匹配行后
sed = 為模式空間中的行打印行號
sed ! 模式空間中匹配行取反處理
s/// 查找替換, 可用其它分隔符 s@@@ s###
替換標記
g 行內全局替換
p 顯示替換成功的行
w /PATH/TO/SOMEFILE 將替換的行保存到文件
sed 高級編輯命令
h 模式空間中的內容覆蓋到保持空間中
H 模式空間中的內容追加到保存空間中
g 保持空間取出數據覆蓋至模式空間
G 保持空間取出內容追加至模式空間
x 模式空間與保持空間內容互換
n 覆蓋匹配的行的下一行到模式空間
N 追加匹配的行的下一行到模式空間
d 刪除模式空間的行
D 刪除當前模式空間開端到n的內容
vi Visal Interface 文本編輯器
vim VI iMproved
sed 行編輯器
nano 全屏編輯器
gedit 圖形編輯器
gvim 圖形版本的vim
vim +/pattern 打開文件 光標在第一個pattern的行
vim +# 打開文件 光標在第#行
vim + file 打開文件 光標在最后一行
vim -b file 二進制打開文件
vim -d file1 file2 比較文件
vim -m file 只讀打開文件
vim -e 或ex file 直接進入ex模式
命令模式 移動光標 剪切粘貼文本
插入模式 修改文本
擴展命令模式 保存退出等
esc 退出當前模式
esc esc 返回命令模式
命令模式 –> 插入模式
i: insert 在光標處輸入
I 在光標所在行首輸入
a append 在光標后輸入
A 在光標所在行尾輸入
o 在光標所在行下方打開一個新行
O 在光標所在行上方打開一個新行
模式轉換
插入模式 –> 命令模式 esc
命令模式 –> 擴展模式 :
擴展模式 –> 命令模式 esc
鎖定解鎖 ctrl+s ctrl+q
擴展模式
q 退出
q! 強制退出
wq 保存退出
x 保存退出
命令模式
ZZ 保存退出
ZQ 不保存退出
擴展模式
: 進入ex模式
w 寫存磁盤文件
wq 寫入并退出
x 寫入并退出
q 退出
q! 不存盤退出
r filename 讀文件內容到當前文件中
w filename 寫當前文件內容到另一文件
字符跳轉
h 左
l 右
j 下
k 上
# COMMAND 跳轉#個字符
單詞跳轉
w 下個單詞首
e 當前或下個單詞尾
b 當前或前個單詞首
# COMMAND 跳轉#個單詞
當前頁跳轉
H 頁首
M 頁中
L 頁底
行首行尾跳轉
^ 跳轉到行首非空白字符
O 跳轉到行首
$ 跳轉到行尾
行間移動
#G 擴展模式 # 跳轉到#行
G 最后一行
1G, gg 第一行
句間移動
): 下一句
(: 上一句
段落間移動
}: 下一段
{: 上一段
ctrl+f 向文件尾部翻一屏
ctrl+b 向文件首部翻一屏
ctrl+d 向文件尾部翻半屏
ctrl+u 向文件首部翻半屏
字符編輯
x 刪除光標處的字符
#x 刪除光標處起始#個字符
xp 交換光標所在處及后面字符
~ 轉換大小寫
替換命令
r 替換光標所在處的字符
R 切換成REPLACE模式
刪除命令
d 刪除命令
d$ 刪除到行尾
d^ 刪除到非空行首
d0 刪除到行首
dw
de
db
dd 刪除光標所在行
#dd 多行刪除
D 等同 d$
復制命令
y 復制 等同d
y$
y0
y^
ye
yw
yb
#yy 復制多行
粘貼命令
p 整行粘貼于下方, 非整行粘貼于后面
P 整行粘貼于上方, 非整行粘貼于前面
改變命令
c$
c^
c0
cb
ce
cw
#cc 刪除多行
C 刪除光標到行尾, 并切換成插入模式
命令模式
100iwang[esc]粘貼wang 100次
地址定界
# 第#行
#,# 從#到#行
#,+# 從#加#行
. 當前行
& 最后行
&-1 倒數第二行
.,$-1 當前行到倒數第二行
% 全文 1,$
擴展模式
/pat1/,/pat2/ 從第一次pat1匹配到的行開始, 到第一次pat2匹配到的行結束
#,/pat/
/pat/,$
查找
/PATTERN 從當前光標向文件尾部查找
?PATTERN 從當前光標向文件首部查找
n 與命令同向
N 與命令反向
擴展模式
s/要查找的內容/替換為的內容/修飾符
要查找的內容 可以使用模式
要替換的內容 不能使用模式, 但可以使用\1,\2,后向引用符號
還可以使用"&"引用前面查找到的整個內容
i 忽略大小寫
g 全局替換
gc 全局替換 每次詢問
撤銷更改
u 撤銷最近更改
#u 撤銷多次更改
U 撤銷光標落在這行后所有此行更改
ctrl -r 重做最后撤銷更改
. 重復前一個操作
n. 重復前一個操作n次
編輯二進制文件
vim -b binaryfile 打開二進制文件
:%!xxd 轉換為十六進制
:%!xxd -r 轉換回二進制
可視化模式
v 面向字符
V面向行
ctrl -v 面向塊
多文件模式
vim FILE1 FILE2 FILE3
:next 下一個
:prev 前一個
:first 第一個
:last 最后一個
:wall保存所有
:qall 退出所有
:wqall
多文件分割
vim -o|-O FILE1 FILE2
-o 水平分割
-O 垂直分割
ctrl+w, Arrow 窗口間切換
單文件窗口分割
ctrl+w,s split 水平分割
crtl+w,v vertical 垂直分割
ctrl+w,q 取消相鄰窗口
ctrl+w,o 取消全部窗口
:wqall 退出
定制vim工作特性
/etc/vimrc 全局配置
~/.vimrc 個人配置
擴展模式 當前vim進程有效
set number 簡寫set nu 顯示行號
det nonumber 簡寫set nonu 取消顯示行號
set showmatch 簡寫set sm 括號成對匹配
set noshowmatch 簡寫set nosm 取消顯示括號匹配
set ai 自動縮進
set noai 取消自動縮進
set hlsearch 高亮顯示
set nohlsearch 取消高亮顯示
syntax on 語法高亮
syntax off 取消語法高亮
set ic 忽略大小寫
set noic 取消忽略大小寫
fileformat=unix 文件格式unix
fileformat=dos 文件格式dos
set textwidth=65 (vim only)
set wrapmargin=15
:help option-list
:set or :set all
原創文章,作者:dengjian,如若轉載,請注明出處:http://www.www58058.com/32936