安裝vim編輯工具
yum -y install vim*
一般模式:當你vim filename 編輯一個檔案時, 一進入該檔案就是一般模式了。在這個模式下, 你可以做的操作有: 上下移動光标, 删除某個字元, 删除某行, 複制、粘貼一行或者多行。
編輯模式:一般模式下, 是不可以修改某一個字元的, 隻能到編輯模式了。從一般模式進入編輯模式, 隻需你按一個鍵即可(i, I, a, A, o, O, r, R)。
當進入編輯模式時, 會在螢幕的最下一行出現INSERT或REPLACE的字樣。從編輯模式回到一般模式隻需要按一下鍵盤左上方的ESC鍵即可。
指令模式:在一般模式下,輸入 ":" 或者 "/" 即可進入指令模式。在該模式下, 你可以搜尋某個字元或者字元串, 也可以儲存、替換、退出、顯示行号等等。
1. 使用vim打開一個文本檔案
> vim filename 進入一般模式
當我們在終端中使用vi filename, 就會自動打開檔案并進入VI的指令模式。
這個模式下不能編寫任何代碼! 但是可以進行複制、粘貼、删除等操作功能。
2. 編輯模式
a:光标所在的行之後插入(追加) append
i:光标所在的字元之前插入 insert
o:新起一行插入 open
O:目前方的上一行插入
s:删除光标所在字元,然後再插入
退出輸入模式: Esc鍵
打開顯示模式的開關: :set showmode
3. 指令模式
輸入":"或"/"進入指令模式
:w //對編輯後的文檔進行儲存
:q //退出vi編輯器
:wq //儲存文檔并退出編輯器
:q! //強制退出編輯器(不儲存)
:w! //強制儲存
:wq! //強制儲存并退出
為何需要"!",可能你的檔案沒權限, 或者檔案作出了修改
/内容 或 ?内容 //内容查找(搜尋)
//n下一個 N上一個
/字元串 在文本中從上至下搜尋該字元串
?字元串 在文本中從下至上搜尋該字元串
特殊字元的查找, 使用 "\" 轉義
/\[DEFAULT\]
:set number 或 nu //給編輯器設定行号
:set nonumber 或 nonu //取消編輯器行号
:數字 //光标定位到數字所在行
:19 //光标定位到第19行
指定範圍查找:
:1,100/transport_url 從第1行到100行查找 "transport_url" 關鍵字
:/DEFAULT/,100/transport_url 從字元串 "DEFAULT" 所在的行到100行範圍内查找 "transport_url" 關鍵字
:/\[DEFAULT\]/,100/transport_url 從字元串 "[DEFAULT]" 所在的行到100行範圍内查找 "transport_url" 關鍵字
ex常用編輯指令:
d (delete) 删除行
m (move) 移動行
co (copy) 複制行
t 複制行, 和co同義
:3,18 d 删除3~18行
:11,15 m 23 把11~15行移動到23行下面。
:23,29 co 100 複制23~29行并把它們粘貼到100行下面
//内容替換cont1被替換為cont2
:s/cont1/cont2/ //光标所在行的第一個cont1被替換為cont2
:s/cont1/cont2/g //光标所在行的全部cont1被替換為cont2, 不加g則隻替換每行的第一個count1
:%s/cont1/cont2/g //整個文檔的全部cont1被替換為cont2, 不加g則隻替換每行的第一個count1(等同于:1,$s/count1/count2/g)
:1,5s/count1/count2/g //在1-5行之間查找count1并替換為count2, 不加g則隻替換每行的第一個count1
注意: vim 中可用 :s 指令來替換字元串
4. 一般模式操作
1) 光标移動操作
① 字元級
上(k) 下(j) 左(h) 右(l) 鍵
② 單詞級
w: word下個單詞的首字母
e: end下(本)個單詞的尾字母
b: before上(本)個單詞的首字母
③ 行級
$: 行尾
^: 行首(行首的的非空白字元)
0: 行首(數字0鍵,目前行的第一個位置)
k: 向上移動1行
2k:向上移動2行
fx: 移動到指定的字元上(x)
Fx: 向前移動到指定的字元上(x)
④ 段落級(給翻屏)
{: 上(本)個段落的首部
}: 下(本)個段落的尾部
⑤ 螢幕級(不翻屏)
H: 螢幕可見區域的首部
L: 螢幕可見區域的尾部
⑥ 文檔級
G: 文檔尾行
1G: 文檔首行(gg)
nG: 文檔第n行
2) 内容删除操作
dd: 删除光标目前行
n+dd: 從光标所在行向後删除n行内容(包括光标所在行)
x : 删除光标所在的單個字元(小寫向後删除) X(大寫的向向前删除)
cw: 從光标所在位置删除至單詞結尾, 并進入"編輯"模式
J 删除換行符(兩行合并一行)
3) 内容複制操作
yy: 複制光标目前行
n+yy: 從光标所在行向後複制n行内容(包括光标所在行)
p: 對複制(删除)的内容進行"粘貼"
4) 快捷操作
u: undo撤銷(undo單詞的意思是撤銷) Ctrl + r (組合鍵): 反撤銷
J: 連接配接上下兩行
.點 重複執行上次指令
r 替換單個字元
非正常關閉vim編輯器後提示錯誤的解決方法
使用vim, 錯誤出現原因一般為以下兩種情況:
(1) 當你用多個程式編輯同一個檔案時。
(2) 非正常退出時。
會提示以下資訊:
Swap file ".old.txt.swp"already exists!
[O]penRead-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:
(1)(2)為官方給出的解決方法:
(1) 為了避免同一個檔案産生兩個不同的版本, 還是建議選擇"(Q)uit"或者繼續謹慎修改選擇"(E)dit anyway"。
(2) 也可以選擇"(R)ecover"或"vim -r filename"恢複到未修改之前, 然後再把swp檔案删除(這個時候要確定你的swp檔案沒有用處了)。
最下面選項的意思:
O: 隻讀, 不能改
E: 可以改, 從前的修改都丢失
R: 恢複(從前的修改)
D: 删去(删去.swp檔案, 檔案恢複到未修改前)
Q: 退出
A: 放棄
具體解決方案:
(1) 不想保留原先修改的内容直接選D就可以。
(2) 想保留原先修改的内容選R把修改的内容複制出來儲存, 再退出檔案删除awp檔案。(awp檔案預設為隐藏檔案, 用ls -a指令檢視, 用rm指令删除。)
linux 上檔案用vim 編輯儲存後, 自動生成了一個檔案(檔案名加了個 "~"号)怎麼去除掉?
vim的檔案舊版本備份功能, 但凡你重新編輯一個已經存在的檔案時, 在你儲存的時候會将老版本加一個~另存為一個備份檔案, 當然如果這個備份檔案已經存在就會覆寫原來的.
想要取消這個功能, 用:set nobackup 指令就可以。
~/.vimrc中添加:
set nobackup
set nowritebackup
set noswapfile ! (additionally disable swap files)