如今是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