提升 Vim 技能的四种方法

如果您经常使用安全shell:

$ ssh user@hostname.provider.com

并使用虚拟专用服务器 (VPS) 或本地虚拟化容器,就此而言,您可以从强大的 Vim 技能中受益匪浅。

一、将 Vim 设置为默认文本编辑器

1 、将 Vim 设置为 Bash 中的默认值

Bash 通过点文件的组合来管理设置。最常见的做法是将您喜欢的编辑器添加到主目录中的**.bashrc** 文件中,但也可以将其添加到**.bash_profile** 中。 (阅读GNU Bash 文档以了解差异)。

通过将以下内容添加到**~/.bashrc** ,可 将 Vim 设置为默认编辑器:

set default editor to Vim

export EDITOR=vim

# 开头的行是可选注释,这是提醒自己命令作用的好方法。

2 、在 Zsh 中将 Vim 设置为默认值

Zsh 是一种越来越流行的终端模拟器,特别是自从最近Apple 基于 FreeBSD 的 Darwin 系统从 Bash 切换到 zsh 后,zsh 点文件与 Bash 类似,因此您可以在**~/.zshrc** 或**~/.zprofile** 之间进行选择。有关何时使用哪一种的详细信息,请参阅zsh 文档。

将其设置为默认值:

set default editor to Vim

export EDITOR=vim

二、优化您的 Vim 配置

关闭 Vi 兼容性,请将以下内容添加到**~/.vimrc** 文件中:

" ensure that legacy compatibility mode is off

" documentation: http://vimdoc.sourceforge.net/htmldoc/options.html#'compatible'

set nocp

三、了解模式

以下是Vim的几个关键模式及其主要功能的概述:

  • 普通模式(Normal Mode):这是Vim的默认模式,主要用于导航和文件操作,如打开、保存和退出。
  • 插入模式(Insert Mode,包括替换模式):在此模式下,Vim允许用户将文本输入到打开的文件中,进行编辑和修改。
  • 视觉模式(Visual Mode):此模式下,Vim的行为类似于基于鼠标的文本编辑器,允许用户选择文本块,并进行复制、剪切、粘贴等操作。
  • 命令模式(Command Mode,包括Line、Ex命令和Last-line模式):这是Vim中执行更高级操作的关键模式,允许用户执行复杂的命令、脚本和自动化任务。

每种模式都有其独特的功能和技巧,值得用户深入探索。对于希望更深入了解Vim的用户,推荐使用"vimtutor"命令,这是一个交互式教程,可以帮助用户逐步了解如何在Vim中移动、切换模式以及在"最后一行"模式下运行Ex命令。

四、像弹钢琴一样弹奏 Vim

使用"C-"前缀(即大写字母 C 后跟连字符)来指代 Ctrl 键。

Vim 在启动时保持处理文本换行关闭,并将其排除在运行时命令文件之外。当需要文本换行时,仅需使用 :set wrapper 命令将其临时设置为命令行模式。

将 Vim 设置为默认换行并无绝对的对错之分,这完全取决于个人偏好------且这种偏好可能会随时间而改变。类似地,在 Vim 的命令行模式下,所有这些默认行为选项都是可配置且可实时更改的。

您可以在社区论坛、Vim Wiki 以及各类文章(例如本文)中找到大量关于 Vim 默认值设置的建议。

尽情享受探索Vim之美的过程吧,并在评论中分享您遇到的任何问题,让我们一同在Codigger平台上交流学习,共同成长。

相关推荐
jiunian_cn6 小时前
【Linux】高级IO
java·linux·服务器
程曦曦6 小时前
宝塔服务器磁盘爆满:占用50G磁盘空间的.forever日志文件处理导致服务崩溃的教训
运维·服务器·vim
☆璇6 小时前
【Linux】网络基础概念
linux·网络
poemyang6 小时前
“一切皆文件”:揭秘LINUX I/O与虚拟内存的底层设计哲学
linux·rpc·i/o 模式
大聪明-PLUS7 小时前
GPIO 也是一个接口,还有 QEMU GPIODEV 和 GUSE
linux·嵌入式·arm·smarc
UpYoung!7 小时前
无广技术贴!【PDF编辑器】Solid Converter PDF保姆级图文下载安装指南——实用推荐之PDF编辑软件
学习·数学建模·pdf·编辑器·运维开发·个人开发
东方佑8 小时前
基于浏览器的DOCX文件编辑器:实现导入、编辑与导出功能
编辑器
红尘客栈28 小时前
Kubernetes 集群调度
java·linux·网络·容器·kubernetes
Starry_hello world9 小时前
Linux 进程地址空间
linux·笔记·有问必答
撬动未来的支点9 小时前
【Linux】Linux驱动开发与BSP开发:嵌入式系统的两大基石
linux·驱动开发