MissingSemester(2)VIM基础操作
MissingSemester(2)VIM基础操作
Vim 是一个_多模态_编辑 器:它对于插入文字和操纵文字有不同的模式。Vim 是可编程的(可以使用 Vimscript 或者像 Python 一样的其他程序语言),Vim 的接口本身也是一个程序语言:键入操作(以及其助记名) 是命令,这些命令也是可组合的。Vim 避免了使用鼠标,因为那样太慢了;Vim 甚至避免用 上下左右键
模式与简介
vim分为五个常用的操作模式:正常模式,插入模式。替换模式,可视化模式,命令模式。正常模式是最初的模式,也是其它模式下按下ESC返回的模式
在不同的操作模式下,键盘敲击的含义也不同
你可以按下<ESC>
(退出键) 从任何其他模式返回正常模式。 在正常模式,键入i
进入插入模式,R
进入替换模式,v
进入可视(一般)模式,V
进入可视(行)模式,<C-v> (Ctrl-V, 有时也写作 ^V)
进入可视(块)模式,:
进入命令模式
概念:缓存、标签页、窗口
Vim 会维护一系列打开的文件,称为“缓存”。一个 Vim 会话包含一系列标签页,每个标签页包含 一系列窗口(分隔面板)。每个窗口显示一个缓存。跟网页浏览器等其他你熟悉的程序不一样的是, 缓存和窗口不是一一对应的关系;窗口只是视角。一个缓存可以在_多个_窗口打开,甚至在同一 个标签页内的多个窗口打开。这个功能其实很好用,比如在查看同一个文件的不同部分的时候。
Vim 默认打开一个标签页,这个标签也包含一个窗口。
插入模式
在正常模式下按下i进入插入模式,此时的vim会和传统的文本编辑器拥有一样的操作。按下ESC退出插入模式返回正常模式
命令行模式
在正常模式下键入:
进入命令行模式,下面列出了几个常见的命令:
1 | :q 退出窗口 |
基础操作与基础命令
移动
基本移动
基本移动:hjkl对于左下上右
对于词的移动:w到达下一个单词,b到达词初,e到达词尾
对于行的移动:0到达行初,而$到达行尾,^会到达第一个非空格字符
对于屏幕的移动:H到达屏幕首行,M到达屏幕中间,L到达屏幕底部
对于页码的移动:C-u上翻,C-d下翻
对于文件的移动:gg移动过至文件头,G移动至文件尾
搜索移动
行数移动:{行数}CR 或者 {行数}G
(CR就是回车键)
配对查找移动:使用%
移动到对应的配对符号,比如一对括号
查找:f{字符},t{字符},F{字符},T{字符};f代表查找到对应字符的位置,t则是前一个;小写代表向行尾(右)寻找,大写则是向行首(左)寻找
搜索:/{正则表达式}
进行搜索,正则表达式的相关内容见下一篇博客。n向下匹配,N向上匹配;如果想要反向搜索,则使用?
而非/
选择模式
使用v
,V
,Ctrl v
来进入普通可视化,行可视化,块可视化
普通可视化根据对光标的控制选择区域,行/块可视化 分别对 行/块 进行操作
进入选择模式/可视化模式 之后,利用移动命令来进行区域的选定
编辑
在普通模式下按下i
即可进入插入模式。
如果处于普通模式之下,还有以下的编辑操作:O
/ o
: 在上方 / 下方 插入一个新的行d{移动命令}
:进行删除,删除的区域由移动命令决定
dw:删除一个单词;d$删除光标到行尾的单词;dd删除一整行c{移动命令}
:效果和使用同d,不过会自动进入插入模式x
:删除光标所在的字符rx
:替换光标处的字符s
:替换字符,相当于x之后再i
u
:撤销上一步操作U
:恢复对这一整行的操作Ctrl r
:重做上一步操作y
:进行复制p
:进行粘贴A
:追加文本,会在光标选择处的后方开始插入文本(常用于对一行末尾的编辑)
(复制的时候需要选择复制区域,粘贴则需要确定粘贴位置)
多次操作
可以使用“数字+操作”的方式,重复执行多次任务
3w:向前移动三个单词
5j:向下移动5行
7dw:删除7个单词
修饰语
修饰语可以改变一些名词的“意义”,修饰语有i
表示“内部”,以及a
表示“周围”
这里例举三个修饰语来展示作用
ci( 改变当 前括号内的内容
ci[ 改变当前 方括号内的内容
da’ 删除一个单引号字符串, 包括周围的单引号
其它
键入 CTRL-G 以显示你在文件中的位置和状态
CTRL-O 使你返回到以前的位置,CTRL-I 回到以后的位置
CTRL+F:往下翻页
CTRL+B:往上翻页
CTRL+E:往下滚动
CTRL+Y:往上滚动
替换:键入 :s/old/new/g 以用’new’替换’old’,而g则代表对本行生效
执行外部命令:先使用:
进入命令模式,然后键入!
字符,这使得我们可以执行一个外部的shell命令;通过这种方式执行任何的外部命令是可能的,同样可以跟参数
保存改动:要保存对文本作的改动,键入 :w FILENAME,将文件的改动保存至”FILENAME”,如果该文件并不存在,则会新建对应的文件
恢复/合并文件:键入r FILENAME
会将FILENAME中的内容从光标位置开始恢复
帮助:vim拥有一个在线帮助系统,按下F1/HELP
可以进入帮助模式,键入help <CR>
也会有对应效果
-按U将选中内容变大写
-按u将选中内容变小写
-按~将大小翻转
vimtutor
vimtutor 是一个 Vim 安装时自带的教程 , 里面记录了各种常见常用的操作
这里有一个翻译不错的中文版 https://github.com/HanielF/VimTutor