Linux 第八天: Linux文本編輯器vim

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

(0)
dengjiandengjian
上一篇 2016-08-11 09:37
下一篇 2016-08-11 09:37

相關推薦

  • CollabNetSubversionEdge服務搭建

    準備目錄并設置權限 [root@localhost ~]# mkdir /var/svn [root@localhost ~]# chown bohui:bohui /var/svn/ [root@localhost ~]# chmod 700 /v…

    Linux干貨 2015-10-18
  • Linux簡單命令

    cal 日歷 bc? 計算器 ? ? obase=2 輸出為二進制?????? ibase=2輸入為二進制????? \onnn八進制????? \xHH十六進制 $()識別命令和變量,同反向單引號 , 可在命令調用另一個命令的執行結果時用 字體顏色:紅色-打包文件(壓縮包),綠色-可執行,淺藍-軟連接,藍色-目錄 echo $SHELL查看當前shell …

    Linux干貨 2018-03-18
  • 磁盤管理

    磁盤管理 本文將按順序以實例演示磁盤管理的所有操作,讓我們開始吧! 一,磁盤的添加 ① 先來查看linux系統總共有幾個磁盤,由圖可知是兩個,分別是sda,sdb。我們再加一個,按照磁盤命名順序,應是sdc,他們都在/dev目錄下。 補充: 1,磁盤命名規則: 不同磁盤,按照a-z依次標識,如sda,sdb,sdc 同一磁盤的不同分區,按照1,2,&#823…

    2017-08-19
  • Nginx lnmp環境及https的實現

    一、http事務簡明  request: <method> <URL> <VERSION> MHADERS <body> response: <version><status><reason phrase> <HEADERS> … <body&…

    2014-09-25
  • 如何查找Ubuntu系統中占用磁盤最大的那些文件夾

    根據馬哥的指導,我們需要用df和du兩個磁盤管理命令來查看 先用df來了解磁盤大致的空間情況: 然后用du -sh 某個folder來查看哪個文件夾占用多少空間 然后我們可以用du /homewebown | sort -nr | more 可來定位具體是哪個文件夾占用空間過大。

    Linux干貨 2016-11-06
  • Linux find命令使用詳則

    find命令 find命令用來在指定目錄下查找文件。任何位于參數之前的字符串都將被視為欲查找的目錄名。如果使用該命令時,不設置任何參數,則find命令將在當前目錄下查找子目錄欲文件。并且將查找到的子目錄和文件全部進行顯示。 語法 find(選項)(參數) 選項 -amin<分鐘>:查找在指定時間曾被存取過的文件或者目錄,單位以分鐘計算; -ane…

    2017-08-03
欧美性久久久久