VIM入門

目錄
1、vim介紹
2、vim顏色顯示和移動光標
3、vim通常模式下移動光標
4、vim通常模式下複製、剪切和粘貼
5、進入編輯模式
6、vim命令模式
7、vim實踐html


1、vim介紹shell

vi是最重要的unix及類unix操做系統的文件編輯器,vi編輯器由Bill Joy於1976年建立。vim是vi的改進版。vim

vim的安裝:yum -y install vim-enhancedsession

vim的啓動:直接在命令行輸入vim或vim filename(想要編輯的文件名)app

vim的三種模式編輯器

1.通常模式:控制屏幕光標的移動、刪除、複製某處的文件或行加密

2.插入模式:進行文件輸入操作系統

3.命令模式:便可以保存文件或退出vim,也能夠設置編輯環境。命令行

三種模式的關係unix

2ER6R.jpg


2、vim顏色顯示和移動光標

vi默認不帶顏色高亮,而vim默認是自帶文件顏色高亮效果。可是位置不一樣,cp後的顏色不必定還存在,顏色跟具體內容有關係。

命令模式光標移動

按鍵 功能說明
h或向左箭頭鍵 光標向左移動一個字符
j或向下箭頭鍵 光標向下移動一個字符
k或向上箭頭鍵 光標向上移動一個字符
l或向右箭頭鍵 光標向右移動一個字符



3、vim通常模式下移動光標

按鍵 功能說明
pagedown、ctrl+f 屏幕向下移動一頁
PageUp、ctrl+b 屏幕向上移動一頁
G 移動到文件的最後一行
nG 移動到文件的第n行
gg 移動到文件的第一行
0 移動到當前行的第一行字符
$ 移動到當前行的最後一個字符
n↓ 向下移動n行



4、vim通常模式下複製、剪切和粘貼

命令行模式刪除、複製、粘貼的方法

按鍵 功能說明
x 向後刪除一個字符
X 向前刪除一個字符
nx 連續向後刪除n個字符
dd 刪除當前行
ndd 刪除包括當前行在內的向下n行
d1G 刪除當前行以前的全部數據
dG 刪除當先後的全部數據
d$ 當前行中,刪除光標至最後一個字符的數據
d0 當前行中,刪除該行第一個字符至光標所在位置的數據
yy 複製當前行
nyy 複製包含當前行在內的向下n行數據
y1G 複製當前行以前的全部數據
yG 複製當前行以後的全部數據
y0 複製光標所在的那個字符到該行行首的全部數據
y$ 複製光標所在的那個字符到該行行尾的全部數據
p 將已複製的數據粘貼到當前行的下一行
P 將已複製的數據粘貼到當前行的上一行
u 撤銷上一個動做
[ctrl] + r 重作上一個動做
. 重複上一個動做

塊選擇的按鍵意義

按鍵 功能
v 字符選擇,會將光標通過的地方高亮選擇
V 行選擇,會將光標通過的行高亮選擇
ctrl+v 塊選擇,能夠用長方形的方式選擇
y 複製高亮選擇的區域內容
d 刪除高亮選擇的區域內容


5、進入編輯模式

進入編輯模式的方法

按鍵 功能說明
i 在當前光標所在位置插入文字,已存在的內容會向後退
I 在當前行的第一個非空格字符處插入文字
a 從目前光標所在的下一個字符處開始插入
A 從光標所在行的最後一個字符處開始插入
o 從光標目前所在行的下一行處插入新的一行
O 從光標目前所在行的上一行處插入新的一行
r 取代光標所在的那個字符
R 一直取代光標所在的文字,直到按下Esc鍵


6、vim命令模式

經常使用操做說明

按鍵 說明
:w 保存,將修改後的內容保存
:w! 強制保存,當文件屬性爲只讀時可使用這種方法來強制寫入
:q 退出
:q! 強制退出,而且不保存所修改的內容
:wq 保存後退出
:e! 將文件還原到最初始的狀態
ZZ 若是文件沒有被修改則不保存離開,若是已修改則保存離開
:w [filename] 將修改後的文件另存爲其餘文件
:r [filename] 在編輯的文件中,讀入另外一個文件的內容
:n1,n2 w[filename] 將n1到n2的內容保存爲filename這個文件
:! command 暫時離開vi到指令模式下執行命令command
:set nu 顯示行號
:set nonu 取消顯示行號
n 重複前一個搜尋動做
N 反向進行前一個搜尋動做
:n1,n2s/word1/word2/g 在第n1與n2行之間查找word1字符串,並將該字符串替換爲word2
:n1,n2s/word1/word2/gc 與以上內容相同,可是在替換以前請用戶確認是否須要替換



