分享篇文章:为什么我会使用 Vim ?

2022-08-27 01:36:11 +08:00
 skywind3000

正文请点击:

18950 次点击
所在节点    Vim
195 条回复
christin
2022-08-27 22:12:54 +08:00
怎么没人提 ideavim ,把 vim 的优点集成到 idea 中,开发效率加倍!
hankli
2022-08-27 22:48:01 +08:00
@christin ideavim +1 ,另外可以直接映射 idea 的快捷键非常的香啊
dcsuibian
2022-08-27 22:52:32 +08:00
我更偏向于使用专用工具。

如果我这么用正则表达式格式化 HTML ,我就会很担心正则写得对不对,或者有没有我没考虑到的特殊情况。而用编辑器插件或 IDE 时我就不会太担心。

虽然人都会犯错,但是专用工具的开发者应该会比我想的更远,也能收到更多人的反馈。

有点像把车交给老司机开。
closedevice
2022-08-27 23:38:33 +08:00
@haolongsun 想起了多年前刚工作带我老大哥,所有开发都在 emacs ,不用任何提示,各种系统函数了然于胸,全程没见过成用一次鼠标,当场给跪了~
MengiNo
2022-08-28 00:30:49 +08:00
@liuhuansir 主要是如果是容器的话,没有 ssh ,复制那个 .vimrc 就很不优雅。vsc 虽然也要下载,至少是鼠标点点剩下他自己全自动。虽然也会留下个 vs-server ,但至少这玩意不会影响到别人。其实我在公司内网大部分机器都留下了这个,然而至今估计也没人发现。而如果是 .vimrc 一变,下一个上来的人肯定马上就蒙圈了(虽然改基础操作键位映射概率不大)。

我也不是说 vsc 多好,确实就是和你说的一样,喜欢折腾没话说。但是很多人都跟风去抄个作业,找个什么大神的配置文件,有点本末倒置。但是如果自己从零配起,确实也就和楼上几位说的,还不如用 ide ,有这时间不如去研究点别的或者早点下班。

我前一段也了解了下,好像 nvim 也有人开源了完全兼容 vsc 的 devcontainer 那套配置文件的 remote container 机制,同样的,也有人为 vsc 写了 multi cmd 之类的增强 vim 模式的插件。其实没必要只用一个,就像我相信很多人的电脑里都会留一个 sublime ,哪怕早就不用它来写项目了。
skywind3000
2022-08-28 00:37:28 +08:00
@daveh 上面给你 append 了一段回复你。
liuxu
2022-08-28 00:53:36 +08:00
刚用 vim 写完 systemtap demo

既然是 skywind3000 大佬发帖,那意见我肯定是完全同意的

不过虽然我每天都用 vim ,但 vscode 和 doomemacs 才是人类最终的信仰
ColorfulBoar
2022-08-28 01:46:16 +08:00
太经典了:写个个位数行数的 C with class 证明 vim 也能写 C++,然后把这种 C with class 代码堆上一万行证明 vim 也能写非微型 C++项目。你问我咋知道是 C with class 的……随便看看这几个图里面有啥:在一个非历史遗留项目里面能看见 stdio.h, main(void), wcslen, 传参往进传 const wchar_t*,星号贴着变量名写,裸指针满天飞 ownership 一团糟,auto 仅用于演示自己宁可偷偷把 size_t 隐式 cast 成 int ,NULL ,以为 inline 是建议编译器内联……除了最后那个跟[Google C++ Style Guide]( https://google.github.io/styleguide/cppguide.html#Inline_Functions)同一水平的离谱错误,剩下的当然语法和语义上都是“正(能)确(跑)”的,但这么写的 C++是啥样懂得都懂,我就不逐行品鉴了

C++这种折磨 IDE 的东西,只要用点复杂的 template 很容易就能把 Clion 的类型推导提示给炸了,这种时候 LSP 什么表现我都不敢想(所以那帮让人用 vscode 写的已经很恐怖了),至于连 LSP 都不一定有的……算了算了不说了
skywind3000
2022-08-28 02:57:28 +08:00
@ColorfulBoar C 艹 er 怎么到处都喜欢好为人师,不要来规定 C++ 代码该怎么写,我爱怎么写怎么写,BasicBitmap.cpp 就是 c with class ,怎么着了,十多年前写的代码,保证 c++ 98 也能编译,你没见路径前面的 vintage 单词么?

1 ) stdio.h 有啥问题?我爱用 printf 。
2 ) main(void) 怎么了?写着好看。
3 )参数里 const wchar_t * 再正常不过,xxx_ptr 别乱用,接口部分如果跨二进制你还给我写一堆 xxx_ptr 的话你不怕死的很惨么?
4 )我本来就不喜欢写 auto ,auto 你写的时候爽,读的时候痛苦。
5 )截图里哪里有 inline ?你看花眼了吧?

