Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >当我们在谈论vim的时候我们在谈什么

当我们在谈论vim的时候我们在谈什么

作者头像
Masimaro
发布于 2022-05-10 02:55:51
发布于 2022-05-10 02:55:51
4550
举报

最近我想开一个新的系列,记录我使用vim的相关心得。初次接触vim是在大学操作系统实践课程中,跟着Linux一块进行学习的。当初我是百般嫌弃它的,想要进行编辑还要按下其他键,我想要移动光标居然还的切换到普通模式下,这些种种我一直认为是反人类的。后来经过无数次的尝试、放弃、再尝试的过程,如今我已经离不开它了,不管用何种编辑器、用何种IDE,我首先会找是否有相关的vim模拟插件。这个文章标题也是我使用vim的心路历程,我采用这个标题,也是希望我写出来的文章,能给我的读者带来一些帮助,使各位读者也能像我一样从恶语相向到爱不释手。

当我们在谈论vim的时候我们在谈什么

什么是vim?通过各种百科它会告诉你vim是由vi发展而来的,然后会告诉你vim分为好几个模式,给出一堆命令,例如如何移动光标、如何切换模式、如何搜索等等一系列vim命令。但是这些仅仅只是皮毛上的东西,远远无法告诉我们,为什么要选择vim。

我觉得当我们谈论vim的时候,应该要谈论如何使用vim提高编程的效率,一般来说是指快速定位代码,快速修改代码、避免一些繁琐的重复工作等等一系列方式来提升工作效率。以达到编程的速度跟得上思维的速度,即快速将脑海中的想法通过代码展示出来。

所以我这里不打算像一般的vim教程那样上来就是一堆命令,告诉你如何进行普通的文本编辑。或者告诉你该使用哪些插件来扩展你的vim,让它像某某编辑器一样好用。以我来看,这些都是邪路,有那个时间去折腾如何将vim变成某某IDE,不如直接使用那个IDE,还能节省大量时间。如果仅仅停留在了解vim的基本命令,将vim作为记事本来使用,那么vim也就失去了它的价值。

vim的操作逻辑

不管使用何种工具来编写文本,键盘操作总是比鼠标要高效的,即使是使用word和excel完成工作的人,熟练使用各种快捷键的总是会比使用鼠标点选各种功能的要快的多,但是像word、excel或者其他IDE来说,功能实在太多,这样就导致需要映射的快捷键过多,很快键盘上的键就不够用了,这个时候部分编辑器选择只映射常用的,而另外的编辑器则选择增加快捷键的层数,一层不够就两层、两层不够久三层,这个emacs就是典型的例子。

而vim为了有效键位映射到足够多的快捷键上,使用了各种模式,各种模式相互独立,完成不同的工作,这样有几个好处:

  1. 在普通模式下,键盘上的键不再作为输入键,可以针对常见操作进行键位优化,不用长时间按住ctrl了
  2. 可以提供更多功能,可以方便的进行扩展,基本最顺手的键位就是最常用的键位

关于vim的一些说法

1. vim上手难度高,学习曲线陡峭

vim其实学起来并不难,很多人觉得难主要是因为:

  1. vim官方的教程又臭又长,以它来作为学习的资料,在初期会显的啰嗦,而且很多内容不知道该如何在日常中去运用,导致理论与实践脱节
  2. vim 中有大量的快捷键、模式要记忆,很难像普通编辑器那样开箱即用
  3. vim编辑器的逻辑与其他不同,需要长时间练习以便形成肌肉记忆
  4. vim有众多插件,而且插件文档质量参差不齐。很多文档都没介绍使用它能带来如何的效率提升

2. vim不如其他编辑器(不如emacs、不如visual studio code)

很多人都说vim是上个世纪的老古董,不如现如今一些现代编译器好用。从某种程度上来看,确实是对的,毕竟世面上有那么多的如何将你的vim变成visual studio code、变成idea等等一系列教程。但是还是那句话,我们学习vim并不是学习如何查找、下载、配置各种插件,万物都用vim来进行。而是取其精华,学习它一整套操作逻辑,以便提升自己的编码效率。至于像调试、一键部署、等等操作,这个都不是vim擅长的。记住vim擅长的仅仅只有文本编辑而已。

3. 学习vim浪费时间

