免责声明:在我写这篇文章的时候,我还是一个22岁的刚从学校毕业的年轻人。这些事情中有很多可能是个人喜好。最后,做出这些改变不是一件简单的壮举,至少可以说是非常令人沮丧的。
不久前,我会用VS代码进行大部分编程(除非我必须使用别人的系统,否则我只会使用Vi/Vim)。这是因为VS代码拥有我需要的所有东西,甚至更多。VS代码简直就是一个无所不能的人。
VS Code有一个嵌入的终端,让我可以执行我需要的命令,里面还有一个文本编辑器和一个文件资源管理器,该死的,它甚至还内置了GIT功能。但尽管如此,我还是决定离开它,原因有几个。
我觉得使用GUI(图形用户界面)文本编辑器会损失的一件事是,您停止与CLI(命令行界面)工具交互,CLI(命令行界面)工具是任何具有相同功能的GUI的构建块,因此迫使您使用更严格的工具版本,而该工具可能具有如此强大的功能。我将以git为例,假设我们需要从另一个远程拉出一个文件,据我所知,vs代码没有一个简单的方法可以做到这一点,但在git中,它就是这样。
现在让我们看一下最后一点,有时我们仍然需要使用终端来执行某些命令,这是因为GUI界面只是构建在终端命令之上(即VS代码中的git命令是根据gitcli构建的)。通过查看VS代码中的git功能,我们可以看到它提供了许多有用的命令,但是很难执行复杂的git操作。
如果一个复杂的操作是必要的,那么了解如何使用CLI将需要更长的时间,而不是您已经习惯了使用CLI。
虽然这可能是一次性的情况,但您可能会对这些情况发生的频率感到惊讶。拥有对CLI的控制权是一项强大的技能,因为这样您就可以充分利用提供给您的工具。
现在,您不仅了解了这些命令如何工作的基本原理,而且还允许您根据需要构建自己的快捷方式,以改进您自己的工作流。例如,当您开始一天的工作时,您可能想要将分支更新为主repo上的内容,因此您可以创建一个快捷方式,如下所示
或任何您想要的命令字符串,并附加一个关键字或别名,当您想要执行该命令时可以调用这些关键字或别名。这是非常强大的,因为现在命令可以为您工作,而这只有在知道核心CLI是如何工作的情况下才能实现。
我不知道你怎么想,但我是这样的人,如果我看到一个新工具或一个按钮,我会播放或触摸它,直到A)。它能做某事或B)。它断了。因为像VS Code这样的工具提供了如此多的开箱即用功能,这使得我很容易破坏东西。当我不确定为什么一些预期的行为不再发生,或者仅仅因为我在玩弄按钮而出现新的行为时,这会导致问题。
看看这个航站楼,告诉我如果你以前没有经验,你会怎么弄坏它?这有点难,对吧?你不能在发生什么事之前只敲打按钮--你得先做些调查。
查看CLI时,情况正好相反,因为为了进行更改,必须确切地知道要输入什么命令或在哪里进行更改。虽然你仍然可以打破一些东西,但找到并修复你犯下的错误会更容易,因为它需要你输入你想要去的方向,而不是从选项列表中挑选。这样打碎东西似乎更加刻意。
这也再次加强了第1点)。因为它让您在系统中导航并进行更改,而不是让GUI自动为您进行这些更改。
假设我们想要删除这句话的第一个和最后一个单词。
一项简单的任务似乎要做很多工作,对吧。在Vim里我们需要做的就是。
我们现在可以看到,与在屏幕上拖动光标相比,仅知道这三个命令就可以轻松完成简单的文本编辑。
还有更多类似的命令,您也可以创建自己的命令。
简而言之,使用光标比将手放在键盘上要慢,所以尽可能减少移动会让您有更多的时间专注于手头的实际问题,而不是将光标放在需要放置的位置。
免责声明:VS代码确实有快捷键的功能,但对我来说,能够点击屏幕意味着如果我被迫使用它,我学习快捷键的速度就不会那么快了。
根据你喜欢的方式调整你的工作流程的能力,一开始是需要时间才能做到正确的,但一旦完成,就有家的感觉。
无论是通过在myzsh中创建自定义别名,还是在vim配置中重新映射键,都有很多方法可以根据您喜欢的工作方式定制体验。您还可以通过无数种可能的方式设置您的系统来为您工作。
这是因为这不是一个封闭的系统,如果您不喜欢某些功能,可以跳到代码中自己更改它。大多数内容都可以从配置文件进行更改,比如.vimrc、.zshc等等。但是,即使配置文件没有任何可能的更改,也不会阻止您更改周围的代码,因为您有权这样做。
正如我们在第一节中提到的,我们可以将任何内容映射到任何一组操作,从而使我们的系统以我们希望的方式工作。
现在就我个人而言,我并不真的在乎别人是用哪种工具,只要能帮你最快、最好地完成工作就行了。但对我来说,我发现强迫自己走出舒适区,开始使用学习曲线可能更高的工具,最终会让我成为一个更有效率的人。还有CLI工具的好处,让你感觉更像电影中的网络黑客(:)。
另外,我在本文中只提到了几个工具,但是我的核心驱动程序是带有tmux多路复用器的nvim,也使用grep来搜索文件。
如果你想联系我,请随时登陆www.kevinpallikunnel.com给我发电子邮件,我很乐意聊天。