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。