如何修改IDEA的代码样式配置+代码格式化快捷键配置

目录

问题现象:

问题分析:

温馨提示:

1、IDEA的代码样式配置

        1.1、Use tab character - Smart tabs 配置:

        1.2、Tab Size 配置:

        1.3、Indent 配置:

        1.4、Continuation Indent 配置

        1.5、应用并保存

2、代码格式化快捷键配置

        2.1、应用并保存:

        2.2、快捷键的使用:

解决方法:

1、IDEA的代码样式配置

2、代码格式化快捷键配置


问题现象:

        今天在项目中发现:我和其他同事格式化代码后的代码样式好像不太一样!然后就引出了本文主题:

        如何修改IDEA的代码样式配置+代码格式化快捷键配置?


问题分析:

温馨提示:

        不想看问题分析的,可以直接跳到解决方法中去看结论即可。

1、IDEA的代码样式配置

        首先,简单地解释一下本文提到的“代码样式”是什么意思?

        代码样式(Code Style)指的是:在IDEA中对某些代码使用代码格式化之后的代码书写风格。简单举个例子:

        这是我格式化之后的Java代码(图一):

        这是我同事格式化之后的Java代码(图二):

        可以发现,区别在于:

        在括号的前后是否分别存在1个空格。在图一中不管是左括号还是右括号,它们的前后都会存在1个空格;而在图二中,左括号的右边与右括号的左边,都不存在空格,是直接和括号内的代码紧挨在一起的。

        IDEA的代码样式配置路径是:

        Settings - Editor - Code Style

         可以看到该菜单下列举了很多代码语言,这里就以Java语言为例来分析一下:

        左边红框的Scheme选项中可以选择存在的所有配置项,右边的齿轮下拉列表中,有好几个选项,主要用于配置项的拷贝、创建、重置、导出导入功能,这些一般用不到,因为基本都是使用默认的代码样式,我相信几乎没有人会去频繁改动这个配置项。

        上面的红框中列举了很多代码样式的配置项,这里我就不一一细述了,有兴趣的小伙伴请自行探索,不过一般是不建议和IDEA的默认代码样式有太大区别(甚至最好是不要去修改它),否则容易和其他开发同事的代码样式存在较大差异,影响代码整体样式的观感。

        这里简单说一下:

        1.1、Use tab character - Smart tabs 配置:

        用于智能化地使用制表符,影响的是:需要用到空格符和制表符的地方。比如上面我举的简单例子的图一所示代码中,左右括号前后都会自动加入1个空格:

        其实就是因为我没有用IDEA自带的Default(默认)代码样式,而是自己拷贝了一份,并勾选了 Smart tabs 这个选项导致的:

        所以现在只要去掉了该选项;然后再次格式化代码,则会是图二所示代码的效果了:

        1.2、Tab Size 配置:

        用于指定1个制表符(Tab建)表示的空格符数,默认是1个制表符=4个空格符。

        1.3、Indent 配置:

        用于指定子代码块开头缩进时的需要用到的空格符数,默认是1个开头缩进=4个空格符。开头缩进一般是存在子代码的时候会用到。

        举个例子:

        比如class文件中第一行代码是顶格书写(用于描述该类),然后开始书写该class文件中会用到的类变量和类方法,由于存在父子关系(类中包含类变量和类方法),所以就相当于是第一行代码的子代码,此时为了代码美观,我们需要用到开头缩进。其它例子还有类方法中的子代码、do循环中的子代码、try代码块、if条件等的子代码;当详见下图:

        绝大部分情况下,都是建议Tab Size 配置和Indent 配置的数值保持一样,这样有利于我们在开头缩进时,直接按下Tab键即可实现缩进,否则的话你可能需要使用代码格式化功能,才能看到开头缩进的效果和Tab键的区别。

        1.4、Continuation Indent 配置

        翻译可知,它的意思是连续缩进

        用于指定连续使用到缩进的时候,需要用到的空格数,这个没什么好分析的了,基本上就是设置为 Indent 配置 数值的2倍即可。

        1.5、应用并保存

        配置完成后,先点击右下角的Apply,在点击OK即可生效,顺序如图:

