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
下一篇 2016-08-11

相關推薦

  • 馬哥教育網絡班19期+第三周課程練習

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。   whoami 只顯示已經登錄的用戶     who | cut -d' ' -f1 | sort&nbs…

    Linux干貨 2016-06-19
  • openssl基礎應用

    參考http://www.www58058.com/2704 http://www.williamlong.info/archives/837.html 一、前言 什么是openssl?講openssl之前我們先了解下什么是ssl?ssl是secure socket layer的簡稱,其使用對稱加密解密,非對稱加密解密(公鑰加密解密),單向加密解密結合證書實…

    Linux干貨 2015-09-27
  • 程序包管理之YUM解析

    前言:    yum是rpm的前端程序,用來解決軟件包相關依賴性,可以在多個庫之間定位軟件包,如果直接使用rpm直接安裝程序包也可以,但是需要自己手工解決程序包依賴性的問題,可能程序包的依賴性非常復雜,那么直接使用rpm安莊,就會非常麻煩,而使用YUM安裝就會自動解決依賴性的問題。大大簡化了安裝過程。  YUM客戶端配置文件: …

    Linux干貨 2016-08-24
  • 馬哥教育網絡班19期+第7周課程練習

    1.創建一個10G分區,并格式為ext4文件系統:   (1)要求其block大小為2048,預留空間百分比為2,卷標為MYDATA,默認掛載屬性包含acl;   (2)掛載至/data/mydata目錄,要求掛載時禁止程序自行運行,且不更新文件的訪問時間戳;   fdisk /dev/sdb    part…

    Linux干貨 2016-06-22
  • LVM邏輯卷管理

    前言     通常情況下,在操作系統上新建了一個分區并在此分區創建文件系統后,該文件系統的大小就固定了。假如要增加此文件系統的大小,我們不得不添加一塊硬盤并重新分區,創建文件系統,然后把原文件系統的數據完整復制過來。如果第二次分區時分配的空間太大,用不完又浪費該怎么辦呢?重復此前的流程又將花費大量的時間,有沒有更便捷的…

    Linux干貨 2015-05-04
  • linux文件系統上的權限

    文件系統上的權限是指文件系統上的文件和目錄的權限,主要針對三類對象進行的(訪問者)進行的定義: 針對文件來說 r 使用工具cat nano去看文件里面內容的權限 w 可以修改文件的內容 x 二進制程序以及腳本需要發起系統調用,去啟動為一個進程 針對目錄來說 r 是否可以查看目錄里面的內容 有r權限的話 可以使用ls -l w 對目錄里面是否可以創建文件或者目…

    Linux干貨 2017-04-01
欧美性久久久久