使用 vim 写程序真的很爽嘛 入编程坑一来 用过 vs vsc jb 部分 也经常切换到 vim 想要尝试一些,但发现 vim 会有一些让人难受的点,所以 vim 到现在为止 我最多用来 shell 以及 在 ide 里面 移动删除复制粘贴和批量操作这些简单的操作,完全用不到视频里面一些大佬那么的流程
痛点如下
1
monkeylyf 2021-11-16 16:24:36 +08:00
其实大量插件都不是必需的。核心诉求就那么几个,如 coc/ycm ,文件模糊搜索,快捷键编译或者测试等(自己用 vimscript 写)
|
2
ysn2233 2021-11-16 16:26:49 +08:00
在其他编辑器或者 ide 里用 vim 的编辑模式就行,写项目我觉得除非很熟练不然不适合 vim ,我一般写一些简单的 python 或者 shell 脚本会用 vim 。
|
3
Leviathann 2021-11-16 16:28:55 +08:00
1 ,2 我也觉得很麻烦所以我用 IdeaVim
3 的化应该不会啊,我记得用 Coc 的话配置一个 " Use K to show documentation in preview window. nnoremap <silent> K :call <SID>show_documentation()<CR> function! s:show_documentation() if (index(['vim','help'], &filetype) >= 0) execute 'h '.expand('<cword>') elseif (coc#rpc#ready()) call CocActionAsync('doHover') else execute '!' . &keywordprg . " " . expand('<cword>') endif endfunction 就行了,normal 下按 K 就会有文档 |
4
Vegetable 2021-11-16 16:31:42 +08:00
不是,人家都是在 IDE 里使用 vim keymap ,你怎么直接连 ide 都不用了?
|
5
fishDD 2021-11-16 16:33:44 +08:00 1
vim 是文本编辑器,所以用来开发程序的话,需要一些插件来配合(因为懒)。
1 、vim 插件多,但不代表你需要的多。实际开发过程中,高频的其实就那几个。代码提示 /自动补全,编译 /运行,debug ,查找,文件树等等。(其实所有 ide 都一样,插件茫茫多,真正高频使用的没几个。区别在于 ide 会预先给你配置好,比如自动提示,编译运行等等,vim 需要你手动编译) 2 、相较于其他 ide 开发插件,vim 提供良好的环境,你可以根据自己需要去定制自己的插件。 3 、vim 是这个长时间自己熟悉并打磨的过程,真正开箱即用的很少的。 只有适合自己的,没有绝对正确的。 |
6
wellsc 2021-11-16 16:34:47 +08:00 2
vim 一般写小项目,小脚本,我只需要一个高亮,vim 自带的 complete 就够用了,真要折腾大项目不如直接上 ide
|
7
xujiahui 2021-11-16 16:38:34 +08:00
IDEA 或 VSCode 上装 Vim 插件
|
8
zen1 2021-11-16 16:42:41 +08:00
没有特殊需求,为什么要舍弃 IDE 而转向 vim 呢
我觉得还是确定好核心诉求,没必要为了用而用 vim ,是不是大佬不是看用什么工具编码决定的 |
9
muxueqz 2021-11-16 16:43:05 +08:00 1
我已经从 SpaceVim 迁到 Lunarvim.org 了,加载速度更快,补全等功能也更好,写代码比 VSCode 和其它重量 IDE 畅快许多
|
10
weixiangzhe 2021-11-16 16:51:30 +08:00
太累了,ide / vscode 加 vim 键位吧
|
11
hzjseasea OP @weixiangzhe 是的 我当前就是这么干的
|
13
hzjseasea OP @Leviathann 我配置一下看看,tks
|
14
weixiangzhe 2021-11-16 17:04:14 +08:00
@hzjseasea 我试过几周,但开发时发现 ctrl+c ctrl v 时还是鼠标好使
|
15
hzjseasea OP @ysn2233 对的,我现在就是这样,之前在油管上看他们写项目,那个 vim 耍的飞起,b 站有个 up 主也是
|
16
hzjseasea OP @weixiangzhe 复制粘贴这种我倒是用的蛮舒服的 主要是窗口切换, 目录树啊 vim 里面不是还有打标记那种嘛,我也没用到。。
|
18
timchou 2021-11-16 17:12:48 +08:00 2
写了 10 年代码,一直用 vim ,大小项目都是,而且不装啥配件,代码补全啥的,也没有使用的习惯,没觉得效率有啥低的。关键自己顺手就行
|
19
yujinchn 2021-11-16 17:28:27 +08:00
都是 ideavim 加官方几个 easy-motion 啥的插件,完事
|
20
wtdd 2021-11-16 18:14:36 +08:00
一般人用插件足以,除非有大佬带或者组里氛围好一起用,不然自己钻研曲线很不平滑严重浪费时间
|
21
yuancoder 2021-11-16 18:16:19 +08:00
直接开始用,用过的过程中觉得哪个操作不爽了,再去找插件。
|
22
xarthur 2021-11-16 18:22:51 +08:00 via iPhone
1. 确实是一个插件一个插件配置过来的,其实大部分插件的配置都不复杂,基本上只要在插件管理器里加上一句话就能用了,只是 CoC/ycmd 的功能强大,所以他们它们配置麻烦。
3. 不清楚具体需求,不过 Rust 的 LSP 应该支持方法跳转吧,所以 CoC 应该支持看一个函数的实现。 |
23
975779964 2021-11-16 18:26:04 +08:00
ideavim 2 年, 这是我的配置 https://gitee.com/ifnk/myIdeavimrc/blob/master/.ideavimrc
|
24
jdhao 2021-11-16 18:36:05 +08:00 via Android
推荐用 neovim ,不过入门确定需要一段时间学习,不像 IDE 开箱即用。
1 ,安装的插件确实有的需要自己试试才知道好不好用,有个 awesome neovim 项目不错,总结了很多插件 3 ,看 doc 肯定是可以的,配置好 lsp ,doc 随便看,我一般映射为 K ,在函数名上按 K 显示函数的信息 |
25
kangfenmao 2021-11-16 18:36:59 +08:00 1
爽个屁,趁早放弃
|
26
closedevice 2021-11-16 19:29:28 +08:00
用了五年的 vimer 表示,现在几乎所有的开发都用它,不是因为高效,而是因为统一
|
27
ChrisFreeMan 2021-11-16 19:48:58 +08:00
呃。。。。其实取决于你对它的熟悉程度,越熟悉越爽,很多魔法操作的,一点点去挖掘,我是一路遇到什么编辑难题,就去搜索有没有相应的快捷操作,渐渐的就越来越熟。
|
28
ChrisFreeMan 2021-11-16 19:49:44 +08:00
其实开始我用它纯粹是为了在同事面前装比...
|
29
cassyfar 2021-11-16 20:01:53 +08:00
vim 的乐趣之一就是折腾各种配置。不推荐 spacevim ,太臃肿了。如果懒得折腾,直接 vscode 或者 jetbrain 全家桶就好了。
|
30
wyx119911 2021-11-16 20:42:51 +08:00
光写代码倒是还挺顺手,跨文件 copy 好麻烦
|
31
ChrisFreeMan 2021-11-16 20:58:10 +08:00
@wyx119911 我是设置和系统共享黏贴板,既然别的编辑器都是这样,why not 。
下面这个加到配置里 " set share system clipboard set clipboard=unnamed |
32
wyx119911 2021-11-16 21:10:59 +08:00
@ChrisFreeMan 忘了说我是 ssh 到开发机再 vim 的,现在用 vscode remote 很舒服
|
33
blessingsi 2021-11-16 21:12:02 +08:00
1. 现在的主流插件,基本上文档都很全,配置没那么痛苦了,而且配置文件打磨是个长期功夫,只要写出第一版差不多能用的,后面慢慢优化吧。如果嫌 vimscript 太难用,可以尝试一下 neovim ,支持 lua 配置,写起来比 vimscript 舒服一些
2. 个人还是喜欢从零开始,搞一个最适合自己的,直接照抄别人的配置,有问题很难定位,而且有的功能根本用不到,缺点就是费时费力。这个就看个人习惯了 3. 各个 lsp 的客户端肯定都实现了查看文档的方法,自己配个 key-binding 就好了 |
34
ffxrqyzby 2021-11-16 21:12:50 +08:00
尝试过无数次 vim , 最终还是放弃了,github 上有现成的 space vim 项目, 一键安装, 不用自己配置了
|
35
fkdog 2021-11-16 21:38:10 +08:00
如果你想获得别人更多的认同感,你应该提升自己的技术水平。
而非把时间花在这些小众工具上企图通过与众不同来装逼。。。 如果纯 vim 真的那么好用,jetbrain 和微软为什么要花大力气去开发 idea 和 vs ? 合适的场景用合适的工具,这才是聪明人的选择。 |
36
darksword21 2021-11-16 22:33:48 +08:00
@fkdog 请别一棍子打死谢谢
|
37
ZhenYuD 2021-11-16 22:36:27 +08:00
vim 解决的问题就是键盘输入文本的成本。当然可以根据需要配置 vim 获得 all in one 的一体化体验,但是付出的是折腾的成本;也可以直接通过插件在各种 ide 里最大程度的模拟它。或者你两者都占,只要你知道自己想要什么~
-- 来自 emacs 用户 |
38
hronro 2021-11-16 22:58:24 +08:00
Vim 需要写很多配置才能达到和 IDE 一样的功能这种说法,现在已经过时了,(Neo)Vim 现在已经比以前好用太多了。
得益于 NeoVim 现在已经内置了 LSP ,配合 NeoVim 官方和社区共同维护的 nvim-lspconfig ,你现在只需要装 nvim-lspconfig 这一个插件,不需要任何其他的插件和配置,你就能在大多数语言里获得自动补全、定义跳转、引用查看、inline docuemnt 等 IDE 级别的功能。你唯一需要配置的就是这些功能的 key binding 而已。 回到楼主的痛点: 1. 如果你觉得 Vim 的插件和配置太过麻烦,我的建议是你不要一股脑的把网上别人的配置全抄过来。配置可以少,但你需要知道每一行的配置是干什么的。事实上现在 NeoVim 配合 LSP ,默认的配置和内置的插件已经足够干活了,当你用熟之后,可以在有选择地添加插件提高你的工作效率。 2. 我不知道用过 spacevim 算什么痛点。 3. 可以看的,而且因为 NeoVim 已经内置了 LSP ,所以实际上你不需要装任何插件就能做到这点。你只需要配置一下 LSP Hover 的 key binding 就可以了。等下我可以录个视频给你看看我的效果。 |
39
hronro 2021-11-16 22:59:03 +08:00
|
40
rainysia 2021-11-16 23:12:16 +08:00
用了十多年 gvim. 没 GTK 就用 vim, 就是用 IDE 来实现各种语法糖跳转后, 最后编辑也是快捷键触发打开一个 gvim 来编辑。
|
41
liuxu 2021-11-16 23:24:24 +08:00
以前用 spf13 的 vim 插件包,写了大半年 php ,后来用 vscode 了,改代码用 vim ,不过现在改 php 代码基本 vscdoe 或者 doom-emacs 了
|
42
jdhao 2021-11-17 00:13:31 +08:00
neovim 可以干点啥: https://v2ex.com/t/813706#reply4
|
43
mr2xd 2021-11-17 08:06:08 +08:00
经常去摸索,知道 vim 能做什么,平时搭配 ide 使用,最常用的也就那么几个,想要一个多功能的编辑工具,直接快进到 doom emacs
|
44
ErenJaeger 2021-11-17 08:57:57 +08:00
我用vim难受的地方就是在插入模式下,只能用上下左右移动。。。
|
45
ohwind 2021-11-17 09:35:40 +08:00
@ErenJaeger 你可以重映射按键
inoremap <C-h> <Left> inoremap <C-j> <Down> inoremap <C-k> <Up> inoremap <C-l> <Right> cnoremap <C-h> <Left> cnoremap <C-j> <Down> cnoremap <C-k> <Up> cnoremap <C-l> <Right> |
46
ciki 2021-11-17 09:49:42 +08:00
十年前 IDE 没现在这么强大的情况下,VIM 都是小众圈子,何况如今的 IDE 了
|
47
jessun1990 2021-11-17 10:01:30 +08:00
不推荐 spacevim 等集成度较高的 vim 套件。虽然它简化了 vim 的原本配置难度,但是又构造了新的学习难度,自身的配置太多了。
我自己本人只用 neovim ,不用 vscode 和其他 IDE ,日常工作 golang ,业余学习 rust 。学习 vim 配置建议这样: 1. 用 vscode+vim 插件等编辑器正常工作; 2. 偶尔使用 vim 做简单编辑,只配置那种不带任何插件的基础配置; 3. 在 2 的基础上,尝试安装插件来解决代码补全 /格式化 /语法着色等问题; 4. 尝试从 1 过渡到 3 ; 当前学习建议直接使用 neovim 和 lua 类型配置。 推荐: https://github.com/rockerBOO/awesome-neovim https://github.com/neoclide/coc.nvim https://github.com/nanotee/nvim-lua-guide |
48
ixx 2021-11-17 10:13:22 +08:00
@ErenJaeger #44 你需要换个 可自定义键盘 😁
|
49
jnqcMer2019 2021-11-17 10:17:34 +08:00
@jessun1990 gopls 如果在非 GO MOD 的项目或者多个 GO MOD 子项目是不是会失效?
|
50
jessun1990 2021-11-17 10:26:38 +08:00
@jnqcMer2019 目前我的配置是会出现这样的情况。但是由于我司的项目出现这种情况非常少。
|
51
Chingim 2021-11-17 10:44:23 +08:00
前端开发, 一直用 vim
尝试了几次转到 vscode, 均以失败告终. vscode 总有一些场景是键盘不能完成的, 动不动就需要我去拿鼠标, 这一点对我来说是个痛点. 所幸的是(neo)vim 能很好地满足我的需求, 就一直用着吧, 也不用在编辑器间换来换去. |
52
Chingim 2021-11-17 10:48:33 +08:00 9
现在有股风气, 只有在 vim 的帖子里, 总有一种声音: "用 vim 就是装逼, 有这个折腾的功夫用 ide 不好吗".
在我看来: 1. 用某种工具就是大神 2. 用某种工具就是装逼 这两种看法没啥区别, 都是二极管思维的蠢驴 |
53
ALVC666 2021-11-17 10:49:58 +08:00
ideavim 已经满足了我的 99%需求了
而且还不用折腾 装完插件 加载.ideavimrc 直接起飞 |
54
m1nm13 2021-11-17 11:07:01 +08:00
5 年使用经验,vim->vim plus ->vscode vim
最近换成 vscode vim , 原生 vim +插件 的方式太容易出问题了,ycm 个人觉得效果算是很差的了,还不算因为 python 版本依赖,导致的各种奇葩问题。跳转定义,只要工程一大,铁定跳不对,举个例子,LINUX 内核源码。也就配合 grep/egrep 还能用用。加上 vscode 现在有 tabnine 这类神奇的自动写代码插件,我觉得换成 vscode 或者其他 IDE 基本是大势所趋了。 我认为的 vim , 是一个操作手段,是一个摒弃鼠标的操作方式,能让两只手都放在键盘上的操作方式。而不是这些杂七杂八的 代码补全,定义跳转,这些都不如当前流行的 jetbrain 或者 vscode 。既然有更好的 IDE 能够兼容 VIM ,更换也是大势所趋 |
56
hzjseasea OP @hronro 因为我感觉会有很多人说可以去试一下用 spacevim 因为 spacevim 宣传说是开箱即用, 但其实使用起来感受上还是 neovim 来的爽快,唯一的痛点还是这个插件, 我配置的时候确实是一股脑的复制过来的哈哈哈,自己也有尝试一个一个看,就看着看着又回到 ideavim 上去了= =
|
58
jdhao 2021-11-17 12:51:13 +08:00 via Android
@hzjseasea 先搞定你开发急需的插件,然后再慢慢扩展,另外如何用 vim 的方式解决问题,也需要日积月累的经验,不可能一蹴而就,随着 vim 功力大涨,用 vim 只会越来越爽
|
60
HereJustWait 2021-11-17 13:11:22 +08:00 via iPhone
我原来也是 vim 的忠实拥护,直到用上了 vscode 的 remote ssh
|
61
darksword21 2021-11-17 13:21:22 +08:00
@m1nm13 ycm 也是用 lsp 跳转的吧,你换成 vscode 不也是一样
|
62
ccagml 2021-11-17 13:31:41 +08:00 via Android
试了好几次 vim ,都感觉没有直接 vscode 的 remote ssh 好用。除了用来改简单的单文件配置
|
63
loryyang 2021-11-17 13:48:58 +08:00
IDE + VIM 插件呀,都不是老古董了,没必要拒绝 IDE 的快乐
|
65
wupher 2021-11-17 14:52:19 +08:00
vim 也有插件管理包。使用对应工具,插件的管理与更新也更方便。
相比 vim ,neovim 更新,且有 Copilot 支持。与 vim8 相比,现在更喜欢 neo 。 IDE 也有一般有 vim 插件或模式,连万年的 xCode 现在都有了。 目前觉得难受的,是中文,或者说非英文环境吧。vim 对于中文和日文的支持都不好。对于 word 的理解不是太准确。 |
66
ww2000e 2021-11-17 14:57:08 +08:00
|
68
flysp 2021-11-17 15:20:21 +08:00
gvim 支持切换不同输入状态下切换中英文,这是我坚持使用 vim 的一个理由
" Windows 适用 " 切换为普通状态切换输入法为 ASCII 模式 if has('win32') augroup imeauto autocmd! autocmd! InsertLeave * set imdisable|set iminsert=0|set noimdisable autocmd! InsertEnter * set noimdisable|set iminsert=0 augroup END endif |
69
Vinceeeent 2021-11-17 16:28:15 +08:00 via Android
何苦折磨自己,IDE 的快捷键已经够好用了,还没有什么学习成本。
|
70
lingxi27 2021-11-17 16:36:52 +08:00
懒人可以用 ideavim 挺不错
|
71
hronro 2021-11-17 21:19:24 +08:00 1
@m1nm13 #54
近两年 Vim/NeoVim 进步神速,你说的这些问题全部都不存在了。 补全 / 跳转直接用 LSP ,其效果和 VS Code 比起来不能说相似,只能说一模一样。(因为 VSCode 和 Vim/NeoVim 的底层都依赖 LSP 来实现,所以用同一份代码实现的补全 / 跳转,其行为也只能和 VSCode 保持一致) Tabnine 在 Vim 也有。 即使是 VSCode 的杀手锏级别功能 Remote Development ,现在 NeoVim 也有了 distant.nvim 这个插件来实现了。 倒是 VSCode / IDEA 上这些 vim keybinding ,没一个能完全准确地 100% 模拟真实 Vim 的行为。而且 VSCode / IDEA 在流畅度上也差 Vim 太远了(即使 VSCode 是 Electron 天花板,也毕竟还是用的 Electron ) |
72
acdfjelxe 2021-11-18 16:36:04 +08:00
7 年 vimer, 从 vim 到 neovim, 现在干活超级慢 🤣
|
73
IsaacYoung 2021-11-18 16:50:46 +08:00
我之前也折腾 后来发现没有 vscode + vim 实用 就不折腾了
|
76
jdhao 2021-11-22 12:29:03 +08:00 via Android
@acdfjelxe 一起玩啊,我的配置 https://github.com/jdhao/nvim-config
|