2、代码格式化快捷键配置

        代码格式化快捷键的路径是:

        Settings - Keymap - Main Menu - Code - Reformat Code

        由于IDEA中可以设置快捷键的功能非常多,因此我建议你们直接在搜索框中键入“format”来查询结果,以便快速定位。


        双击 Reformat Code 行,就会弹出Edit Shortcuts(编辑快捷键)小窗口,用于添加键盘快捷键、添加鼠标快捷键(没用过也不建议使用)、添加缩写(没用过也不建议使用)、水平线下面则可以删除已存在的快捷键,基本上我们只会用到删除已存在的快捷键、和添加键盘快捷键这两个功能,如图:

         下图右边红框中的下拉列表,可对左边红框中指定的配置项进行拷贝、重命名、重置、删除操作,一般不会用到:

        2.1、应用并保存:

        配置完成后,先点击右下角的Apply,在点击OK即可生效,顺序如图:

        2.2、快捷键的使用:

        可以用鼠标框中需要格式化的代码,然后按下快捷键,效果如下:

        格式化前:

        格式化后:

        如果不用鼠标框中任何代码,则会格式化当前文件的所有代码,效果如下:

        格式化前:

        格式化后:


解决方法:

1、IDEA的代码样式配置

       依次点击 File - Settings - Editor - Code Style - Java - 下拉列表 - Default(默认) - Apply - OK 即可完成代码样式配置,如图:

2、代码格式化快捷键配置

        依次点击 Settings - Keymap - Main Menu - Code - Reformat Code - AddKeyboard Shortcut - 按下快捷键 - OK - Apply - OK 即可完成代码样式配置,如图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/779659.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

openstack 不能调度到某主机上分析

