提升 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,包括LineEx命令和Last-line模式):这是Vim中执行更高级操作的关键模式,允许用户执行复杂的命令、脚本和自动化任务。

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

四、像弹钢琴一样弹奏 Vim

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

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/498328.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

安卓调试桥ADB

Logcat 命令行工具 | Android Studio | Android Developers 什么是ADB ADB 全称为 Android Debug Bridge ,是 Android SDK (安卓的开发工具)中的一个工具,起到调试桥的作用,是一个 客户端 - 服务器端程序 。其中 …

泛型,数据结构,集合

文章目录 泛型介绍解决问题好处使用通配符泛型的下限泛型的上限 数据结构定义常见的数据结构栈(先进后出)队列(先进先出)数组结构链表结构哈希表结构 集合List集合特点特有方法子类及其底层数据结构LinkedList集合 Set集合特点没有特有方法子类及其底层数据结构LinkedHashSet集…

HarmonyOS 应用开发之Want的定义与用途

Want 是一种对象,用于在应用组件之间传递信息。 其中,一种常见的使用场景是作为 startAbility() 方法的参数。例如,当UIAbilityA需要启动UIAbilityB并向UIAbilityB传递一些数据时,可以使用Want作为一个载体,将数据传递…

I.MX6ULL_Linux_系统篇(25) buildroot文件系统构建

前面我们学习了如何使用 busybox 来构建根文件系统,但是 busybox 构建的根文件系统不齐全,很多东西需要我们自行添加,比如 lib 库文件。在我们后面的驱动开发中很多第三方软件也需要我们自己去移植,这些第三方软件有很多又依赖其他…

Linux命令及中间件安装

一.Linux简介 1.Linux操作系统概述 Linux是基于Unix的开源免费的操作系统,由于系统的稳定性和安全性几乎成为程序代码运行的最佳系统环境。Linux是由Linus Torvalds(林纳斯托瓦兹)起初开发的,由于源代码的开放性,现在…

系统分析师-数学与经济管理

系统架构设计师 系统架构设计师-软件开发模型总结 文章目录 系统架构设计师前言一、最小生成树二、最短路径三、网络与最大流量四、不确定型决策 前言 数学是一种严谨、缜密的科学,学习应用数学知识,可以培养系统架构设计师的抽象思维能力和逻辑推理能…

sheng的学习笔记-AI-人脸识别

目录:sheng的学习笔记-AI目录-CSDN博客 需要学习卷机神经网络等知识,见ai目录 目录 基础知识: 人脸验证(face verification) 人脸识别(face recognition) One-Shot学习(One-shot learning&…

探索数据库--------------mysql主从复制和读写分离

目录 前言 为什么要主从复制? 主从复制谁复制谁? 数据放在什么地方? 一、mysql支持的复制类型 1.1STATEMENT:基于语句的复制 1.2ROW:基于行的复制 1.3MIXED:混合类型的复制 二、主从复制的工作过程 三个重…

踏入网页抓取的旅程:使用 grequests 构建 Go 视频下载器

引言 在当今数字化的世界中,网页抓取技术变得越来越重要。无论是获取数据、分析信息,还是构建自定义应用程序,我们都需要从互联网上抓取数据。本文将介绍如何使用 Go 编程语言和 grequests 库来构建一个简单的 Bilibili 视频下载器&#xff…

《亮数据:爬虫数据采集行业痛点的利器》

❤️作者主页:小虚竹 ❤️作者简介:大家好,我是小虚竹。2022年度博客之星评选TOP 10🏆,Java领域优质创作者🏆,CSDN博客专家🏆,华为云享专家🏆,掘金年度人气作…

IDEA2023使用手册 【持续更新...】

IDEA介绍 IDEA官网:https://www.jetbrains.com.cn/idea/IDEA 2023.2.2下载地址:https://download.jetbrains.com/idea/ideaIU-2023.2.2.exe对第三方软件的支持:https://www.jetbrains.com/legal/third-party-software/?productiiu&versi…

gin | gin会话控制

会话控制 Cookie介绍 HTTP是无状态协议,服务器不能记录浏览器的访问状态,也就是说服务器不能区分两次请求是否由同一个客户端发出;Cookie 就是解决 HTTP 协议无状态的方案之一,中文是小甜饼的意思;Cookie 实际上就是…

香港90年代著名女歌手病逝终年58岁 抗癌大半年今早睡梦中离世

90年代玉女歌手黎明诗 (Stephanie) 今日(3月28日)惊爆病逝的消息,终年58岁。不少圈中朋友已收到消息,得悉她的死讯都大感惋惜。据知黎明诗积极抗癌大半年,今早在睡梦中离开。 黎明诗退出乐坛多年,其后在201…

Colorize (Texture Color Palette Modifier)

Colorize提供了无与伦比的区域颜色调整和效果控制,如使用纹理调色板的模型的发射、金属反射和模拟金属遮挡。 Colorize彻底改变了你在Unity中为3D模型添加颜色和生命的方式。无论你是一个独立开发者、艺术家,还是一个大型团队的一员,Colorize都提供了一套直观、强大的工具,…

Wireshark自定义协议解析器插件C语言开发

文章目录 概要Wireshark 软件整体架构基本概念解析器实现逻辑解析器编译环境搭建软件编译过程 概要 Wireshark是一款全球使用与开发维护人数最多的遵循GPL协议开源的网络协议分析软件,全球开发者为Wireshark编写了数千种协议的解析插件。 在实际的工作中&#xff0…

软件工程学习笔记10——开发编码篇2

开发编码篇 一、软件工程师的核心竞争力1、学习能力2、解决问题的能力(1)发现问题(2)分析问题(1)解决问题 3、影响力4、总结 二、如何提升软件工程师的核心竞争力1、如何提升学习能力2、如何提高解决问题的…

【python 数据可视化】 WordCloud词云图

目录 词云简介 准备工作 安装方法一: 安装方法二: 生成词云步骤 数据预处理: 分词: 统计词频出现的次数: 去除词语: 生成词云: 显示词云: 保存词云: 完整代码 词…

Docker搭建LNMP环境实战(07):安装nginx

1、模拟应用场景描述 假设我要搭建一个站点,假设虚拟的域名为:api.test.site,利用docker实现nginxphp-fpmmariadb部署。 2、目录结构 2.1、dockers根目录 由于目前的安装是基于Win10VMWareCentOS虚拟机,同时已经安装了VMWareT…

状态压缩DP【蒙德里安的梦想】

题目描述 输入样例 1 2 1 3 1 4 2 2 2 3 2 4 2 11 4 11 0 0输出样例 1 0 1 2 3 5 144 51205题目链接 https://www.acwing.com/problem/content/293/ 分析 总方案数即为横放的方案数,因为横放完后列填补只会出现一种情况1表示横放,0表示竖放如果合并…

实验2-spark编程

实验目的 (1)通过实验掌握Spark的基本编程方法; (2)熟悉RDD到DataFrame的转化方法; (3)熟悉利用Spark管理来自不同数据源的数据。 实验内容 1.Spark基本操作 请参照…
最新文章