Jetbrains 配置教程

:dart: IDE(Integrated Development Environment,集成开发环境)提供了一整套的软件开发工具,包括代码编辑器、编译器、调试器和通常还包括代码分析工具、图形用户界面(GUI)构建器以及版本控制等。

该教程主要包括外观、功能、插件配置,以及vim操作环境配置!!

一、简介 :mag_right:

Jetbrains 系列是集成开发环境,专业度很高,针对不同的开发语言有独立的工具,以其强大的智能编码辅助、调试工具和插件生态系统而著称,帮助开发者提高生产力。

All Developer Tools and Products by JetBrains

可以看到JetBrains 系列有很多不同的产品,专门为各种编程语言和开发需求设计。每个 IDE 都有针对特定语言和工作流程的优化。

二、插件 :electric_plug:

JetBrains IDE已经为你打造一个非常不错的开发环境,你只需要安装几个插件就能达到非常不错的开发体验。

AceJump:通过提供一个键盘驱动的方式来代替鼠标操作,提升代码导航的效率。

Atom Material File Icons:提供了一套高质量的文件图标,这些图标能够直观地显示项目中的不同文件类型,提升界面美观性和文件识别效率。

CodeGlance Pro:通过右侧的缩略图展示整个文件的结构,帮助开发者快速定位代码位置。

Codeium: Free AI-powered code acceleration:通过集成 AI 技术,它能够为开发者提供代码自动补全、智能建议和代码生成功能。

Coderpillr Theme:个人非常喜欢的一款定制主题。

Ideavim:将 Vim 的强大编辑能力集成到 JetBrains IDE 中,让开发者可以更高效地进行代码编辑。

IdeavimExtension:为 Ideavim 插件提供扩展功能的辅助插件,它添加了许多 Ideavim 默认不提供的功能,进一步增强了 Vim 操作与 JetBrains IDE 的兼容性。

Which-Key:一个快捷键提示插件,能够在开发者输入组合键时,显示该组合键的可选操作,帮助用户记忆和使用快捷键,提升开发效率。

:no_entry: 禁用不需要的内置插件(内置插件通常会标记为“Bundled”)是一个提升 JetBrains IDE 性能和简化开发环境的有效方法。通过合理管理插件,您可以创建一个更加高效和个性化的开发环境。

三、自定义配置 :ballot_box_with_check:

1. 外观

Appearance & Behavior -> Appearance -> Theme -> Coderpillr Dusk

Appearance & Behavior -> Appearance -> Editor Color Scheme -> Coderpillr Dusk

Appearance -> Use custom font -> Cascadia Mono PL Size -> 16

Theme 和 Editor Color Scheme 是 IDE 中两个相关但不同的概念。它们共同决定了编辑器的视觉外观,但侧重点不同。

  • Theme 通常指整个 IDE 的整体视觉风格,不仅包括代码编辑区,还包括工具栏、菜单、侧边栏、状态栏等 UI 元素,决定了窗口背景色、按钮样式、图标设计等。

  • Editor Color Scheme(编辑器配色方案)主要关注代码编辑区域的颜色设置,定义了不同代码元素(如关键字、字符串、注释等)的颜色,它主要目的是提升编程的效率和舒适度,通过不同颜色的区分来帮助开发者更快地识别代码结构和元素。

Appearance -> Tree Views -> Show indent guides

作用是显示缩进指南。这些缩进指南是垂直线条,用于帮助开发者更清晰地识别层级结构和缩进级别,就像这样的。

Editor -> Font -> Cascadia Code NF Size -> 24.0

Cascadia Code NF 是一种开源字体,专为程序员和开发者设计。我个人非常喜欢,总之,Cascadia Code NF 是一款功能强大且美观的编程字体,适合希望提升编码效率和视觉体验的开发者使用。

然后字体大小调整到适合自己的大小。

2. 其他设置

Appearance & Behavior -> System Settings -> HTTP Proxy

Editor -> General -> Auto import -> Add unambiguous import on the fly

