2017-08-03 20:26:59 @唯願此心無怨尤linux
學習linux之文本編輯器vim正則表達式
今天對vim中一些經常使用的基本功能進行總結。vim
vim(visual interface improved)windows
三種主要模式:app
命令模式:默認模式,移動光標,剪切/粘貼文本dom
插入模式(編輯模式):修改文本編輯器
擴展命令模式:保存、退出等學習
三種模式之間的轉換:測試
vim打開文件經常使用方式:url
-m 只讀方式打開文件
-b 二進制打開文件
-d file1 file2 打開多個文件
直接打開文件,如文件不存在則建立
經常使用功能總結:
1、文件的保存以及退出
擴展模式:
q退出
q!強制退出
w保存
wq或x保存並退出
wq!或x!當文件對當前用戶權限爲read-only時,能夠強制保存並退出(僅限root和當前文件的owner)
命令模式:
ZZ:保持而且退出
ZQ:不保存而且退出
2、所編輯的文本中一些經常使用跳轉操做命令
ctrl +f 向下翻一屏
ctrl +b 向上翻一屏
ctrl +d 向下翻半屏
ctrl +u 向上翻半屏
gg:跳到首行
H:跳到當前頁的首行
L: 跳到當前頁的尾行
M: 跳到當前而的中間行
hijk:左右下上
3、文本刪除操做經常使用命令
d$: 刪除到行尾
d^:刪除到非空行首
d0:刪除到行首
dw:從光標所在處刪除到單詞尾
de:從光標所在處刪除到單詞尾
db:從光標所在處刪除到單詞頭
dd: 刪除光標所在的行
#dd:多行刪除 ,其中#爲所要刪除行的數字
4、文本複製操做經常使用命令
y$:複製到行尾
y0:複製到行首
y^:複製到非空行首
yy:複製當前行
#yy: 複製多行
ps:其實用鼠標選中須要複製內容便可
5、文本粘貼操做經常使用命令
p:緩衝區存的若是爲整行,則粘貼當前光標所在行的下方;不然,則粘貼至當前光標所在處的後面
P:緩衝區存的若是爲整行,則粘貼當前光標所在行的上方;不然,則粘貼至當前光標所在處的前面v
6、文本搜索替換經常使用命令
s/要查找的內容/替換爲的內容/修飾符
其中修飾符爲:
i:忽略大小寫
g:全局替換
gc:全局替換,每一次替換前詢問時否進行替換
ps:關於全局替換的問題,能夠在s前加%,如%s/aaa/bbb/g,該命令表示在全文搜索aaa,而且把全部aaa替換爲bbb;若這裏沒有%或者沒有g,只會替換每一行所搜索到的第一個aaa。
查找:/查找的內容
ps以上都支持正則表達式,例子以下:
複製/etc/rc.d/init.d/functions文件至/tmp目錄,用查找替換命令爲/tmp/functions的每行開頭爲空白字符的行的行首添加一個#號
解決方法1 %s/^[[:spacge:]]/# /g
解決方法2 %s/^\([[:space:]]\)/#\1/g
解決方法3 %s/^[[:space:]]/#&/
7、撤銷更改以及重複操做經常使用命令
#u:撤銷以前#次更改
U:撤消光標落在這行後全部此行的更改
:e! :恢復到上次保存該文件的狀態
按Ctrl - r重作最後的「撤消」更改
. 重複前一個操做
n.重複前一個操做n次
位置參數介紹以及使用
$1-$9 按照打開須要編輯的文件依次傳入數據,例:vim test.txt 3,若文件中有$1,則直接賦值爲3,若沒有,則忽略
$0 表示文件名字
$10 及其之後的位置參數要用{},不然會被認爲是$1和0,表示爲${10}
位置參數的應用:
在每一次寫腳本時,爲了規範,都須要在開頭寫一些註釋,好比做者名字,日期等等等,其次在每一次寫完
腳本都須要進行一些操做,好比給予執行權限等等,那麼咱們利用位置參數能夠簡化這些操做
測試截圖以下,當我建立一個名字爲test9.sh時,效果及其代碼以下:
Vim配置一些基本功能
全局設置的配置文件:(已存在)/etc/vimrc
本用戶的配置文件:(不存在,須要本身建立)~/.vimrc
一、行號
二、括號成對匹配
三、自動縮進
四、高亮搜索
五、語法高亮
六、忽略字符大小寫
七、設置文件的格式
八、設置文本的寬度