你只知道 xxx_ptr 不理解它的问题,我早就回答过特定的地方限制它的原因:

https://www.zhihu.com/question/33084543/answer/2197934746

不同层次的应用使用有不同风格 C++ ,你写上层业务怎么爽怎么来,越靠近底层,你会发现越是要控制,你只在一个领域开发,当然只觉得一种写法合适,你多接触几个领域就知道不同了。

越底层的越是要精细控制,你看看 v8 核心代码里是不是到处指针飞?各种图形引擎里是不是指针飞?某些地方要管理资源也是自己做的引用计数,为啥?想过没?

不要觉得天底下的 C++ 就该一种写法,是你接触的项目类型不够多,就是那一类,好好写你的代码吧,别一天到晚装语言律师到处教别人做人,就跟有些中国人特别爱给其他中国人指正英文水平一样,招人嫌,人家水平更高的 natvie 都没那群鸟人烦。

至于截图里的 PyStand.cpp 本来就是个随意的小项目,我非常清楚我在干什么,我打 int 可以少打两个字符,传 const wchar_t * 是因为不想四处带个套。

最后,Vim 早就支持 LSP 了,你不知道么,我上面的类型就是 clangd 推导出来的。
ColorfulBoar
2022-08-28 07:08:56 +08:00
hbdh5
2022-08-28 07:35:19 +08:00
一路看下来的感觉就是编辑器圣战这个话题的活力还真是生生不息。我觉得可定制性,扩展性这个东西见仁见智吧,可定制好是好,但你为了这个先得付出学习成本,比如 vimscript 什么的。如果不考虑成本的话那所有开源的代码都是同等可定制性的。而论其学习成本以传统 gui 逻辑为界面基础的各个编辑器是有绝对的优势的。
bwangel
2022-08-28 08:17:29 +08:00
刚刚写博客的时候,正好遇到个痛点,正是它让我放弃了 vim 转向 vscode

1. vim 对 markdown 高亮的支持并不友好,高亮经常出现问题,被 ``` 包裹起来的块不高亮,没有被包裹的反而高亮了。退出重进可能就好了。



2. vim 中 md 的代码块无法进行语法高亮,我想像 vscode 一样,对一块 C 代码进行高亮,vim 也无法做到

DonaldY
2022-08-28 08:27:03 +08:00
所以我使用 emacs
LonnyWong
2022-08-28 08:39:31 +08:00
@skywind3000 大佬用哪个 lsp 和 server ,或者其他的?我之前用 ycm ,现在试试 vim-lsp ,用 pylsp 大约要两三秒才弹出补全提示,不是很理想的样子。还没来得及去尝试 C/C++ 的。
popil1987
2022-08-28 08:47:00 +08:00
vim + doomemacs
ssh 登陆远程开发微信小程序和 iOS 应用
都是 vim 键位,不用太多改变
可以互补,一些语言有的 vim 支持好,有的 emacs 支持好
学了用一辈子
jdhao
2022-08-28 09:16:19 +08:00
@LonnyWong 新人一般建议用 coc.nvim 🌝
qiumaoyuan
2022-08-28 09:41:29 +08:00
我的 vim 只有一个插件:NERDTree. 足够用,用了十来年。
LonnyWong
2022-08-28 09:42:38 +08:00
@jdhao vim 老用户了,不过 lsp 还是新用户,抽空试试 coc.nvim 是否好用,是时候升级一波 vim 配置了。
ChrisFreeMan
2022-08-28 10:27:23 +08:00
@LonnyWong 刚从 vim-lsp 踩坑出来,bug 有点多(我是用来写 python ),建议直接上 neovim ,那玩意是真的好用.
研究下这几个插件你就能起飞了。
'neovim/nvim-lspconfig'
'williamboman/nvim-lsp-installer'
'nvim-treesitter/nvim-treesitter'
haochen2
2022-08-28 10:45:42 +08:00
俺用 vim 只写脚本,写代码太费劲了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/875730

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX