很多开发者在工作中使用VSCode、Vim和WebStorm/PyCharm/IntelliJ/Android Studio。
当我们需要快速编辑几行本地和远程代码时,通常使用Vim。
对于VSCode,经常将它用于前端项目;然后是WebStorm,它与PyCharm和IntelliJ/Android Studio具有相同的用户体验。
简而言之,它们的常见用途如下:
- Android Studio:适用于Android项目。
- IntelliJ:适用于Java、Groovy和Scala项目,如用Java或Scala编写的后端项目和Spark项目。
- PyCharm:适用于与数据相关的项目或无服务器代码,以及CLI工具。
- WebStore:所有前端项目。
- Vim:更改几行代码或较小的代码库。
Android Studio、IntelliJ、PyCharm和WebStore均由同一家公司JetBrains开发。
JetBrains是一家专门创建集成开发环境(IDE)的软件开发公司,用于各种编程语言。
使用多个IDE并保持相同的用户体验听起来很耗时间,但实际上它们的设置可以在这些IDE之间共享。
可以用相同的方式配置它们的插件、Vim设置、首选项、键映射等。
1. GitHub Copilot
毫无疑问,刚过去的2023年是人工智能和工作效率提高的一年。
GitHub Copilot可以根据项目的上下文和风格惯例提供建议。
快速浏览代码行,完成函数建议,并决定接受、拒绝或编辑哪些建议。
特别是在编写Spark代码时,它帮助很大,因为Spark并不容易编写。
插件:https://plugins.jetbrains.com/plugin/17718-github-copilot
2. Vim插件
正如在前文提到的,可以在这些IDE中使用相同的Vim配置(保存在~/.ideavimrc
中)。
因此,它们的键映射都基于Vim,并具有下面列出的插件提供的额外功能。
插件:
- https://plugins.jetbrains.com/plugin/164-ideavim
- https://plugins.jetbrains.com/plugin/9615-ideavimextension
- https://plugins.jetbrains.com/plugin/13360-ideavim-easymotion
- https://plugins.jetbrains.com/plugin/19162-ideavimmulticursor
- https://plugins.jetbrains.com/plugin/15348-ideavim-sneak
~/.ideavimrc
配置文件如下:
" ------------------------------------------
" 外观设置
" ------------------------------------------
set relativenumber
" 进行增量搜索。
set incsearch
" -------- 键映射 -------
nnoremap gd :action GotoDeclaration
map <S-k> <Nop>
map <C-N> <A-N>
map <C-P> <A-P>
map <C-X> <A-X>
map g<C-N> g<A-N>
" 移动行到上一行和下一行
map <C-j> :m .+1<CR>==
map <C-k> :m .-2<CR>==
" 复制到剪贴板
noremap“ + y” * y
noremap“ + Y” * Y
noremap“ + p” * p
noremap“ + P” * P
noremap <CSc>“ * y
noremap <CSv>“ * P
" 保持居中
nnoremap n nzzzv
nnoremap N Nzzzv
" -------- 设置 -------
" 禁用提示音
set visualbell
set noerrorbells
set clipboard^=unnamed,unnamedplus
set mouse=a
" 启用插件和功能:https://github.com/JetBrains/ideavim/wiki/Emulated-plugins
set argtextobj
set commentary
set highlightedyank
set ideajoin
set multiple-cursors
set surround
set textobj-indent
set vim-paragraph-motion
3. Key Promoter X
Key Promoter X(按键提示器X)在IDE中提供了一种简单的学习关键快捷键的方式。
当鼠标在某个按钮上操作时,程序会显示相应的可以替代鼠标操作的键盘快捷键,使用户能够用键盘按键替代繁琐的鼠标操作工作。
插件:https://plugins.jetbrains.com/plugin/9792-key-promoter-x
4. Rainbow Brackets
Rainbow Brackets(彩虹括号)是一种独特且实用的编程工具。
它们是一种视觉辅助工具,可以帮助程序员快速识别一组括号的开头和结尾。
彩虹括号是一组按颜色编码的括号,代表编程中使用的不同类型的括号。
这使得程序员能够更容易地快速识别一组括号的开和关。
插件:https://plugins.jetbrains.com/plugin/10080-rainbow-brackets
5. Save Actions
Save Actions(保存操作)允许用户在保存文件时自动执行某些操作,例如代码格式化、运行线程或运行构建脚本。
这个插件对于需要快速、高效保存工作而不必手动执行繁琐任务的开发者特别有用。
插件:https://plugins.jetbrains.com/plugin/7642-save-actions
6. Randomness
插入随机数字、字符串和UUID。这在编写测试时非常有帮助。
插件:https://plugins.jetbrains.com/plugin/9836-randomness
7. 适用于Java、Groovy或Scala的TestMe
它允许开发者点击一个按钮,快速生成Java、Groovy或Scala的单元测试,支持JUnit 4/5、TestNG、Spock或Specs2框架。
它还可以自动生成Mockito模拟的依赖项以及相关的返回语句,并通过转到Integrates with IDEA menus: Code->TestMe, Code->Generate
生成测试参数和断言语句。
通过此插件和Github Copilot的结合,编写单元测试的速度提高了10倍。
插件:https://plugins.jetbrains.com/plugin/9471-testme