作用是自动添加导入语句,而无需手动去添加这样,你可以专注于编写代码,让你的编码过程更加流畅和高效。

四、快捷键 :keyboard:

IdeaVim 插件可以让开发者在强大的 IDE 中享受 Vim 风格的编辑体验。它提供了 Vim 的许多核心功能,同时还与 IDE 的特性进行了智能集成。

1. ideavimrc

.ideavimrc 文件类似于 Vim 的 .vimrc 文件,用于自定义 Vim 键绑定和行为。你可以在用户主目录下创建或编辑这个文件。

IdeaVim 支持许多 Vim 插件功能,可以尝试用 Vim 的习惯来提高生产力。

配置文件
# 加载 NERDTree 插件
Plug 'preservim/nerdtree'
# 加载 vim-commentary 插件
Plug 'tpope/vim-commentary'

# 设置 leader 键为空格
let mapleader = " "

# 启用 which-key 功能
set which-key
# 禁用超时,使得 Vim 不会因为等待太长时间而自动放弃组合键输入。这可以让用户在输入复杂快捷键时有更充裕的时间,不用担心超时
set notimeout
# 启用 commentary 插件注释功能
set commentary
# 启用自动换行
set wrap
# 启用 easymotion 功能
set easymotion
# 光标位置的上方和下方至少会有6行可见的缓冲区
set scrolloff=6
# 启用增量搜索
set incsearch
# 启用搜索结果高亮
set hlsearch
# 搜索时忽略大小写
set ignorecase
# 设置系统剪贴板
set clipboard=unnamedplus
# 将 JetBrains IDE 的剪贴板与 Vim 的剪贴板集成,使得剪切、复制和粘贴操作在两个环境中共享
set clipboard+=ideaput
# 显示相对行号
set relativenumber
# 在普通模式下保持英文输入法
set keep-english-in-normal

# 下一个标签页
nmap L <action>(NextTab)
# 上一个标签页
nmap H <action>(PreviousTab)
# 显示悬浮信息
nmap K <action>(ShowHoverInfo)

# 显示调试工具窗口
nnoremap <C-S-d> :action ActivateDebugToolWindow<CR>
# 显示设置面板
nnoremap <C-S-p> :action ShowSettings<CR>
# 显示终端窗口
nnoremap <C-t> :action ActivateTerminalToolWindow<CR>
# 为关闭当前内容
nnoremap <C-w> :action CloseContent<CR>
# 新建文件
nnoremap <C-n> :action NewFile<CR>

# 向下移动行
nnoremap <A-Down> :action MoveLineDown<CR>
# 向上移动行
nnoremap <A-Up> :action MoveLineUp<CR>
# 向下移动行
inoremap <A-Down> :action MoveLineDown<CR>
# 向上移动行
inoremap <A-Up> :action MoveLineUp<CR>

# 运行
map <C-A-n> <Action>(Run)
# 切换全屏
map <f11> <Action>(ToggleFullScreen)

# 跳转到上一个错误
nmap g[ <action>(GotoPreviousError)
# 跳转到下一个错误
nmap g] <action>(GotoNextError)
# 跳转到实现
nmap gi <action>(GotoImplementation)
# 跳转到声明
nmap gd <action>(GotoDeclaration)

# 代码相关操作
let g:WhichKeyDesc_Code = "<leader>c Code"
let g:WhichKeyDesc_Code_Format = "<leader>cf Format"
nmap <leader>cf <action>(ReformatCode) \| <action>(OptimizeImports)
let g:WhichKeyDesc_Code_Rename = "<leader>cr Rename"
nmap <leader>cr <action>(RenameElement)

