vim基础

vim的基础使用真是非常非常简单,然而需要不断训练形成肌肉记忆。

按照我自己的基础,我自认为基本使用不需要再重复,我仅仅在这里推荐一些容易被忽视的基础技能(或者说我最初没有意识到的基础)。

模式

vi的 常用模式 如下:

  • Normal: 默认模式,也就是可以移动光标的模式,这需要使用导向按键,例如著名的 hjkl

  • Insert: 插入和修改文本,使用 i (insert) 或者 a (append)

  • Command Line: 命令行输入指令,以 : 开始,例如保存 :s 退出 :q

如果命令后加上 ! 则表示强制(force)

其他比较有用的模式是 Virtual ,可以用来选择文本,批量编辑

关键的切换 Normal 模式按键是 Esc 按键,这也是 Mac 电脑曾经用TouchBar替代的关键按键,最后不得不回归的对专业计算机用户非常重要的按键。

yark 和 paste

复制粘贴:

yy
使用 hjkl 移动光标
p   粘贴

上述 yy 会整行复制到剪贴板,然后用 p 可以粘贴到光标下一行。

但是,如果你不是要整行复制,而是只复制一部分就要用到前面说的 Visual 模式:

v   进入visual模式
使用 hjkl 移动光标,光标经过的地方都会高亮
y   复制高亮部分到剪贴板
再次使用 hjkl 移动光标到需要粘贴的位置
p   粘贴

undo 和 redo

如果错误操作,则按下 u 执行 Undo ,并且可以不断按 u 进行回退。

搜索

命令行模式按下 / 就是进入搜索

搜索一次以后,如果再次搜索就按 n

注意,这个搜索是从上往下搜索。

如果要从下网商搜索,则按下 ? 进入搜索,也是按下 n 继续搜索,只不过方向是从下往上。

split模式(重点)

vim提供了屏幕分割模式,命令行输入:

split

就可以将编辑屏幕分割成上下两部分。上述 split 命令可以简写成 sp ,也就是只要按下 sp 简单的2个按键就可以分割好。

现在我们需要在分割的上下两个窗口间切换:

ctrl+ww

如果要垂直分割屏幕,则使用 vsplit (简写命令是 vs ),就能把屏幕分割成左右两个部分。

那么,如果我们把屏幕分割成更多部分,例如上下左右,有该如何切换窗口呢?

方法也是先按下 ctrl+w 表示窗口模式,然后按下 hjkl 著名的4向移动按键进行窗口的 左下上右 切换。

vim的terminal

vim 8.1开始内建了一个终端功能,使用 :term 命令就可以使用。

不过,非常建议使用 tmux多会话终端管理 来结合shell完成工作,这是一个非常灵活的终端会话管理工具。

参考