如今是2019年,回到十年前,戴着AKG耳機,聽着交響樂,坐在電腦前,看着網上各類論壇,帖子。我還在用着塞班手機,上着學。html
Vim是Unix強大的編輯器,linux操做服務器運維必備。linux
將它的功能以及快捷鍵使用的淋漓盡致是咱們編程道路上的強有力的助手。雖然如今不少編輯器很智能又有好看的界面,但絕對替代不了vim在心目中的地位。程序員
歷史:vim由vi衍生出來,對程序員很是友好,能夠不適用鼠標完成基本上全部要用到的操做。shell
Vim的6種模式:編程
普通模式,這也是Vim啓動後的默認模式。(注意:啓動後並非插入模式)按a鍵(append)或者i鍵(insert)進入插入模式。普通模式命令通常須要一個操做符結尾:dd刪除整行,d+光標移動鍵刪除,2dd=djvim
插入模式,此模式下輸入在文檔中插入文本,按ESC或者 Ctrl+[ 退出,回到普通模式。服務器
可視模式,和普通模式相似。可是移動命令會擴大高亮的文本區域。高亮區域能夠是字符、行或者是一塊文本。當執行一個非移動命令時,命令會被執行到這塊高亮的區域上。Vim的"文本對象"也能和移動命令同樣用在這個模式中。app
選擇模式,可用鼠標或者光標鍵選擇高亮文本,輸入任何字符的狀況下,會替換選擇的高亮文本並進入插入模式運維
命令行模式,能夠輸入被解釋成執行的文本。例如執行命令(:
鍵),搜索(/
和?
鍵)或者過濾命令(!
鍵)。編輯器
Ex模式,和命令行模式相似,在使用:visual
命令離開Ex模式前,能夠一次執行多條命令。
普通模式、插入模式、命令行模式這三種模式最經常使用。
vim+要打開的文件名或者要新建的文件名打開文件,記得加後綴名哦。只輸入vim命令會打開編輯器,顯示默認的它是個開源的須要贊助的給兒童捐款的一系列內容。並未打開任何文件,這個狀況下:q!可強制退出,:進入命令行模式後輸入:e 文件路徑 打開文件。
移動光標:
h,j,k,l 這四個字母按鍵分別對應向左,向下,向上,向右 (曾經爲了記憶這個我把h當head記憶,向頭部移動,j下面有個勾,向下移動...真是把腦殼都想破了)後來知道這是原來最先的打字機上面這幾個字母的位置是方向鍵,你們都熟悉了這樣的規定因此在後來鍵盤再也不是之前的順序了的時候這幾個鍵表明的方向也延續了下來。固然如今你用方向鍵也能夠移動,可是雙手就要離開你的編輯區域。
w移動到下一個單詞,b移動到上一個單詞。
普通模式下進入插入模式並在相應位置定下光標
i:當前位置
I:在行首
A:在行末
a:在光標後插入編輯
o:在當前行後插入新行
O:在當前行前插入新行
cw:替換從光標所在位置後到一個單詞結尾的字符
命令行模式 w保存,w文件名能夠將文檔另存爲其餘文件名或者其餘路徑下
:q! 強制退出,不保存
:q 退出
:wq! 強制保存退出
:w<文件路徑>
:saveas 文件路徑 另存爲
:x 保存並退出
:wq 保存並退出
普通模式下 shift+zz 是保存退出
普通模式下的刪除
快速刪除
x刪除光標所在字符,刪除光標前一個字符 同Delete
dd刪除整行
dw刪除一個單詞
d$ 或 D 刪除至行尾
d^刪除至行首
dG 刪除到文檔尾
d1G 刪除到文檔首
固然這麼多操做任誰都不會一會兒就很熟悉,想要熟練運用還需多在操做中使用。
噢,對了,我說的那個打字機實際上是一個視頻終端顯示器叫ADM-3A
Vim進階內容
在普通模式下.
(小數點)表示重複上一次的命令操做 這樣繁雜一點的操做就能夠不用每次都摁了 好好啊
輸入數字+操做指令 能夠重複n次此操做好比 7dd 10x d5w 刪除5個單詞 這樣編輯的時候不停的微運轉大腦保持精力集中,好愛vim
行間跳轉
nG 直接移動到第n行 (:set nu 在Vim中顯示行號)
gg 移動到第一行 (恩mm 不是good game那個gg)如今就好想在博客園編輯中用這些快捷鍵啊,就不用去動鼠標了。
G 移動到最後一行 (都是行首)
跳轉過程當中隨時可使用Crtl+o來回到上次的位置
行內跳轉
w 下一個單詞開頭的位置
e 當前單詞結尾的位置
b 前一個單詞開頭的位置
ge 前一個單詞結尾的位置
0或^ 到行開頭
$ 到行結尾
f<字母> 向後搜索<字母>並跳轉到第一個匹配的位置(很是實用)
F<字母> 向前搜索<字母>並跳轉到第一個匹配的位置
t<字母> 向後搜索<字母>並跳轉到第一個匹配的位置以前的一個字母
T<字母> 向前搜索<字母>並跳轉到第一個匹配的位置以後的一個字母
~把後面的字母大寫變小寫 把小寫變大寫
複製及粘貼(用的最多了吧)
y複製
yy複製所在的整行 和dd相似 dd是剪切操做
y^複製到行首
y$複製到行尾
yw複製一個單詞
yG複製至文本末
y1G複製到文本開頭
p粘貼
p粘貼至光標後
P粘貼至光標前
技巧 :ddp 交換上下行
查找替換
r + 要替換的字母 將替換光標所在的字母
R 連續替換 直到按ESC
CC替換整行 (刪除遊標所在行並進入插入模式)
cw替換一個單詞(刪除一個單詞並進入插入模式)
C替換遊標之後至行末
~反轉游標所在的字母的大小寫
u{n}撤銷一次或者n次操做
U撤銷當前行全部的修改
Ctrl+r redo,反撤銷
普通模式下
/ 查找 /後輸入要查找的字符 按回車查找
? 與/ 相同 ?向上查找 /向下查找
查找後輸入n下一個內容 N上一個內容
當查找到文檔底部的時候會有一行提示,到底兒了從頭開始查找
命令行模式輸入 :noh取消搜索
高級查找
\* 尋找遊標所在的單詞 注意是反斜槓
\# 同上 向上找
g\*同 \* 是部分符合
g\# 同理
指令特別多 ,記不住那就是很難,用好了就是神。遊標的位置很重要,不少查找都是相對於遊標位置。
快速縮進
>> 整行向右縮進
<< 整行向左縮進
:set shiftwidth能夠設置縮進值
命令行模式 :ce 文本居中 ri可使文本靠右 le使文本靠左
Vim高級內容
多文本編輯
1.直接輸入多個文件名進行打開或新建
:n切換下一個文件 :N切換到上一個文件 !n !N 強制切換,不保存上一個文件所輸入的內容 切記!
2.進入vim後打開新文件
使用命令行模式 :e 新文件名或路徑
:e# 回到前一個文件 ls 列出全部編輯過的文檔 會有一個編號
:b 文檔名或者編號 能夠直接進入該文檔
:bd 文檔名或編號 能夠刪除之前編輯過的列表中的文件項目
Vim其餘的幾個模式
可視模式
在普通模式輸入v 進入字符選擇模式 移動光標能夠進行選取 再次按下v取消選取
shift+v 進入行選擇模式 按下V能夠整行選取 再次shift+v取消選取
ctrl+v 區域選取模式 能夠進行矩形區域選擇 再次ctrl+v取消選取
(替代鼠標選中操做)
但是模式下 輸入d刪除選取區域內容
y複製選取內容
視窗操做
命令行模式下輸入:new 就會在當前文檔窗口的上面打開一個新的Vim窗口 (至關於分屏)
其餘相關指令
:sp 1.txt
打開新的水平分屏視窗來編輯1.txt:vsp 2.txt
打開新的垂直分屏視窗來編輯2.txtCtrl+w s
將當前窗口分割成兩個水平的窗口Ctrl+w v
將當前窗口分割成兩個垂直的窗口Ctrl+w q
即 :q 結束分割出來的視窗。若是在新視窗中有輸入須要使用強制符!即:q!Ctrl+w o
打開一個視窗而且隱藏以前的全部視窗Ctrl+w j
移至下面視窗Ctrl+w k
移至上面視窗Ctrl+w h
移至左邊視窗Ctrl+w l
移至右邊視窗Ctrl+w J
將當前視窗移至下面Ctrl+w K
將當前視窗移至上面Ctrl+w H
將當前視窗移至左邊Ctrl+w L
將當前視窗移至右邊Ctrl+w -
減少視窗的高度Ctrl+w +
增長視窗的高度建立加密文檔
vim -x 文件名
進去輸入密碼,下次打開會要求輸入密碼,這裏注意輸入錯誤的密碼不是打不開,也能打開文檔,可是文檔的內容是加密過的。輸入正確的密碼內容就正常顯示。可是輸入錯誤密碼進去能夠編輯,可能會破壞原有的內容,我把你內容刪了,下次你輸入密碼進來也看不到。
在命令行模式下輸入:! 可執行外部的shell命令
Vim的系統幫助
普通模式下摁F1 打開幫助文檔
命令行模式輸入:h 加一些屬性名 能夠查看該屬性的幫助
關於Vim的設置
永久保存設置須要修改vim配置文件~/.vimrc
:set
或者:se
顯示全部修改過的配置:set all
顯示全部的設定值:set option?
顯示option的設定值:set nooption
取消當前設定值:set autoindent(ai)
設置自動縮進:set autowrite(aw)
設置自動存檔,默認未打開:set background=dark
或light
,設置背景風格:set backup(bk)
設置自動備份,默認未打開:set cindent(cin)
設置c語言風格縮進此乃編輯器之神
Vim在線文檔 : http://vimdoc.sourceforge.net/htmldoc/usr_toc.html