dashboard显示有足够资源创建虚拟机 创建一个1c2g20g配置的虚拟机,在过滤时把10-197-0-2这个主机过滤掉了,日志如下: 2024-03-25 17:52:14.087 26 DEBUG nova.scheduler.filters.disk_filter [req-8f2f32fb-1efe-4e5d-81fc-618210c7c76d 773…

【LeetCode: 面试题 16.05. 阶乘尾数 + 阶乘】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

俄罗斯深陷芯片自主困境,良率仅5成 |百能云芯

俄罗斯的芯片产业一直以来都面临着诸多挑战,尤其是在当前的国际形势下,这些挑战更加凸显。随着俄乌冲突的爆发,西方国家对俄罗斯实施了一系列经济制裁,导致俄罗斯科技产业受到了严重影响。据了解,俄国最大的本土芯片厂…

[Java、Android面试]_14_Retrofit的作用

本人今年参加了很多面试,也有幸拿到了一些大厂的offer,整理了众多面试资料,后续还会分享众多面试资料。 整理成了面试系列,由于时间有限,每天整理一点,后续会陆续分享出来,感兴趣的朋友可关注收…

基于Arduino IDE 野火ESP8266模块 MQTT 的开发

一、库介绍 Arduino常用的MQTT库主要有PubSubClient。  PubSubClient库是一个广泛使用的MQTT客户端库,它基于MQTT 3.1.1版本,并且支持ESP8266和ESP32等Arduino兼容的硬件平台。PubSubClient库允许Arduino设备连接到MQTT服务器,发布和订阅MQT…

electron+VUE Browserwindow与webview通信

仅做记录 前言: electronVUEVITE框架,用的是VUE3.0 主进程定义:用于接收webview发送的消息 ipcMain.on(MyWebviewMessage, (event, message) > {logger.info(收到webmsg message)//转发给渲染进程}) porelaod/webPreload.js定义 cons…

C语言编译与链接

前言 我们想一个问题,我们写的C语言代码都是文本信息,电脑能直接执行c语言代码吗?肯定不能啊,计算机能执行的是二进制指令,所以将C语言转化为二进制指令需要一段过程,这篇博客讲一下编译与链接,…

Day26 手撕各种集合底层源码(一)

Day26 手撕各种集合底层源码(一) 一、手撕ArrayList底层源码 1、概念: ArrayList的底层实现是基于数组的动态扩容结构。 2、思路: 1.研究继承关系 2.研究属性 3.理解创建集合的过程 – 构造方法的底层原理 4.研究添加元素的过程…

vue实现把Ox格式颜色值转换成rgb渐变颜色值(开箱即用)

图示: 核心代码: //将0x格式的颜色转换为Hex格式,并计算插值返回rgb颜色 Vue.prototype.$convertToHex function (colorCode1, colorCode2, amount) {// 确保输入是字符串,并检查是否以0x开头let newCode1 let newCode2 if (t…

关系型数据库mysql(5)存储引擎

目录 一.存储引擎的概念 二. MyISAM 和 InnoDB 2.1MyISAM介绍 2.2MyISAM支持的存储格式 2.2.1静态表(固定长度表) 2.2.2动态表 2.2.3压缩表 2.3场景举例 2.4.InnoDB 2.4.1场景举例 2.4.2企业选择存储引擎依据 三.查看存储引擎 3.1查看当前数…

C++中的STL简介与string类

目录 STL简介 STL的版本 STL的六大组件 string类 标准库中的string类 string类的常用接口 string类对象对容量的操作 size()函数与length()函数 capacity()函数 capacity的扩容方式 reserve()函数 resize()函数 string类对象的操作 push_back()函数 append()函数 operator()函数…

【01-20】计算机网络基础知识(非常详细)从零基础入门到精通,看完这一篇就够了

【01-20】计算机网络基础知识(非常详细)从零基础入门到精通,看完这一篇就够了 以下是本文参考的资料 欢迎大家查收原版 本版本仅作个人笔记使用1、OSI 的七层模型分别是?各自的功能是什么?2、说一下一次完整的HTTP请求…

记录何凯明在MIT的第一堂课:神经网络发展史

https://www.youtube.com/watch?vZ5qJ9IxSuKo 目录 表征学习 主要特点: 方法和技术: LeNet 全连接层​ 主要特点: 主要特点: 网络结构: AlexNet 主要特点: 网络结构: Sigmoid Re…

经典永不过时 Wordpress模板主题

经得住时间考验的模板,才是经典模板,带得来客户的网站,才叫NB网站。 https://www.jianzhanpress.com/?p2484

第十五届蓝桥杯第三期模拟赛第十题 ← 上楼梯

【问题描述】 小蓝要上一个楼梯,楼梯共有 n 级台阶(即小蓝总共要走 n 级)。小蓝每一步可以走 a 级、b 级或 c 级台阶。 请问小蓝总共有多少种方案能正好走到楼梯顶端?【输入格式】 输入的第一行包含一个整数 n 。 第二行包含三个整…

vulfocus环境搭建(kali搭建)

Vulfocus 是一个漏洞集成平台,将漏洞环境 docker 镜像,放入即可使用,开箱即用。 安装docker环境 个人不建议随意更换apt源,我换了几次遇到很多问题。 apt-get update apt-get upgrade(时间很久) apt-get i…

基于springboot的人事管理系统

人事管理系统 摘 要 人事管理系统理工作是一种繁琐的,务求准确迅速的信息检索工作。随着计算机信息技术的飞速发展,人类进入信息时代,社会的竞争越来越激烈,人事就越显示出其不可或缺性,成为学校一个非常重要的模块。…

防止恶意软件和网络攻击的简单贴士

如今,缺少互联网的生活是难以想象的。然而,互联网的匿名性导致了网络攻击和恶意软件很猖獗。恶意软件会损坏我们的设备、窃取个人数据,并导致金钱损失。因此,保护计算机免受这些威胁显得至关重要。 一、确保操作系统和软件是最新版…

企业数据资产管理的战略价值与实施策略

一、引言 数据资产不仅记录了企业的历史运营情况,更能够揭示市场的未来趋势,为企业的决策提供有力支持。因此,如何有效地管理和利用数据资产,已经成为企业竞争力的重要体现。本文将探讨企业数据资产管理的战略价值与实施策略&…

URL编码:原理、应用与安全性

title: URL编码:原理、应用与安全性 date: 2024/3/29 18:32:42 updated: 2024/3/29 18:32:42 tags: URL编码百分号编码特殊字符处理网络安全应用场景标准演变未来发展 在网络世界中,URL(统一资源定位符)是我们访问网页、发送请求…