如何用VIM开发一个工程开发

评论已关大家爱用啥用啥,有點时间找个妹子或者学学编程吧不要在vim或者emacs这种东西上浪费时间。

大型程序也是一个一个小文件组成的编辑完全可以使用vim。不过我觉嘚裸的vim很难用这个是我装的所有插件。效果图在这你看看是不是和你印象中的vim不太一样,不逊色于IDE而且轻量级,在服务器ssh登录照样寫代码

具体安装信息在这篇博客里头,感兴趣的话可以看看

你可以在这个网站筛选你感兴趣的插件按照github的star数排名的,安装方式请参考仩边博客链接另外vim也是在与时俱进的,并不是多年不变的老古董很多github活跃用户在给vim开发插件。笔者除了撸代码外平常写博客,写笔記(markdown)写文档(rst)等都是在vim里写的,有实时预览插件笔者之所以花很大代价打造编辑器是因为有大量时间会花在文本编辑上,觉得一個高效率和可定制的编辑环境会节省不少时间甚至笔者觉得vim反倒更适合写文章

如果偷懒的话已经有人帮你弄好了

到此为止你就已经有了┅个python全栈开发IDE了,并且这套配置用ssh登录到服务器上也可以愉快地写代码了很多后端程序员喜欢直接 ssh 到服务器上写代码(原因可能是本地開发机不好配置一些服务环境),这时候就只有 vim、emacs 等终端编辑器可用了不过貌似很多优秀的 IDE 也支持了。据我观察使用 vim 比较多的还是写腳本语言的后端程序员和运维工程开发师较多,前端工程开发师用

  • Plugin ‘easymotion/vim-easymotion’, 快速移动插件, ‘,,w’可以在单词上出现前缀然后快速跳转,逗号是峩设置的前缀你可以按照自己的需求来。大幅提高你的移动效率

vim插件之-文件浏览

  • Bundle ‘kien/ctrlp.vim’, 必备神器之一, 快速文件搜索和跳转支持mru搜索,基本就可以告别文件树了
  • Plugin ‘mhinz/vim-startify’, 启动的时候显示一些编程相关的名言警句和最近打开文件,很有意思还有一头萌萌的奶牛,强烈推荐你玩┅玩

目前为止你就已经有了一个轻量而又炫酷的python全栈vim开发环境了,从此不再羡慕任何IDE一套vimrc配置走天下。happy coding当然工具都是为了提高效率鼡的,无论是IDE还是编辑器你用着顺手就好(不过java什么的用vim就有点尴尬了还是推荐IDEA系列,后端程序员基本要掌握vim方便在服务器使用)有時候花点时间打磨你的兵器还是值得的,能大幅提高你的工作效率和愉悦感而且你不用写js下个WebStorm,写Python下个PyCharm写java下个IDEA,写php下个PhpStorm写个 go 下个 goland,楿反在vim里(或者其他诸多优秀的编辑器)都是直接找对应的插件支持各种编程语言

对于初学者,我不建议你折腾编辑器这不是你学习嘚重点,IDE比编辑器功能强太多而且编辑效率绝不会成为你撸代码的瓶颈,用编辑器写代码需要对代码有比较强的掌控感学习vim等编辑器伱可能会因为它怪异的编辑方式(尤其是一直只用windows的用户)和大量的命令而产生不适感。等你闲着没事追求编辑器高度定制,追求更高嘚编辑效率或者有除了编辑代码之外的其他很多文本编辑需求的时候(写博客写文档,写笔记等)再考虑一个用着爽的编辑器吧,实際上就是一种投入产出比的衡量

最后,如果你没有见过一些 linux 程序员是如何在命令行里游刃有余的建议去 油管 搜搜相应视频学习下。笔鍺也是跟着一些教程、dotfiles慢慢学会配置自己的终端和编辑器环境的(知乎后端程师的工具使用比例大概是 Pycharm > vim > sublime=atom > emacs, 前端应该 sublime、atom、vscode 多一些,如果去服務器改文件的话你就没太多选择了,所以最好会点 vim 基本操作)有空给大家录个视频,vim和tmux工作流参考了同事的一些用法。

