vim的在linux和mac機器上都是默認的文本編輯器,沒有特殊需求的話,默認設置就能夠直接使用,window上也能夠安裝,網上安裝教程過於繁瑣,咱們簡單點就好,window安裝以下:html
@powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
記得要用管理器權限運行。linux
用管理員權限運行PowerShell.exe ,運行以下指令:git
iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
如果系統禁止運行腳本,如此解決:點我github
choco install spf13-vim
如此,vim安裝成功shell
通常用vim默認打開文本的默認模式,此模式下,只能對文本進行【上下左右,文頭文尾】遊標操做,以及【粘貼複製刪除】,不能夠編輯文本。vim
在普通模式下,按下【i, I, o, O, a, A, r, R】任何一個字母后(經常使用i(insert)便可,其餘慢慢掌握)就會進入編輯模式,此時能夠對文本進行編輯 ,和通常的文本編輯器操做沒有任何區別。通常畫面左下方會出現【INSERT 或REPLACE 】字樣。windows
在普通模式下,輸入【 : / ? 】任何一份字符,就切切換到命令模式下,命令模式下,能夠對文本作一些除編輯之外操做,好比存檔,讀取,正則搜索,替換,排重,調用perl或者系統指令,在你面前除了操做文本還能夠和系統交互,就是如此人性化。數組
三種模式的切換,都是以普通模式爲中心來切換的,想要切換其中任務一種模式,都須要按下ESC,回到普通模式,而後再切換到指定模式。以下圖服務器
安裝好以後,對模式有個大概的瞭解,你確定會想輸入一些內容到文本。基礎功能就是讓你如用記事本般使用vim。通常的編輯器都有以下功能,光標移動,插入,刪除,粘貼,複製,保存,打開,退出,新建文本。咱們經過一個例子來熟悉這些:編輯器
vi→ 打開vim編輯器(window下直接打開vim窗口,無需輸入這個指令),此時是普通模式 i→ 編輯模式 輸入"hello vim!"→ 此時在編輯文本內容 按鍵ESC,返回普通模式 :w test.txt→ 【:】進入命令模式,w表示存檔爲文件名test.txt的文本 按鍵ESC,返回普通模式 yy→複製當前行 p→粘貼當前行 :wq→ 命令模式下,保存並退出當前文件
hjkl→上下左右的光標移動(普通模式) d→刪除當前光標處字符(普通模式) dd→刪除當前行(普通模式) :e file →打開一個文件(命令模式) :w → 存檔(命令模式) :saveas file → 另存爲(命令模式) :q! →退出不保存(命令模式) :bn和:bp →切換上一個或者下一個文件(命令模式) u → 回撤上一步 ctrl-r → 恢復上一步
中級功能咱們主要介紹如何讓你的光標移動更有效率,以及如何使用正則匹配搜索和替換。
i, I→i 爲動當前光標處插入,I爲目前列的第一個非空白字符出開始插入 a, A→a 從目前光標喜好一個字符開始插入,A爲從目前光標最後一個字符插入 o, O→o 從目前光標下一列出插入一行,O從目前光標處上一列插入一行 r, R→r取代光標所在那一個字符,R一致渠道光標所在的字符,直到按下ESC
gg → 光標移動到第一列 G→光標移動到最後一列 nG→n爲數字,移動到第n列
0 → 到行頭 ^ → 到本行的第一個非blank字符 $ → 到行尾 g_ → 到本行最後一個不是blank字符的位置。 fa → 到下一個爲a的字符處,你也能夠fs到下一個爲s的字符。 t, → 到逗號前的第一個字符。逗號能夠變成其它字符。 3fb → 在當前行查找第三個出現的b。 F 和 T → 和 f 和 t 同樣,只不過是相反方向。 % → 匹配括號移動,包括 (, {, [. * 和 # → 匹配光標當前所在的單詞,移動光標到下一個(或上一個)匹配單詞(*是下一個,#是上一個) w → 到下一個單詞的開頭 e → 到下一個單詞的結尾。
v→可視化的選擇 移動光標 y→複製 p→粘貼剛纔選擇的字符
/word → 向當前光標之下找名稱爲word的的字符,向下搜索 ?word → 向當前光標之上找名稱爲word的的字符,向上搜索 輸入上面指令以後按鍵enter鍵而後輸入一下鍵盤 n → 表明重複前一個搜索動做(上次是/,n重複向下搜索,一直按n,會一直重複) N → 表明反向前一個搜索動做(上次是/,N表明向上搜索,一致按N,會一直重複向上) /uid\d\{10} → 正則匹配,匹配uid開頭後面10個數組的字符串
替換是命令模式下 :%s/name/fullname/g → 表示在全部行中搜索替換name爲fullName 表達式: :[range]s/from/to/[flags] flags 有以下四個選項: c confirm,每次替換前詢問; e error, 不顯示錯誤; g globle,不詢問,整行替換。若是不加g選項,則只替換每行的第一個匹配到的字符串; i ignore,忽略大小寫。
擁有以上命令,你就能夠舒舒服服使用vim,不過vim更強的地方是,他還有一些如瑞士軍刀般的功能,簡單,高效,強大到你愛不釋手。
vim:test.txt → 打開test.txt yy → 複製一行 p →粘貼一行 10. →重複上一個指令10次,"."表明重複上一個指令 ctrl-v → 區塊選擇 G → 到最後一行 I→行頭插入字符 head →輸入字符head(這個是輸入字符,不是指令) ESC → 按鍵esc,你會看到全部的行頭輸入了head
vim:test.txt → 打開test.txt ctrl-v → 區塊選擇 G → 到最後一行 $ → 光標移到行末尾 A→行尾插入字符 end →輸入字符end(這個是輸入字符,不是指令) ESC → 按鍵esc,你會看到全部的行頭輸入了end
:g/^\(.*\)$\n\1$/d //去除重複行 :g/\%(^\1$\n\)\@<=\(.*\)$/d //功能同上,也是去除重複行 :g/\%(^\1\>.*$\n\)\@<=\(\k\+\).*$/d //功能同上,也是去除重複行
:! command → 執行系統命令 :! ls → 查看當前目錄 :! ls |sort → 查看當前目錄並排序
vim test.txt q → 開始宏錄製 a → 命名宏名稱爲a gg → 光標移至第一行 /hello → 搜索hello enter → 光標移至h位置 v → 開啓視圖選擇,並移動光標至o,選中hello d → 剪切單詞hello $ → 移動光標到行末尾 p → 複製單詞hello j → 光標移動至下一行 0 → 移動光標到行首 q → 宏a錄製完畢 10@a → 執行宏a 10次
:!awk -F"\!" 'print $2' test.txt 把文件test.txt 經過該"!"進行字符分割,並輸出第二列
#刪除含有「#」開頭的行 g/^#/d #刪除空行 g/^$/d #刪除不含指定字符串的行 g!/pattern/d
vim還有一些更高級的功能,這裏就不在一一細說了,感興趣能夠移步網上找些教程,或者看幫助文檔。vim也能夠經過插件打形成IDE,好比這個C++的IDE ,,還有vim的速查卡 ,vim經常使用tips。