蚊章汇 - Detlef Johnson
type: channel
link: https://linuxcn.bwsl.wang/author/1390/
description: Detlef Johnson
items: 提升你的 Vim 技能的 5 个方法

提升你的 Vim 技能的 5 个方法
type: item
date: 2020-04-06T07:24:59+08:00
description: 通过一些有趣的小技巧使你的文本编辑器更上一层楼。Vim 是最受欢迎的文本编辑器之一，因此绝对值得你花时间去学习如何使用它。就算你只是学习使用这个无处不在的 Vi(m) 命令行文本编辑器打开文件、输入和编辑一些文本、保存编辑的文件并退出程序，你都会受益匪浅。你会发现，使用 Vim 非常方便的的场景几乎总是涉及到运行远程 Shell 操作的任务。如果你时不时地使用 ssh，比如$ ssh user@hostname.provider.com并在虚拟专用服务器（VPS）或本地虚拟化容器中工作，那么就可以从这些强大的 Vim 技能中受益匪浅。将 Vim 设置为默认的文本编辑器几乎所有的现代 Linux（或 BSD）发行版中，都可以在终端仿真器的 shell 命令提示符下使用 Vim。一旦在你的用户 shell 程序中将 Vim 定义为默认编辑器后，那么就可以使用熟悉的 Vim 键绑定来在内置的实用程序（例如 man）中导航。我将说明如何使用 Bash 和 Z shell（zsh）来实现此目的，zsh 现在是 macOS 用户的默认 shell（自 Catalina 起）。在 Bash 中将 Vim 设置为默认Bash 通过点文件的组合来管理设置。最常见的的做法将你的编辑器添加到主目录中的 .bashrc 文件中，但也可以将其添加到 .bash_profile 中。（请阅读 GNU Bash 文档了解两者的不同之处）。通过在 ~/.bashrc 中添加以下内容，将 Vim 设置为默认编辑器：# set default editor to Vim export EDITOR=vim以 # 开头的行是可选的注释，这是一个好方法，可以提醒自己该命令的作用。在 zsh 中将 Vim 设置为默认zsh 是一种越来越流行的终端仿真器，尤其是在苹果公司的基于 FreeBSD 的 Darwin 系统最近从 Bash 转向 zsh 以来。zsh 点文件与 Bash 的文件相当，因此你可以在 ~/.zshrc 或 ~/.zprofile 之间进行选择。有关何时使用哪一个的详细信息，请参见 zsh文档。将其设置为默认：# set default editor to Vim export EDITOR=vim优化 Vim 配置Vim 像是终端仿真器 shell 一样，也使用点文件来设置个人偏好。如果你发现了这种模式，则可能已经猜到它是 ~/.vimrc。你可能要更改的第一个设置是将对传统的 Vi 兼容模式切换为“关闭”。由于 Vim 是 Vi 的超集，因此 Vi 中的所有功能在 Vim 中都是可用的，并且在 Vim 中得到了很大的改进，你可以获得许多高级功能。最新版本（8.2）允许你在分割的窗口中以子进程 shell 的方式打开一个终端。顺便说一句，明确关闭对传统的 Vi 的兼容性看起来没有什么作用（事实上，可能并没有什么作用）。当 Vim 遇到 .vimrc 文件时，它会暗暗地自动将兼容模式切换到关闭。但有时将其明确关闭仍然很重要。缩写 nocp 是 nocompatible 的同义词，作用是一样的。条条大道通罗马，切换首选项有很多方式。在 .vimrc 语法中， 以 " 开头的行是注释（就像 .bashrc 文件中的 # 一样），这些注释可以帮助你记住诸如为何选择了一个隐晦的设置名称之类的内容。要关闭 Vi 兼容性，请将以下内容添加到 ~/.vimrc 文件中：" ensure that legacy compatibility mode is off " documentation: <http://vimdoc.sourceforge.net/htmldoc/options.html\#'compatible>' set nocp理解模式Vim 的 “模式”概念是非常重要的，尤其是“普通模式”和“插入模式”之间的区别。对模式的混淆是大多数新用户的困扰。模式并不是 Vim 所独有的，甚至也不是 Vi 所引入的。命令模式是如此的古老，以至于它比 70 年代发明的复制和粘贴功能还要早。重要的模式Vim 依赖于不同的模式来定义键盘的敲击行为。需要了解的重要模式有：普通模式：默认模式，主要用于导航和打开文件。插入模式（包括替换）：这种模式下 Vim 允许将文本输入到打开的文件中。可视模式：Vim 的行为类似于基于鼠标的输入方式，如复制、编辑、替换等。命令模式（包括行模式、Ex 命令模式和末行模式）：是在 Vim 中做更多事情的强大方法。每种模式都有很多值得探索的地方。使用 Vimtutor（vimtutor）可以交互式地学习移动光标、模式和在末行模式下运行 Ex 命令。一些不可缺少的生产力操作符包括：操作符说明:E打开资源管理器，用于定位文件和目录。.重复上次的…