定義:文本(純文本信息,必須是不加任何修飾的文本信息)編輯器
文本編輯器種類:
行文本編輯器 :sed
全屏文本編輯器:nano 、vim
VI全稱:visual interface ,vim為vi的增強版,為vi improve
vim(vi Improve)用法
vim 選項 文件:打開的文件不存在,自動創建新文件,存在直接打開文件
vim文本編輯器三種模式(千萬弄清三種模式哦,不要混亂):
命令模式:
輸入模式:
擴展編輯模式:
系統內置的命令行接口
三種模式之間的轉換:
命令模式:默認模式
命令模式——>文輸入模式
i:insert ,光標所在處向前輸入
I:光標所在行的行首輸入
a:append,光標所在處的后方轉換為輸入
A:光標所在行的行尾輸入
o:在光標所在處下方直接打開一行,光標處于行首
O:光標坐在處的上方打開一個新行
從輸入模式|擴展模式———>命令模式:按ESC模式
從命令模式———>擴展模式:按:建
小白們注意啦!:不能從插入模式直接到擴展命令模式
文件鎖定和解鎖:ctrl+s和ctrl+q
vim 打開文檔
+ #:打開文件后,讓光標處于第#行的行首
+/pattern模式(正則表達式):打開文件后,直接讓光標處于第一個匹配字符的行首
+:將光標自動處于文件行尾
-m:打開的文件只有讀權限,不能進行編輯保存
-b:二進制方式打開文件
-d:打開多個文件
六種模式舉例:
一、讓光標處于第五行:
二、 將光標處于匹配模式的行:
三、自動將光標處于行尾
四、打開的文件只有讀權限,對其進行編輯將不能進行保存
五、以二進制方式打開文件
六、打開多個文件(會標注兩個文件不同的地方)
vim關閉文檔:
擴展模式下:
:q退出,文件未做過任何操作
:q!不保存退出
:wq保存退出
:x保存退出
:w/路徑 將文件保存到另外文件中
命令模式下:
輸入ZZ(兩個大Z):保存退出
輸入ZQ:不保存退出
vim擴展操作:
w:將范圍內的文本保存到指定的文件中
r路徑:將指定的文件中的文本讀出并插入到指定位置
! 命令:跳出文件擴展模式,執行其他命令,命令結束按Enter回到編輯模式
r!命令:將執行命令的結果寫入文件中
四種用法實例
一、編輯/etc/issue文件,添加主機名和時間,和當前登錄終端提示,并將其另存到/testdir/issue.bak中.
注意:當用:w 將文件保存到另一個文件時,如果文件不存在會創建新文件,存在需要用w! 強制保存,并將原文件覆蓋
二、將文件/etc/issue文件,添加到/testdir/fstab文件的第5行
三、當正在編輯文件時,突然需要查看ip地址怎么辦:
四:將/root下所有的文件列表添加到/testdir/f1 文件中
打開f1在擴展模式下輸入r!ls /root
命令模式下的光標跳轉:
字符間跳轉
h:左
l:右
j: 下
k:上
先輸入數字n,在輸入(h| l | j |k):實現光標向(左|右|下|上)跳轉n個字符
單詞間跳轉
w:跳到下一個單詞的詞首
b:當前或前一個單詞的詞首(當光標位于當前單詞的詞尾時會跳到當前單詞的詞首)
e:當前或后一個單詞的詞尾
先輸入數字n,在輸入(w| b| e):實現光標向(后|前|后)跳轉n個單詞
命令模式下翻屏:
ctrl+f:向文件尾部翻一屏
ctrl+b:向文件首部翻一屏
ctrl+d:向文件尾部翻半屏
ctrl+u:向文件首部翻半屏
enter:一行一行的后翻
命令模式操作:
字符編輯:
x:刪除光標所在處的字符
#x:刪除光標所在處的啟始#個字符
xp:交換光標坐在處的字符,以及后面的字符的位置
~:大小寫轉換
刪除操作:
d:刪除命令,可結合光標跳轉字符實現范圍刪除;
d$:刪除光標處到行尾的內容
d^:刪除光標的內容一直到行首
dw:以單詞為單位向后刪除
de:以單詞為單位向后刪除
db:以單詞為單位向前刪除
輸入數字n,在輸入(dw|de|db),分別為(向后|向后|向前)刪除n個單詞
dd:刪除整行
3dd:刪除光標所在的行起始的共3行;刪除的內容會保留到緩沖區中,剛剛刪除的內容可以黏貼
黏貼命令:
p:緩沖區中的內容如果為整行或多個,則粘貼在當前光標所在行的下方,否則粘貼在當前光標的后方
P:緩沖區中的內容如果為整行或多個,則粘貼在當前光標所在行的上方,否則粘貼在當前光標的前方
復制命令(yank):
y:復制,工作行為相似與d命令
yy復制整行
改變命令(change ,c);
與d模式相同,但是刪除完之后將編輯模式轉換成輸入模式
cc:刪除光標所在處的行并轉化成輸入模式
命令模式操作文本:
編輯模式下輸入數字n—>i |a|o|I|A|O—>輸入內容—>enter:會將輸入的內容重復n次添加到文件中
開始位置 —>命令(y[復制],d[刪除],gU[大寫],gu[變小寫])—>結束位置
撤銷操作(undo u)
u:撤銷 此前操作
#u:
撤銷此前的撤銷:ctrl
重復執行 前一個編輯操作 .(n.重復前面操作n次)
擴展模式
vim擴展操作:
w:將范圍內的文本保存到指定的文件中
r路徑:將指定的文件中的文本讀出并插入到指定位置
! 命令:跳出文件擴展模式,執行其他命令,命令結束按Enter回到編輯模式
r!命令:將執行命令的結果寫入文件中
四種用法實例
一、編輯/etc/issue文件,添加主機名和時間,和當前登錄終端提示,并將其另存到/testdir/issue.bak中.
注意:當用:w 將文件保存到另一個文件時,如果文件不存在會創建新文件,存在需要用w! 強制保存,并將原文件覆蓋
二、將文件/etc/issue文件,添加到/testdir/fstab文件的第5行
三、當正在編輯文件時,突然需要查看ip地址怎么辦:
四:將/root下所有的文件列表添加到/testdir/f1 文件中
打開f1在擴展模式下輸入r!ls /root
地址界定:
:start_pos,end_pos
n:特定的第n行
n,+m:指定行范圍,從n行,到n+m行
.:代表當前行
$:表示最后一行
.,$-1:當前行到倒數第二行
/pattern/從光標所在位置第一次被模式所匹配到的行
/pat1/,/pat2/
從第一次被pat1模式匹配到的行開始,一直到第一次被pat2匹配到的行結束
n,/pat/
/pat/,$
? 使用方式:后跟一個編輯命令d、y等
w file: 將范圍內的行另存至指定文件中
r file:在指定位置插入指定文件中的所有內容
查找
/PATTERN:從當前光標所在處向文件尾部查找
?PATTERN:從當前光標所在處向文件首部查找
n:與命令同方向
N:與命令反方向
舉例:查找/etc/fstab文件中含有UUID的行
擴展模式下查找替換:
三種格式:s/查找內容/替換內容/修飾符、s@@@、s###
查找內容:可以使用pattern模式
替換內容:不可以是用Pattern ,但是可以使用&和\1,&引用前面查找的所有內容,\1后向引用。
修飾符:i忽略大小寫,g全局替換,默認情況下只替換行的第一個,c替換前出現提示信息
舉例:
1、 復制/etc/profile至/tmp/目錄,用查找替換命令刪除/tmp/profile文件中的行首的空白字符:
2、復制/etc/rc.d/init.d/functions文件至/tmp目錄,用查找替換命令為/tmp/functions的每行開頭為空白字符的行的行首添加一個#號
可視化模塊
v:面向字符,選中可以以字符為單位
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, 水平分割
Ctrl+w,v: vertical, 垂直分割
ctrl+w,q:取消相鄰窗口
ctrl+w,o:取消全部窗口
: wqall 退出
定制vim
配置文件
全局: /etc/vimrc
個人: ~/. vimrc (家目錄下無此文件需要自己填加)
擴展模式:當前vim進程有效
? (1) 行號
顯示: set number, 簡寫為set nu
取消顯示: set nonumber, 簡寫為set nonu
? (3) 自動縮進
啟用: set ai
禁用: set noai
? (4) 高亮搜索
啟用: set hlsearch
禁用: set nohlsearch
? (5) 語法高亮
啟用: syntax on
禁用: syntax off
? (6) 忽略字符的大小寫
啟用: set ic
不忽略: set noic
? (7) 文件格式
啟用: fileformat=unix
不忽略: fileformat=dos
? (8) 設置文本寬度
:set textwidth=65 (vim only)
:set wrapmargin=15
?
vim幫助手冊:
man help
輸入:vimtutor命令
擴展模式下輸入:help
:help option- list
:set or :set all
原創文章,作者:wangnannan,如若轉載,請注明出處:http://www.www58058.com/30468