Vim – 它的朋友们
Vim 是一个非常受欢迎的文本编辑器,其快捷键和可扩展性都是其优秀的特点。但是,Vim 并不是一个可以独立完成所有工作的编辑器,它需要“朋友”的帮助。在这篇文章中,我们将了解一些 Vim “朋友”的细节,这些工具将使我们更加高效地使用 Vim。
先来回复一下 Vi 和 Vim 之间的区别。Vi 是 Unix 和类 Unix 操作系统上的一款文本编辑器,Vim 是 Vi 的增强版。Vim 支持诸如语法高亮、代码折叠、UniCode、补全等高级功能,并且它的快捷键和可扩展性比 Vi 更加优秀。然而,本文并不致力于介绍 Vim,而是介绍一些 Vim “朋友”的细节。让我们开始吧。
Tmux – 终端复用器
Tmux 是一个终端复用器,能够让用户在一个终端管理多个会话,并在这些会话之间轻松地切换。为什么要使用 tmux 呢?想象一下,你在终端中阅读文档,但你需要在不同的终端中编写代码、启动服务器等,这时候 tmux 就派上用场了。tmux 可以让你在一个终端中同时操作多个终端,在这些终端之间快速切换,从而使你的生产力大大提高。
下面是一些 tmux 的基本命令:
$ tmux # 启动 tmux(如果未安装,请从仓库中获取)
$ tmux new -s name # 创建名为 name 的新会话
$ tmux ls # 列出所有会话
$ tmux attach -t name # 附加到名为 name 的会话
$ tmux switch -t name # 切换到名为 name 的会话
在 Vim 中使用 tmux,你可能会使用 tmux 窗口更改 Vim 窗口大小,启动编译器、服务器等。通过学习了解 tmux 使用方法,你将会有更好的 Vim 使用体验。
如果您是 MacOS 用户,可以通过 Homebrew 安装 tmux:
$ brew install tmux
Zsh – 更好的 shell
Zsh 是一个非常强大的 shell,它具有很多比 Bash 更加强大的功能。其中包括自动补全、实时路径示例、简便的历史操作、通配符扩展等等。另外,Zsh 支持插件和主题,并且可以定制 Zsh 中的大部分元素。如果你想改善你的终端体验,那么你要好好学习一下 zsh 了。
当你将 Zsh 配置为默认 shell 后,使用它和 Bash 完全一样。
Zsh 的安装使用这些命令:
Ubuntu / Debian:
$ sudo apt-get install zsh
MacOS:
$ brew install zsh
Fzf – 模糊查找
Fzf 是一个快速杂糅的命令行启动器,它可以帮助你快速查找任何你想要的内容。你可以使用 Fzf 来快速打开任何文件、目录、清单等,它支持模糊匹配、排除和多种窗口模式。你甚至可以在 Vim 内部使用 Fzf,以便快速查找文件。Fzf 对于开发人员来说是一个很好用的工具。
下面是一些 Fzf 的基本命令:
$ fzf path/to/folder # 在目录中模糊搜索文件
$ cat */* | fzf # 根据文件内容模糊搜索
$ history | fzf # 模糊搜索历史命令
$ vim $(fzf) # 在 Vim 中模糊查找文件
要安装 Fzf,请使用这些命令:
$ git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
$ ~/.fzf/install
Ctags – 代码导航
Ctags 是一个高效的代码导航工具,它可以在代码中跟踪函数、类、变量等。对 Ctags 的使用不仅限于 Vim,很多编辑器都支持使用 Ctags 进行代码导航。在 Vim 中,你可以使用 Ctags 来跟踪函数、类、变量等。
下面是一些 Ctags 的基本命令:
$ ctags filename # 为 filename 文件生成 tags
$ vim -t function_name # 跨文件跳转到 function_name 函数
$ :tn # 跳到下一个标记
$ :tp # 跳到上一个标记
要在 Ubuntu / Debian 上安装 Ctags,请使用以下命令:
$ sudo apt-get install exuberant-ctags
Ripgrep – 更快的搜索
Ripgrep 是一款非常快的代码搜索工具。它独特的算法可以让它比其余的代码搜索工具更加快速。你是否在 Vim 中搜索过含有一万行或更多的文件?如果是这样,那么使用 Ripgrep 可以大大提升搜索速度。
Ripgrep 支持大约一百多种文件格式,包括 C、C++、Java、Python、Ruby、Go、TOML、YAML 和 JSON 等。你可以通过学习 Ripgrep 的使用方法,更加高效的搜索。
下面是一些 Ripgrep 的基本命令:
$ rg {regex} path/to/folder # 在文件中搜索 regex
$ rg -t py {regex} path/to/folder # 仅搜索 Python 文件
$ rg --files-with-matches {regex} path/to/folder # 显示包含匹配的文件
$ rg --no-line-number {regex} path/to/folder # 只显示文件和匹配的行
在 Ubuntu / Debian 上安装 Ripgrep,你需要用以下命令:
$ sudo apt-get install ripgrep
Ack – 更优秀的代码搜索
Ack 是一个比 grep 更好的代码搜索工具,它可以快速搜索文件并显示关键行。它还支持通过配置文件定制搜索选项。在 Vim 中使用 Ack,你可以快速搜索代码。
下面是一些 Ack 的基本命令:
$ ack {regex} path/to/folder # 在文件中搜索 regex
$ ack --type=python {regex} path/to/folder # 仅在 Python 文件中搜索
$ ack -il {string} path/to/folder # 只显示包含匹配的文件名称
要安装 Ack,请使用以下命令:
$ sudo apt-get install ack-grep
Conclusion
本文中,我们介绍了一些 Vim 的好朋友,它们可以使你更加高效地使用 Vim。其中,tmux 是一个终端复用器,可以让你在多个终端之间快速切换。Zsh 是一款比 Bash 更加强大的 shell。Fzf 和 Ripgrep 都是快速的搜索工具,让你在代码库中搜索效率更高。Ctags 和 Ack 则针对代码导航和代码搜索进行了优化。通过学习这些工具,你可以使 Vim 增强你的生产力,使你的工作更能专注于项目的核心。
当然,这些工具只是许多 Vim “朋友”中的一部分。通过探索 Vim 社区和相关文档,你可以发现许多其他有用的工具,从而提高你的 Vim 经验。无论你是 Vim 的新手还是经验丰富的用户,都应该研究一些 Vim “朋友”,以充分利用这个强大的文本编辑器。