vim的基础使用真是非常非常简单,然而需要不断训练形成肌肉记忆。
按照我自己的基础,我自认为基本使用不需要再重复,我仅仅在这里推荐一些容易被忽视的基础技能(或者说我最初没有意识到的基础)。
vi的 常用模式 如下:
- Normal: 默认模式,也就是可以移动光标的模式,这需要使用导向按键,例如著名的
hjkl
键 - Insert: 插入和修改文本,使用
i
(insert) 或者a
(append) - Command Line: 命令行输入指令,以
:
开始,例如保存:s
退出:q
如果命令后加上 !
则表示强制(force)
其他比较有用的模式是 Virtual
,可以用来选择文本,批量编辑
关键的切换 Normal
模式按键是 Esc
按键,这也是 Mac 电脑曾经用TouchBar替代的关键按键,最后不得不回归的对专业计算机用户非常重要的按键。
复制粘贴:
yy 使用 hjkl 移动光标 p 粘贴
上述 yy
会整行复制到剪贴板,然后用 p
可以粘贴到光标下一行。
但是,如果你不是要整行复制,而是只复制一部分就要用到前面说的 Visual
模式:
v 进入visual模式 使用 hjkl 移动光标,光标经过的地方都会高亮 y 复制高亮部分到剪贴板 再次使用 hjkl 移动光标到需要粘贴的位置 p 粘贴
如果错误操作,则按下 u
执行 Undo ,并且可以不断按 u
进行回退。
命令行模式按下 /
就是进入搜索
搜索一次以后,如果再次搜索就按 n
注意,这个搜索是从上往下搜索。
如果要从下网商搜索,则按下 ?
进入搜索,也是按下 n
继续搜索,只不过方向是从下往上。
vim提供了屏幕分割模式,命令行输入:
split
就可以将编辑屏幕分割成上下两部分。上述 split
命令可以简写成 sp
,也就是只要按下 sp
简单的2个按键就可以分割好。
现在我们需要在分割的上下两个窗口间切换:
ctrl+ww
如果要垂直分割屏幕,则使用 vsplit
(简写命令是 vs
),就能把屏幕分割成左右两个部分。
那么,如果我们把屏幕分割成更多部分,例如上下左右,有该如何切换窗口呢?
方法也是先按下 ctrl+w
表示窗口模式,然后按下 hjkl
著名的4向移动按键进行窗口的 左下上右
切换。
vim 8.1开始内建了一个终端功能,使用 :term
命令就可以使用。
不过,非常建议使用 :ref:`tmux` 来结合shell完成工作,这是一个非常灵活的终端会话管理工具。