现在有很多很好用的IDE,他们提供了例如代码补全、代码跳转等一系列好用的功能,而最原始的vim无法提供这些功能,得折腾一些配置和插件才能勉强达到其他IDE 60%到70%的功能。vim已经没必要学习了。作为程序员,应该时刻想着如何偷懒,如何提高个人工作效率,以便早早完成工作,按时下班,保证充足的摸鱼时间。为了这个目标,就有必要稍微花点时间研究如何提升如何使用现有工具,如何更好的使用现有的IDE。而vim作为现在业界公认的文本输入的最佳效率工具,对于想提升自己编码速度的程序员来说,很有必要花时间研究、学习它。

最后一些说明

本教程致力于通过vim的学习,学会一些高效的文本操作术。如何使用一些技巧来提升输入效率。而不会讲述如何将vim配置成ide。

本教程合适一些有编程经验,而不是刚入门的编程萌新,对于刚入门编程的萌新来说,现阶段最要紧还是巩固相关基础。

由于本人用macos做主力机,所以本教程将采用macos作为演示,针对Windows上的用户,有些操作可能跟windows自身快捷键冲突,或者Windows vim本身的问题,导致有些操作不支持的,目前我也不太清楚。

就写作之时,使用的vim为neovim。

好了开坑相关说明已经完成,后面就是正式进入vim之旅了。。。。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-04-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
日拱一卒,麻省理工YYDS,一节课让我学会vim
今天我们继续聊聊麻省理工的missing smester,消失的学期,讲解那些不会在课上提及的工具和技术。
TechFlow-承志
2022/09/21
5350
日拱一卒,麻省理工YYDS,一节课让我学会vim
TW洞见 | 浅谈快捷键
文章作者及视频来自ThoughtWorks:王健,部分图片来自网络。 又是一个小的分享,落笔成文。开始其实是想做一个文本编辑器的分享,不过在准备过程中,发现编辑器之争很多时候争的却是快捷键系统的设计。总觉快捷键系统的默认设计虽然是编辑器一个很重要的区别,但因为其可以通过插件或是配置的方式转换(例如Evil-Mode),所以快捷键系统的设计不再是某个编辑器的特性,而是一套独立于编辑器之外的系统。而运用好快捷键可以让日常工作生活的效率大幅提升,事半功倍,俗话说,天下武功唯快不破嘛。 1 溯源 回想第一次
ThoughtWorks
2018/04/16
7630
TW洞见 | 浅谈快捷键
关于新手vim的使用和常用命令
想要了解更多的小伙伴可去百度了解更多相关内容 在上文使用Ubuntu安装Jdk中我提到了Vim 其实,我们只要记住一些常用的命令,在工作中经常使用 Vim 进行编辑,就可以了
程思扬
2022/01/11
6010
Vim:提高工作效率的7个 Vim 使用技巧
vim 是个非常高效、非常好用的工具,很多人一旦开始使用 Vim 之后就再也无法自拔。然而, Vim 仍然有其自身缺陷,对于普通用户来说,很难在入门的时候就体会到Vim的所谓高效性。
猿哥
2019/06/18
1.3K0
2016 年的一些总结
2016 年总来的来说还是有所收获的吧。有很多可以说的,但是有觉得没什么营养。写不出高山,那就流水般地写着吧。
一缕殇流化隐半边冰霜
2023/06/09
2240
如何让你的开发效率提升 3 倍?
编程大牛、《Java 编程思想》一书的作者 Bruce Eckel 曾说过:在这个领域做得越多,我越觉得软件开发比任何行业都更接近于写作。
非著名程序员
2018/09/29
7260
如何让你的开发效率提升 3 倍?
10 个让你进入 Emacs 世界的技巧
很多人都说想学 Emacs,但很多人在短暂的接触后就退缩了。这并不是因为 Emacs 不好,也不是 Emacs 复杂。我相信,问题在于人们其实并不想“学习” Emacs,而是他们想习惯 Emacs 的传统。他们想了解那些神秘的键盘快捷键和不熟悉的术语。他们想按照他们认为的“使用目的”来使用 Emacs。
用户8639654
2021/09/09
8550
编程语言的 IDE 支持
或许是出自于对编写编程语言的兴趣,又或许是对于创建 IDE/编辑器的兴趣,对于『IDE/编辑器是如何提供编程语言的支持』,我充满了兴趣。其中的一个主要原因是,这是每天我们打交道最多的工具,另外一个原因可能是,咦,我们怎么没有国产的 IDE(手动狗头)。
Phodal
2020/10/26
2.4K0
Linux 开发人员的困境:拥抱 Vim 还是 IntelliJ IDEA?
Linux作为开发人员的首选操作系统,能使得开发者可以更加专注于开发创造,并且能够根据自己的需求和喜好进行灵活的定制和配置。
Lion Long
2024/08/07
3621
Linux 开发人员的困境:拥抱 Vim 还是 IntelliJ IDEA?
哪种Python IDE最适合你?这里有一份优缺点列表
写 Python 代码最好的方式莫过于使用集成开发环境(IDE)了。它们不仅能使你的工作更加简单、更具逻辑性,还能够提升编程体验和效率。
机器之心
2019/10/23
1.5K0
哪种Python IDE最适合你?这里有一份优缺点列表
IDEA + Vim,竟可以这么牛逼!!
本教程并不是单纯的vim操作介绍,更多的是与Intellj Idea进行配合。需要同时具备Intellj Idea和vim使用基础的同学学习。
终码一生
2022/04/15
3K0
IDEA +  Vim,竟可以这么牛逼!!
生物信息常用编辑器:轻量/强大/可定制/跨平台支持的编辑器之神 - vim
如果你开始在生物信息学中编写代码或处理大量文本数据,选择一个合适的文本编辑器将大大提升工作效率。今天我们来聊聊Vim,一个功能强大的文本编辑器。虽然 Vim 一开始看起来有些复杂,但一旦掌握,你会发现它是非常高效的工具,尤其适合处理大量脚本、配置文件以及快速编辑各种代码。
简说基因
2024/12/23
1010
生物信息常用编辑器:轻量/强大/可定制/跨平台支持的编辑器之神 - vim
从入门到精通:Vim 高效文本编辑全面指南
在 Linux 与类 Unix 环境中,Vim 凭借其高效、轻量、可扩展以及键盘导向的编辑哲学,赢得了无数开发者、运维人员与文本处理工作者的青睐。与传统的图形化文本编辑器不同,Vim 刻意将编辑与移动分离,以多种模式运作,让用户在键盘上就能快速完成复杂的文本操作。当你真正掌握其思维方式与快捷键布局后,会发现 Vim 并不只是一个编辑器,更像是文字与代码处理的“魔法杖”。
suye
2024/12/20
3340
从入门到精通:Vim 高效文本编辑全面指南
编辑器之神?神的编辑器?对不起给我来打IDE
程序员的圈子里面,永远有几个话题是经久不衰的,其中随随便便一个话题不论在哪个地方都能轻而易举的引起一场圣战:
MCU起航
2020/06/29
1.9K0
GO笔记之GO的那些IDE
经过前面的一系列工作后,GO的语言环境已经搭建完成。我们也初步体验了GO提供的大部分命令。但在正式进入开发之前,还有件工作要做,那就是选择一款适合自己的IDE。
波罗学
2019/07/31
9800
为什么要选择Vim编辑器
基本上来说,你应该尽可能少的呆在插入模式里面,因为在插入模式里面 VIM 就像一个“哑巴”编辑器一样。很多新手都会一直呆在插入模式里面,因为这样易于使用。但 VIM 的强大之处在于他的命令模式!你会发现,在你越来越了解 VIM 之后,你就会花越来越少的时间使用插入模式了。
杨永贞
2020/08/04
1.4K0
为什么要选择Vim编辑器
vi还是vim,教你快速上手linux下的文本编辑器
以上只是一些常用的vim快捷键示例,使用这些快捷键可以在编辑过程中快速导航、编辑文本和执行文件操作,提高工作效率。
一凡sir
2023/08/08
7240
跟我一起学习VIM - The Life Changing Editor
前两天同事让我在小组内部分享一下VIM,于是我花了一点时间写了个简短的教程。虽然准备有限,但分享过程中大家大多带着一种惊叹的表情,原来编辑器可以这样强大,这算是对我多年来使用VIM的最大鼓舞吧。所以分享结束之后,将这篇简短教程整理一下作为我2014年的第一篇Blog。
bear_fish
2018/09/19
1.3K0
跟我一起学习VIM - The Life Changing Editor
超漂亮 vim 配置:space-vim
space-vim 现已支持 Layer ,以下内容大都陈旧,欢迎访问 github 查看最新版本: >>>> space-vim
用户1558438
2018/08/23
2.7K0
从零开始配置 vim(3)—— 键盘映射进阶
在上篇我们介绍了基本的键盘映射操作,知道了如何 :map、:imap、:vmap、:nmap这些命令来映射键盘快捷键。它们很方便,也很简单,但是有一个致命的缺点。他们是递归的,我们先来讨论什么是递归
Masimaro
2022/08/04
1.5K0
从零开始配置 vim(3)—— 键盘映射进阶
推荐阅读
相关推荐
日拱一卒,麻省理工YYDS,一节课让我学会vim
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档