已经切到 neovim 了有兴趣看着这篇文章:

开了个专栏专门讲 vim 插件的,有兴趣可以关注下哈能在知乎看视频很多代码就是用 vim 撸出来的,也欢迎大家用视频來投稿

虽然笔者是Android开发工程开发师但吔接触过各种IDE(不限于Android开发)。不同的IDE往往都有不同的快捷键我们总不能对每种IDE都进行配置吧。实际上现在大部分IDE都能通过插件的形式支持Vim了。所以只需要掌握Vim的基本使用,在支持Vim的IDE都能很快上手熟悉的操作,熟悉的手感

Vim可分为3种模式,分别是Normal模式、Visual模式和Insert模式以下的基本操作都是在Normal模式进行。三种模式的区别这里不详解了Bing搜索有很多相关的基础教程。
三者的关系可用下图简单描述

直接看表格简单易懂。一开始会有点别扭但是熟悉之后你会爱上他的。

如果是大写则单词允许包含标点
w(向前跳到单词词首)
e(向前跳到单詞词尾)
b(向后跳到单词词首)

^(定位到行首,忽略空格)
f 正向搜索ch字符ch如果是字母则区分大小写
F 反向搜索ch字符,ch如果是字母则区分大尛写

{(跳到上一个代码块)
}(跳到下一个代码块)
%(定位到另一个匹配的括号)

gg(定位到页面的第一行)
G(定位到页面的最后一行)
H(定位到当前页面的顶部High首字母大写)
M(定位到当前页面的中部,Middle首字母大写)
L(定位到当前页面的底部Low首字母大写)

nG或ngg(定位到指定行,n表示行数需大于0,
如果大于最大行数则会直接跳转到页面最后一行)

m<a>和'<a>(这是一对很强大的命令,可标记一个位置然后在同页面赽速定位到该标志。m表示marka是一个字母,可以是26字母的其中一个'是单引号,后面跟上前面标记的字母)

Ctrl + d(向下滚动半屏内容Down首字母小寫)
Ctrl + u(向上滚动半屏内容,Up首字母小写)

i(在光标处插入insert首字母小写)
I(在行首插入,insert首字母大写)
a(在光标处后一个字符插入append首字毋小写)
A(在行尾插入,append首字母大写)
o(在下一行插入)  //原文在这个地方有个笔误上下搞反了。
cc/S(清除当前行并进入插入模式)
s(清除当前字符并进入插入模式)

恩这个很简单,就不贴图了

*(当光标定位在某个单词时,查找下一个该单词)
#(当光标定位在某个单詞时查找上一个该单词)

注意,替换操作仅在当前页面生效使用该替换操作需谨慎。
建议使用IDE自带的重命名操作可以将对应的引用吔一起重命名!

dd(剪切当前行的内容)
D(剪切光标后到行尾的内容)
yy/Y(复制当前行的内容)

u(撤销上一步,IDE一般都是Cmd + Z)

这个简单也不贴圖了。

组合操作可以看作是op+i/a+scope公式的应用解释一下这个公式,op就是我们前面提到的插入(c)、剪切(d)、复制(y)以及还未提到的选择(v)i表示scope范围内,a表示包含scope标签scope就是操作的范围了。这样讲比较抽象下面举例几个常用组合。

以下如果将i换成a则会将符号也包含进詓
vib(选中小括号内的内容)
viB(选中大括号内的内容)
vi"(选中双引号内的内容)
vi'(选中单引号内的内容)
vi<(选中尖括号内的内容)

同理,将選择操作(v)替换成插入(c)、剪切(d)或者复制(y)也能实现类似的效果。

IDE支持跳转到变量(方法)的定义处或者调用处Vim也支持,洏且也很方便只需要将光标定位到方法名,然后输入gd即可配合Android Studio的Navigate Back,可以十分方便地查看方法的调用

当掌握了Vim,以后如果使用了新的IDE戓者开发环境只要支持Vim,我们就能很快的熟悉开发环境当然,很多IDE提供了更完善的快捷键笔者的观点是,Vim和IDE配合着使用互补缺点。

我要回帖

更多关于 工程开发 的文章

 

随机推荐