.. _vim_basic: =============== 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`` 命令就可以使用。 不过,非常建议使用 :ref:`tmux` 来结合shell完成工作,这是一个非常灵活的终端会话管理工具。 参考 ===== - `Getting started with Vim: The basics `_ - `How do I run a terminal inside of Vim? `_