# 调试相关操作
let g:WhichKeyDesc_DeBug= "<leader>d Debug"
let g:WhichKeyDesc_Debug_DeBug = "<leader>db Debug"
nmap <leader>db <Action>(Debug)
let g:WhichKeyDesc_Debug_StepInto = "<leader>di StepInto"
nmap <leader>di <Action>(StepInto)
let g:WhichKeyDesc_Debug_BreakPoint = "<leader>dp BreakPoint"
nmap <leader>dp <Action>(ToggleLineBreakpoint)
let g:WhichKeyDesc_Debug_StepOver = "<leader>do StepOver"
nmap <leader>do <Action>(StepOver)
let g:WhichKeyDesc_Debug_DebugResume = "<leader>dr DebugResume"
nmap <leader>dr <Action>(Resume)
let g:WhichKeyDesc_Debug_DebugStop = "<leader>ds DebugStop"
nmap <leader>ds <Action>(Stop)
let g:WhichKeyDescepOut = "<leader>du StepOut"
nmap <leader>du <Action>(StepOut)
let g:WhichKeyDesc_Debug_BreakPointView = "<leader>dv BreakPointView"
nmap <leader>dv <Action>(ViewBreakpoints)

# NERDTree 切换
let g:WhichKeyDesc_NERDTreeToggle = "<leader>e NERDTreeToggle"
nmap <leader>e :NERDTreeToggle<CR>

# 文件相关操作
let g:WhichKeyDesc_File = "<leader>f File"
let g:WhichKeyDesc_File_AceAction = "<leader>fa AceAction"
nmap <leader>fa <action>(AceAction)
let g:WhichKeyDesc_File_OpenFileOrFolder = "<leader>ff OpenFileOrFolder"
nmap <leader>ff <action>(ShowFilePath)
let g:WhichKeyDesc_File_AceLineAction = "<leader>fl AceLineAction"
nmap <leader>fl <action>(AceLineAction)
let g:WhichKeyDesc_Find_FindSymbol = "<leader>fo FindSymbol"
nmap <leader>fo <action>(GotoSymbol)
let g:WhichKeyDesc_File_RecentFiles = "<leader>fp RecentFiles"
nmap <leader>fp <action>(RecentFiles)
let g:WhichKeyDesc_File_QuickOpenFile = "<leader>fq QuickOpenFile"
nmap <leader>fq <action>(GotoFile)
let g:WhichKeyDesc_File_AceTargetAction = "<leader>fv AceTargetAction"
nmap <leader>fv <action>(AceTargetAction)

# Git 相关操作
let g:WhichKeyDesc_Git = "<leader>g Git"
let g:WhichKeyDesc_Git_GitBlame = "<leader>gb GitBlame"
nmap <leader>gb <action>(Annotate)
let g:WhichKeyDesc_Git_Diff = "<space>gd ToggleDiff"
nmap <space>gd <action>(ShowDiff)
let g:WhichKeyDesc_Git_ShowGitLog = "<leader>gg ShowGitLog"
nmap <leader>gg :action ActivateVersionControlToolWindow<CR>
let g:WhichKeyDesc_Git_Revert = "<space>gr RevertHunk"
nmap <space>gr <action>(Rollback)
let g:WhichKeyDesc_Git_Synchronize = "<leader>gs GitSynchronize"
nmap <leader>gs <action>(Synchronize)
let g:WhichKeyDesc_Git_PrevChange = "<space>g[ PrevGitChange"
nmap <space>g[ <action>(VcsPreviousChange)
let g:WhichKeyDesc_Git_NextChange = "<space>g] NextGitChange"
nmap <space>g] <action>(VcsNextChange)

# 面板相关操作
let g:WhichKeyDesc_Panel = "<leader>p Panel"
let g:WhichKeyDesc_Panel_ShowProblem = "<leader>pd ShowProblem"
nmap <leader>pd :action ActivateProblemsViewToolWindow<CR>