7、vim實踐

實踐文件生成

man vi > temp

下述實踐操做基於temp文件

1. 分別向下、向右、向左、向上移動6個字符(6j 6l 6h 6k)
2. 分別向下、向上翻兩頁(分別按兩次ctrl+f和ctrl+b或分別按兩次PageUp和PageDown)
3. 把光標移動到49行(49G)
4. 把光標移動到行尾,再移動到行首(shift+4或$,shift+6或0)
5. 移動到temp文件的最後一行(G)
6. 移動到文件的首行(gg)
7. 搜索文件中出現的"vim",並數一下該字符出現的次數(/vim 而後按n)
8. 把從第1行到第10行出現的vim替換成gedit(:1,10s/vim/gedit/g)
9. 還原上一步操做(u)
10. 把整個文件中全部的etc替換成cte(:1,$s/etc/cte/g)
11. 把光標移動到第20行,刪除字符串"editor"(20G,而後按l向右移動光標找到editor,dw刪除)
12. 還原上一步操做(u)
13. 刪除第50行(50G dd)
14. 還原上一步操做(u)
15. 刪除第37-42行的全部內容(37G 6dd)
16. 還原上一步操做(u)
17. 複製第48行的內容並粘貼到第52行(48G yy 52G p)
18. 還原上一步操做(u)
19. 複製第37-42行的內容並粘貼到第44行上面(37G 6yy 44G P大寫)

vim快速刪除一段字符

http://www.apelearn.com/bbs/thread-842-1-1.html

vim亂碼

http://www.apelearn.com/bbs/thread-6753-1-1.html

用vim打開一個空白文檔,而後把已經複製的代碼給粘貼進來,發現它有自動縮進功能,最終致使粘貼的文本一行比一行靠右,看起來亂成一團。比較快的解決辦法是,在粘貼文檔前,在命令行模式下,輸入

:set noai nosi

而後按'i' 進入編輯模式,再粘貼已經複製的代碼內容,這樣就不會自動縮進了。

有時候,這樣的方法很差用,能夠嘗試這種:

:set paste

數字小鍵盤問題

小鍵盤問題

http://www.apelearn.com/bbs/thread-7215-1-1.html

在putty上用vi的時候,開NumLock時按小鍵盤上的數字鍵並不能輸入數字,而是出現一個字母而後換行(其實是命令模式上對應上下左右的鍵)。解決方法

選項Terminal->Features裏,找到Disable application keypad mode,選上就能夠了

在xmanager 4 中的xshell也有小鍵盤問題 解決方法爲

修改session 屬性 -> 終端->VT模式->初始數字鍵盤模式

選擇 設置爲普通。

2rAia.png

vim加密

http://www.apelearn.com/bbs/thread-7750-1-1.html

Linux用vim/vi給文件加密和解密

1、利用 vim/vi 加密:

優勢:加密後,若是不知道密碼,就看不到明文,包括root用戶也看不了;

缺點:很明顯讓別人知道加密了,容易讓別人把加密的文件破壞掉,包括內容破壞和刪除;

vi編輯器相信你們都很熟悉了吧,vi裏有一個命令是給文件加密的,舉個例子吧:

1)首先在root主目錄/root/下創建一個實驗文件text.txt:

[root@www ~]# vim/vi text.txt

2)進到編輯模式,輸入完內容後按ESC,而後輸入:X(注意是大寫的X),回車;

3)這時系統提示讓你輸入密碼,2次,以下所示:

輸入密碼: *******

請再輸入一次: *******

4)保存後退出,如今這個文件已經加密了;

5)用cat或more查看文件內容,顯示爲亂碼;用 vim/vi 從新編輯這個文件,會提示輸入密碼,若是輸入的密碼不正確,一樣會顯示爲亂碼!

注意:文件加密後,千萬別忘了密碼!

2、解密用vi加密的文件(前提是你知道加密的密碼):

1)用 vim/vi 打開文件如text.txt,要輸入正確的密碼,而後在編輯時,將密碼設置爲空,方法是輸入下面的命令:

:set key=

而後直接回車,保存文件後,文件已經解密了。

2)或者這樣也行:

在正確打開文件後用 「:X」 指令,而後給一個空密碼也能夠。保存用「wq!」保存。

兩種方法實際上效果是同樣的。

vim cheat sheat

Vim cheat sheet參考
Vim cheat sheet參考1

參考 https://coolshell.cn/articles/5426.html http://michael.peopleofhonoronly.com/vim/