vi:Visueral Interface 文本編輯器
文本編輯種類
行編輯器:sed
全屏編輯器:nano,vi
VIM -Vi IMprowed
使用
vim:模式化的編輯
基本模式:
編輯模式:命令模式
輸入模式:
末行模式:
內置的命令行接口
打開文件:
# vim [OPTION]…. FILE…..
+#:打開文件后,直接讓光標處于第#行的行首
vim的編輯命令:
字符編輯:
x: 刪除光標處的字符;
#x: 刪除光標處起始的#個字符;
xp: 交換光標所在處的字符及其后面字符的位置;
替換命令(r, replace)
r: 替換光標所在處的字符
刪除命令:
d: 刪除命令,可結合光標跳轉字符,實現范圍刪除;
dd: 刪除光標所在的行;
#dd:多行刪除;
粘貼命令(p, put, paste):
p:緩沖區存的如果為整行,則粘貼當前光標所在行的下方;否則,則粘貼至當前光標所在處的后面;
P:緩沖區存的如果為整行,則粘貼當前光標所在行的上方;否則,則粘貼至當前光標所在處的前面;
復制命令(y, yank):
y: 復制,工作行為相似于d命令;
yy:復制行
#yy: 復制多行;
改變命令(c, change)
c: 修改
編輯模式 –> 輸入模式
cc:刪除并輸入新內容
#cc:
其它編輯操作
可視化模式:
v: 按字符選定
V:按行行定
Note:經常結合編輯命令;
d, c, y
撤消此前的編輯:
u(undo):撤消此前的操作;
#u: 撤消指定次數的操作;
撤消此前的撤消:
Ctrl+r
重復前一個編輯操作:
. 翻屏操作:
Ctrl+f: 向文件尾部翻一屏;
Ctrl+b: 向文件首部翻一屏;
Ctrl+d: 向文件尾部翻半屏;
Ctrl+u:向文件首部翻半屏;
vim自帶的練習教程:
vim編輯器
j向下字符k向上一個字符l 向右移動一個字符h向左移動一個字符
b 向右移動一個單詞
輸入模式–>編輯模式
ESC
編輯模式–>末行模式
:
末行模式–>編輯模式
ESC
輸入–>編輯–>末行
退出文件:
:q! 不保存退出
:wq 保存退出
:x 保存退出
:wq! 強制保存退出
編輯模式保存退出:ZZ
單詞間移動:
w: 下一個單詞詞首
e: 當前單詞或下一個單詞詞尾
b: 當前單詞或前一個單詞詞首
#{w|e|b}:
行內移動:
^: 行首第一個非空白字符
0:絕對行首
$: 絕對行尾
dd: 刪除光標所在行
d: 刪除命令
p: paste, 粘貼
y: yank, 復制
撤消此前的撤消操作:Ctrl+r
翻屏:
Ctrl+f: 向文件尾部翻一屏
Ctrl+b: 向文件首部翻一屏
測試表達式的類別:
數值比較
字符串測試
文件測試:
存在性測試
-a FILE
-e FILE: 文件存在性測試,存在為真,否則為假;
存在性及類別測試
-b FILE:是否存在且為塊設備文件;
-c FILE:是否存在且為字符設備文件;
-d FILE:是否存在且為目錄文件;
-f FILE:是否存在且為普通文件;
-h FILE 或 -L FILE:存在且為符號鏈接文件;
-p FILE:是否存在且為命名管道文件;
-S FILE:是否存在且為套接字文件;
文件權限測試:
-r FILE:是否存在且可讀
-w FILE: 是否存在且可寫
-x FILE: 是否存在且可執行
文件特殊權限測試:
-g FILE:是否存在且擁有sgid權限;
-u FILE:是否存在且擁有suid權限;
-k FILE:是否存在且擁有sticky權限;
文件大小測試:
-s FILE: 是否存且非空;
文件是否打開:
-t fd: fd表示文件描述符是否已經打開且與某終端相關
-N FILE:文件自動上一次被讀取之后是否被修改過;
-O FILE:當前有效用戶是否為文件屬主;
-G FILE:當前有效用戶是否為文件屬組;
雙目測試:
FILE1 -ef FILE2: FILE1與FILE2是否指向同一個設備上的相同inode
FILE1 -nt FILE2: FILE1是否新于FILE2;
FILE1 -ot FILE2: FILE1是否舊于FILE2;
組合測試條件:
邏輯運算:
第一種方式:
COMMAND1 && COMMAND2
COMMAND1 || COMMAND2
! COMMAND
[ -e FILE ] && [ -r FILE ]
第二種方式:
EXPRESSION1 -a EXPRESSION2
EXPRESSION1 -o EXPRESSION2
! EXPRESSION
必須使用測試命令進行;
原創文章,作者:kang,如若轉載,請注明出處:http://www.www58058.com/76284