Vim👀
约 1880 个字 预计阅读时间 6 分钟
快速入门
安装后直接在终端键入 vimtutor
即可进入 Vim 的教程
该学哪个编辑器?👀
- Visual Studio Code 是目前最流行的代码编辑器。而 Vim 则是最流行的基于命令行的编辑器。
- REPL只交互式的编程环境,也能指代命令行的模式
Vim的哲学👀
- 在编程的时候,你会把大量时间花在阅读/编辑而不是在写代码上。所以,Vim 是一个多模态编辑器:它对于插入文字和操纵文字有不同的模式。Vim 是可编程的(可以使用 Vimscript 或者像 Python 一样的其他程序语言),Vim 的接口本身也是一个程序语言:键入操作(以及其助记名) 是命令,这些命令也是可组合的。Vim 避免了使用鼠标,因为那样太慢了;Vim 甚至避免用上下左右键因为那样需要太多的手指移动。
- 这样的设计哲学使得 Vim 成为了一个能跟上你思维速度的编辑器
命令👀
- 默认Normal模式,Normal模式下按 i 将进入Insert模式,而在Insert模式下按Esc可以返回Normal模式
按键书写:例如如果是单独的按键 i ,那么直接写 i 就可以了,
如果是Ctrl + V这种按键组合,有下面几种表示方法
1.^V
:一个“脱字符号”后面跟着控制用字符(这里的控制用字符指那个V,也就是组合键中 的另一个键)
2.Ctrl - V
3.< C - V>
各种模式👀
-
Normal模式(正常)——>是用来移动光标、阅读东西以及在文件间切换的
x
可以删除字符 -
Insert模式(插入)——>按下
i
键进入,用来输入的因此在这个模式下你的按键大多会直接进入buffer
-
Replace模式(替换)——>按下
R
进入,不像插入模式会把字符往后移,替换模式会直接覆盖掉文本 - Visual模式(可视化)
- Visual(一般)——>按下
v
键进入, - Visual Line(行)——>按下
Shift + v
进入, - Visual Block(块)——> 按下
Ctrl + v
进入,
- Visual(一般)——>按下
- Command模式(命令行)——>按下
:
就可以进入,
Note
- 在不同操作模式下,键盘敲击的含义也不同,比如,
x
在插入模式会插入字母x
,但是在正常模式 会删除当前光标所在的字母,在可视模式下则会删除选中文块。 - 在默认设置下,Vim会在左下角显示当前的模式。 Vim启动时的默认模式是正常模式。通常你会把大部分 时间花在正常模式和插入模式。
基本操作👀
插入文本👀
在正常模式下,键入 i
进入插入模式。现在 Vim 跟很多其他的编辑器一样,直到你键入
缓存、标签页、窗口👀
- Vim 会维护一系列打开的文件,称为“缓存”。一个 Vim 会话包含一系列标签页,每个标签页包含 一系列窗口(分隔面板)。每个窗口显示一个缓存。跟网页浏览器等其他你熟悉的程序不一样的是, 缓存和窗口不是一一对应的关系;窗口只是视角。一个缓存可以在多个窗口打开,甚至在同一个标签页内的多个窗口打开。这个功能其实很好用,比如在查看同一个文件的不同部分的时候。
- Vim 默认打开一个标签页,这个标签也包含一个窗口。
- :tabnew (文件名)可以在另一个窗口打开文件, Normal模式下 gt 可以在窗口之间切换。
- 此时我们输入
:q
不会完全退出Vim只会关闭当前窗口,只有没有窗口的时候才会退出Vim
命令行下的vim命令👀
- 在正常模式下键入 : 进入命令行模式。 在键入 : 后,你的光标会立即跳到屏幕下方的命令行。 这个模式有很多功能,包括打开,保存,关闭文件,以及 退出 Vim。
:q
退出(关闭窗口):w
保存(写):wq
保存然后退出:qa
会关闭所有窗口:e
{文件名} 打开要编辑的文件:ls
显示打开的缓存:help
{标题} 打开帮助文档:help :w
打开:w
命令(Command模式)的帮助文档:help w
打开w
移动(Normal模式)的帮助文档
- Normal模式下输入
s
会删除字符并进入Insert模式
Vim的接口其实是一种编程语言👀
- Vim 最重要的设计思想是 Vim 的界面本身是一个程序语言。键入操作 (以及他们的助记名) 本身是命令, 这些命令可以组合使用。 这使得移动和编辑更加高效,特别是一旦形成肌肉记忆。
移动👀
- 多数时候你会在正常模式下,使用移动命令在缓存中导航。在 Vim 里面移动也被称为 “名词”, 因为它们指向文字块。
- 基本移动:
hjkl
(左, 下, 上, 右) - 词:
w
(下一个词),b
(词初),e
(词尾) - 行:
0
(行初),^
(第一个非空格字符),$
(行尾) - 屏幕:
H
(屏幕首行),M
(屏幕中间),L
(屏幕底部) - 翻页:
Ctrl-u
(上翻),Ctrl-d
(下翻) - 文件:
gg
(文件头),G
(文件尾) - 行数: :
{行数}<CR>
或者{行数}G
({行数}为行数) - 杂项:
%
(找到配对,比如括号或者 /* */ 之类的注释对) - 查找:
f
{字符},t
{字符},F
{字符},T
{字符} - 查找/到 向前/向后 在本行的{字符}
, / ;
用于导航匹配- 搜索:
/{正则表达式}
,n
/N
用于导航匹配
- 基本移动:
选择👀
- 可视化模式:
- 可视化:
v
- 可视化行:
V
- 可视化块:
Ctrl+v
- 可视化:
- 可以用移动命令来选中。
编辑👀
- 所有你需要用鼠标做的事, 你现在都可以用键盘:采用编辑命令和移动命令的组合来完成。 这就是 Vim 的界面开始看起来像一个程序语言的时候。Vim 的编辑命令也被称为 “动词”, 因为动词可以施动于名词。
i
进入插入模式- 但是对于操纵/编辑文本,不单想用退格键完成
O
/o
在之上/之下插入行d
} 删除 {移动命令- 例如,
dw
删除词,d$
删除到行尾,d0
删除到行头。 c
} 改变 {移动命令- 例如,
cw
改变词 - 比如
d
再i
x
删除字符(等同于dl
)s
替换字符(等同于xi
)- 可视化模式 + 操作
- 选中文字,
d
删除 或者c
改变 u
撤销,<C-r>
重做y
复制 /yank
(其他一些命令比如d
也会复制)p
粘贴- 更多值得学习的: 比如
~
改变字符的大小写
计数👀
- 你可以用一个计数来结合“名词”和“动词”,这会执行指定操作若干次。
3w
向前移动三个词5j
向下移动5行7dw
删除7个词
修饰语👀
- 你可以用修饰语改变“名词”的意义。修饰语有 i,表示“内部”或者“在内“,和 a, 表示”周围“。
ci(
改变当前括号内的内容ci[
改变当前方括号内的内容da'
删除一个单引号字符串, 包括周围的单引号
本文总阅读量:
次