# 窗口相关操作
let g:WhichKeyDesc_Windows = "<leader>w Window"
let g:WhichKeyDesc_Windows_CloseAllEditors = "<leader>wc Close all tabs"
nmap <leader>wc <action>(CloseAllEditors)
let g:WhichKeyDesc_Windows_CloseAllEditorsButActive = "<leader>wo Close other tabs"
nmap <leader>wo :action CloseAllEditorsButActive<CR>
let g:WhichKeyDesc_Windows_MoveTabLeft = "<leader>wh MoveTabLeft"
nmap <leader>wh <action>(MoveTabLeft)
let g:WhichKeyDesc_Windows_MoveTabDown = "<leader>wj MoveTabDown"
nmap <leader>wj <action>(MoveTabDown)
let g:WhichKeyDesc_Windows_MoveTabUp = "<leader>wk MoveTabUp"
nmap <leader>wk <action>(MoveTabUp)
let g:WhichKeyDesc_Windows_MoveTabRight = "<leader>wl MoveTabRight"
nmap <leader>wl <action>(MoveTabRight)

# 代码折叠相关操作
let g:WhichKeyDesc_Zip = "<leader>z Zip"
let g:WhichKeyDesc_Zip_ZipAll = "<leader>zc CollapseAllRegions"
nmap <leader>zc <action>(CollapseAllRegions)
let g:WhichKeyDesc_Zip_unZipAll = "<leader>zo ExpandAllRegions"
nmap <leader>zo <action>(ExpandAllRegions)

2. 快捷键整理

标签页导航

快捷键 功能描述
L 下一个Tab
H 上一个Tab

搜索

快捷键 功能描述
/? 搜索
shift shift 万能搜索
ctrl shift r 万能替换

快速跳转

快捷键 功能描述
g[ 跳转到上一个错误或警告
g] 跳转到下一个错误或警告
gd 跳转到变量、方法或类的声明位置
gi 跳转到当前接口或抽象类的实现处

注释

快捷键 功能描述
gc 可视模式下注释
gcc 普通模式下注释

代码操作

快捷键 功能描述
<leader>cf 格式化代码和优化导入
<leader>cr 重命名元素
ctrl alt n 运行
ctrl r 重做

面板操作

快捷键 功能描述
ctrl t 打开终端
ctrl w 关闭面板
<leader> p d 显示问题面板(如错误和警告)
<leader> e 切换文件资源管理器
ctrl shift d 打开调试窗口
ctrl shift p 显示设置

调试

快捷键 功能描述
<leader>db 调试
<leader>di 进入
<leader>dp 打断点/解除断点
<leader>do 步过
<leader>dr 恢复调试
<leader>ds 停止调试
<leader>du 步出
<leader>dv 查看断点

文件操作

快捷键 功能描述
<leader>fa 执行 AceAction
<leader>ff 打开文件或文件夹
<leader>fl 执行 AceLineAction
<leader>fo 查找符号
<leader>fp 最近文件
<leader>fq 快速打开文件
<leader>fv 执行 AceTargetAction

AceAction:基本的字符跳转;
AceLineAction:行内跳转;
AceTargetAction:快速选中目标单词。

窗口操作

快捷键 功能描述
<leader>wc 关闭所有标签页
<leader>wo 关闭其他标签页
<leader>wh 向左分割面板
<leader>wj 向下分割面板
<leader>wk 向上分割面板
<leader>wl 向右分割面板

代码折叠

快捷键 功能描述
<leader>zo 展开所有代码折叠区域
<leader>zc 折叠所有代码折叠区域
47 个赞

感谢佬的分享

2 个赞

感谢你的配置!

2 个赞

有点厉害支持~~

1 个赞

已放入收藏夹里吃灰

感谢分享。我之前折腾主题配置挺久的。 那种花里胡哨的都用过,后来发现还是默认的最舒服。

1 个赞

感谢分享 也是装了一堆插件最后卡的不行

1 个赞

感谢分享:heart_eyes::heart_eyes:

2 个赞

主题 atom noe 最舒服~

1 个赞

感谢分享 :smiling_face_with_three_hearts: :smiling_face_with_three_hearts:

1 个赞

很详细,感谢分享

1 个赞

感谢分享, 十分详细

1 个赞

收藏了,感谢大佬分享

1 个赞

感谢分享,用了很久了,第一次关注配置

1 个赞

进收藏夹吃灰去吧