使用 vim 写程序
使用 vim 写程序真的很爽嘛
入编程坑一来 用过 vs vsc jb 部分 也经常切换到 vim 想要尝试一些,但发现 vim 会有一些让人难受的点,所以 vim 到现在为止 我最多用来 shell 以及 在 ide 里面 移动删除复制粘贴和批量操作这些简单的操作,完全用不到视频里面一些大佬那么的流程
痛点如下
使用过 neovim+coc 的组合,也有用 vim+ycm 的组合, 就是很多插件需要装,然后需要一个一个的去看这些插件,去写配置文件, 太复杂了,想问下大家都是这么一步一步过来的嘛
也用过 spacevim
没办法看 doc ,比如写 rust 的时候想看下具体的一个函数的方法,没办法看
其实大量插件都不是必需的。核心诉求就那么几个,如 coc/ycm ,文件模糊搜索,快捷键编译或者测试等(自己用 vimscript 写)
在其他编辑器或者 ide 里用 vim 的编辑模式就行,写项目我觉得除非很熟练不然不适合 vim ,我一般写一些简单的 python 或者 shell 脚本会用 vim 。
1 ,2 我也觉得很麻烦所以我用 IdeaVim
3 的化应该不会啊,我记得用 Coc 的话配置一个
" Use K to show documentation in preview window.
nnoremap
function! s:show_documentation()
if (index(['vim','help'], &filetype) >= 0)
execute 'h '.expand('
elseif (coc#rpc#ready())
call CocActionAsync('doHover')
else
execute '!' . &keywordprg . " " . expand('
endif
endfunction
就行了,normal 下按 K 就会有文档
不是,人家都是在 IDE 里使用 vim keymap ,你怎么直接连 ide 都不用了?
vim 是文本编辑器,所以用来开发程序的话,需要一些插件来配合(因为懒)。
1 、vim 插件多,但不代表你需要的多。实际开发过程中,高频的其实就那几个。代码提示 /自动补全,编译 /运行,debug ,查找,文件树等等。(其实所有 ide 都一样,插件茫茫多,真正高频使用的没几个。区别在于 ide 会预先给你配置好,比如自动提示,编译运行等等,vim 需要你手动编译)
2 、相较于其他 ide 开发插件,vim 提供良好的环境,你可以根据自己需要去定制自己的插件。
3 、vim 是这个长时间自己熟悉并打磨的过程,真正开箱即用的很少的。
只有适合自己的,没有绝对正确的。
vim 一般写小项目,小脚本,我只需要一个高亮,vim 自带的 complete 就够用了,真要折腾大项目不如直接上 ide
IDEA 或 VSCode 上装 Vim 插件
没有特殊需求,为什么要舍弃 IDE 而转向 vim 呢
我觉得还是确定好核心诉求,没必要为了用而用 vim ,是不是大佬不是看用什么工具编码决定的
我已经从 SpaceVim 迁到 Lunarvim.org 了,加载速度更快,补全等功能也更好,写代码比 VSCode 和其它重量 IDE 畅快许多
太累了,ide / vscode 加 vim 键位吧
是的 我当前就是这么干的
可能我表述的不够清楚 我当前就是 ide + vim plugin
我配置一下看看,tks
我试过几周,但开发时发现 ctrl+c ctrl v 时还是鼠标好使
对的,我现在就是这样,之前在油管上看他们写项目,那个 vim 耍的飞起,b 站有个 up 主也是
复制粘贴这种我倒是用的蛮舒服的 主要是窗口切换, 目录树啊 vim 里面不是还有打标记那种嘛,我也没用到。。
嗯呢如果是这样那我的确可以继续用当前的方案了 ide + vim
写了 10 年代码,一直用 vim ,大小项目都是,而且不装啥配件,代码补全啥的,也没有使用的习惯,没觉得效率有啥低的。关键自己顺手就行
都是 ideavim 加官方几个 easy-motion 啥的插件,完事
一般人用插件足以,除非有大佬带或者组里氛围好一起用,不然自己钻研曲线很不平滑严重浪费时间
直接开始用,用过的过程中觉得哪个操作不爽了,再去找插件。
- 确实是一个插件一个插件配置过来的,其实大部分插件的配置都不复杂,基本上只要在插件管理器里加上一句话就能用了,只是 CoC/ycmd 的功能强大,所以他们它们配置麻烦。
- 不清楚具体需求,不过 Rust 的 LSP 应该支持方法跳转吧,所以 CoC 应该支持看一个函数的实现。
ideavim 2 年, 这是我的配置 gitee.com/ifnk/myIdeavimrc/blob/master/.ideavimrc
推荐用 neovim ,不过入门确定需要一段时间学习,不像 IDE 开箱即用。
1 ,安装的插件确实有的需要自己试试才知道好不好用,有个 awesome neovim 项目不错,总结了很多插件
3 ,看 doc 肯定是可以的,配置好 lsp ,doc 随便看,我一般映射为 K ,在函数名上按 K 显示函数的信息
爽个屁,趁早放弃
用了五年的 vimer 表示,现在几乎所有的开发都用它,不是因为高效,而是因为统一
呃。。。。其实取决于你对它的熟悉程度,越熟悉越爽,很多魔法操作的,一点点去挖掘,我是一路遇到什么编辑难题,就去搜索有没有相应的快捷操作,渐渐的就越来越熟。
其实开始我用它纯粹是为了在同事面前装比...
vim 的乐趣之一就是折腾各种配置。不推荐 spacevim ,太臃肿了。如果懒得折腾,直接 vscode 或者 jetbrain 全家桶就好了。
光写代码倒是还挺顺手,跨文件 copy 好麻烦
我是设置和系统共享黏贴板,既然别的编辑器都是这样,why not 。
下面这个加到配置里
" set share system clipboard
set clipboard=unnamed
忘了说我是 ssh 到开发机再 vim 的,现在用 vscode remote 很舒服
- 现在的主流插件,基本上文档都很全,配置没那么痛苦了,而且配置文件打磨是个长期功夫,只要写出第一版差不多能用的,后面慢慢优化吧。如果嫌 vimscript 太难用,可以尝试一下 neovim ,支持 lua 配置,写起来比 vimscript 舒服一些
- 个人还是喜欢从零开始,搞一个最适合自己的,直接照抄别人的配置,有问题很难定位,而且有的功能根本用不到,缺点就是费时费力。这个就看个人习惯了
- 各个 lsp 的客户端肯定都实现了查看文档的方法,自己配个 key-binding 就好了
尝试过无数次 vim , 最终还是放弃了,github 上有现成的 space vim 项目, 一键安装, 不用自己配置了
如果你想获得别人更多的认同感,你应该提升自己的技术水平。
而非把时间花在这些小众工具上企图通过与众不同来装逼。。。
如果纯 vim 真的那么好用,jetbrain 和微软为什么要花大力气去开发 idea 和 vs ?
合适的场景用合适的工具,这才是聪明人的选择。
请别一棍子打死谢谢
vim 解决的问题就是键盘输入文本的成本。当然可以根据需要配置 vim 获得 all in one 的一体化体验,但是付出的是折腾的成本;也可以直接通过插件在各种 ide 里最大程度的模拟它。或者你两者都占,只要你知道自己想要什么~
-- 来自 emacs 用户
Vim 需要写很多配置才能达到和 IDE 一样的功能这种说法,现在已经过时了,(Neo)Vim 现在已经比以前好用太多了。
得益于 NeoVim 现在已经内置了 LSP ,配合 NeoVim 官方和社区共同维护的 nvim-lspconfig ,你现在只需要装 nvim-lspconfig 这一个插件,不需要任何其他的插件和配置,你就能在大多数语言里获得自动补全、定义跳转、引用查看、inline docuemnt 等 IDE 级别的功能。你唯一需要配置的就是这些功能的 key binding 而已。
回到楼主的痛点:
- 如果你觉得 Vim 的插件和配置太过麻烦,我的建议是你不要一股脑的把网上别人的配置全抄过来。配置可以少,但你需要知道每一行的配置是干什么的。事实上现在 NeoVim 配合 LSP ,默认的配置和内置的插件已经足够干活了,当你用熟之后,可以在有选择地添加插件提高你的工作效率。
- 我不知道用过 spacevim 算什么痛点。
- 可以看的,而且因为 NeoVim 已经内置了 LSP ,所以实际上你不需要装任何插件就能做到这点。你只需要配置一下 LSP Hover 的 key binding 就可以了。等下我可以录个视频给你看看我的效果。
这里查看 println! 的文档就没用到任何插件,是 NeoVim 内置的功能,只要改下 key binding 就能用。自动补全里对应方法的文档,这个倒是因为我装了 nvim-cmp 这个补全的插件,不过这个插件配置起来也很简单,也是开箱即用的。
用了十多年 gvim. 没 GTK 就用 vim, 就是用 IDE 来实现各种语法糖跳转后, 最后编辑也是快捷键触发打开一个 gvim 来编辑。
以前用 spf13 的 vim 插件包,写了大半年 php ,后来用 vscode 了,改代码用 vim ,不过现在改 php 代码基本 vscdoe 或者 doom-emacs 了
neovim 可以干点啥: hesudu.com/t/813706#reply4
经常去摸索,知道 vim 能做什么,平时搭配 ide 使用,最常用的也就那么几个,想要一个多功能的编辑工具,直接快进到 doom emacs
我用vim难受的地方就是在插入模式下,只能用上下左右移动。。。
你可以重映射按键
inoremap
inoremap
inoremap
inoremap
cnoremap
cnoremap
cnoremap
cnoremap
十年前 IDE 没现在这么强大的情况下,VIM 都是小众圈子,何况如今的 IDE 了
不推荐 spacevim 等集成度较高的 vim 套件。虽然它简化了 vim 的原本配置难度,但是又构造了新的学习难度,自身的配置太多了。
我自己本人只用 neovim ,不用 vscode 和其他 IDE ,日常工作 golang ,业余学习 rust 。学习 vim 配置建议这样:
- 用 vscode+vim 插件等编辑器正常工作;
- 偶尔使用 vim 做简单编辑,只配置那种不带任何插件的基础配置;
- 在 2 的基础上,尝试安装插件来解决代码补全 /格式化 /语法着色等问题;
- 尝试从 1 过渡到 3 ;
当前学习建议直接使用 neovim 和 lua 类型配置。
推荐:
github.com/rockerBOO/awesome-neovim
github.com/neoclide/coc.nvim
github.com/nanotee/nvim-lua-guide
#44 你需要换个 可自定义键盘 😁
gopls 如果在非 GO MOD 的项目或者多个 GO MOD 子项目是不是会失效?
目前我的配置是会出现这样的情况。但是由于我司的项目出现这种情况非常少。
前端开发, 一直用 vim
尝试了几次转到 vscode, 均以失败告终. vscode 总有一些场景是键盘不能完成的, 动不动就需要我去拿鼠标, 这一点对我来说是个痛点.
所幸的是(neo)vim 能很好地满足我的需求, 就一直用着吧, 也不用在编辑器间换来换去.
现在有股风气, 只有在 vim 的帖子里, 总有一种声音: "用 vim 就是装逼, 有这个折腾的功夫用 ide 不好吗".
在我看来:
- 用某种工具就是大神
- 用某种工具就是装逼
这两种看法没啥区别, 都是二极管思维的蠢驴
ideavim 已经满足了我的 99%需求了
而且还不用折腾 装完插件 加载.ideavimrc 直接起飞
5 年使用经验,vim->vim plus ->vscode vim
最近换成 vscode vim , 原生 vim +插件 的方式太容易出问题了,ycm 个人觉得效果算是很差的了,还不算因为 python 版本依赖,导致的各种奇葩问题。跳转定义,只要工程一大,铁定跳不对,举个例子,LINUX 内核源码。也就配合 grep/egrep 还能用用。加上 vscode 现在有 tabnine 这类神奇的自动写代码插件,我觉得换成 vscode 或者其他 IDE 基本是大势所趋了。
我认为的 vim , 是一个操作手段,是一个摒弃鼠标的操作方式,能让两只手都放在键盘上的操作方式。而不是这些杂七杂八的 代码补全,定义跳转,这些都不如当前流行的 jetbrain 或者 vscode 。既然有更好的 IDE 能够兼容 VIM ,更换也是大势所趋
我这样设置
因为我感觉会有很多人说可以去试一下用 spacevim 因为 spacevim 宣传说是开箱即用, 但其实使用起来感受上还是 neovim 来的爽快,唯一的痛点还是这个插件, 我配置的时候确实是一股脑的复制过来的哈哈哈,自己也有尝试一个一个看,就看着看着又回到 ideavim 上去了= =
啊......这我倒没遇到欸...
先搞定你开发急需的插件,然后再慢慢扩展,另外如何用 vim 的方式解决问题,也需要日积月累的经验,不可能一蹴而就,随着 vim 功力大涨,用 vim 只会越来越爽
以前我用 NPP 写代码的时候也是这么想的,结果发现 IDE 真香
我原来也是 vim 的忠实拥护,直到用上了 vscode 的 remote ssh
ycm 也是用 lsp 跳转的吧,你换成 vscode 不也是一样
试了好几次 vim ,都感觉没有直接 vscode 的 remote ssh 好用。除了用来改简单的单文件配置
IDE + VIM 插件呀,都不是老古董了,没必要拒绝 IDE 的快乐
好的谢谢,之前确实太浮躁了
vim 也有插件管理包。使用对应工具,插件的管理与更新也更方便。
相比 vim ,neovim 更新,且有 Copilot 支持。与 vim8 相比,现在更喜欢 neo 。
IDE 也有一般有 vim 插件或模式,连万年的 xCode 现在都有了。
目前觉得难受的,是中文,或者说非英文环境吧。vim 对于中文和日文的支持都不好。对于 word 的理解不是太准确。
www.bilibili.com/video/BV1Zx411S77s?from=search&seid=11206842696618776099&spm_id_from=333.337.0.0
建议看看这个,无插件完成大部分功能
好的谢谢
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
何苦折磨自己,IDE 的快捷键已经够好用了,还没有什么学习成本。
懒人可以用 ideavim 挺不错
#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 )
7 年 vimer, 从 vim 到 neovim, 现在干活超级慢 🤣
我之前也折腾 后来发现没有 vscode + vim 实用 就不折腾了
怕是个假 vimmer ,我三年都用的飞起🌝
京东上现在套装只需要 2100 多,比起群晖性价比太高了 如果合适的话,系统应该选啥,平时就存些电影供局域网观看,备份文件,跑跑自己写的代码啥的 硬盘位不够吧,CPU 肯定是…
我现在的问题 如何定位 java 程序执行时间长的原因? 现在的问题是有一个定时程序执行一遍需要 1500 分钟,我需要减少执行时间, 而这个程序代码量也很大(多线程去遍历…
X-Y Problem 对于X-Y Problem的意思如下: 1)有人想解决问题X 2)他觉得Y可能是解决X问题的方法 3)但是他不知道Y应该怎么做 4)于是他去问别人Y应…