JetBrains IntelliJ支持自动切换输入法,写代码如丝般顺滑

news2024/11/24 22:45:22

背景简介

对于母语为中文的开发者,写代码过程中经常需要在中/英输入法之间进行切换,而且由于不清楚当前处于哪种输入状态,有时输入到一半发现输入法错了,删除重新输入,有时切换了好几次都没有成功,实在太影响写代码了。

其实,在哪个位置需要使用哪种输入法是可以确定的,既然这样就可以让IDE帮助我们自动切换输入法。

JetBrains IntelliJ IDE可以通过Smart Input插件实现自动切换输入法,其核心功能是根据输入位置的上下文智能分析当前应该使用哪种输入法并自动切换,而且还可以通过光标的颜色来提醒当前是什么输入法。废话少说,先看效果。

注释场景

Java代码有三种注释方式,注释场景也是使用中文频率比较高的场景,下面动图演示了两种注释场景的效果。

识别到单行注释场景,自动切换为中文输入法。换行后编码,识别到光标位于编码区域,自动切换为英文输入法。整个过程无需主动切换输入法,写代码如丝般顺滑。光标红色表示当前使用中文输入法,灰色表示英文输入法。场景切换的时候会有浮层提示,熟悉后也可以关闭提示。

对代码进行文档注释时,自动识别到当前处于文档注释场景,自动为您切换为中文输入法。中文输入法状态也可以进行简单的英文输入。

Commit Message场景

一般我们都是使用中文写git的提交信息,该插件可以做到当Commit Message输入框获取到焦点时切换为中文输入法。

IdeaVim场景

习惯使用IdeaVim插件的人都知道在vim命令模式必须使用英文输入法,Smart Input插件可以在进入命令模式时自动切换为英文输入法。下图中光标为方块时表示进入了命令模式。

工具窗口场景

在命令终端需要使用英文输入法,Smart Input插件可以识别到Terminal工具窗口获取到输入焦点时候就会切换到英文输入法,省心省力。还有Project、Structure工具窗口也是只需要英文输入法,还支持通过窗口名称自定义。

SearchEveryWhere场景

双击Shift键可以唤起SearchEveryWhere对话框,用来搜索类、方法等,这里也是可以确定必须使用英文输入法,Smart Input插件支持SearchEveryWhere对话框获取到焦点后切换为英文输入法。

字符串字面量场景

字符串字面量是无法确认唯一一种输入法,插件支持设置字符串字面量场景的默认输入法,插件也支持根据字符串变量名或者方法参数名判断是否需要切换为中文输入法。演示插件已经提前配置好了自定义中文场景:chineseName;func(chineseName)。

上图中识别到字符串变量名称为chineseName,则当光标在字符串字面量中时自动切换为中文输入法。第二个配置的意思是如果识别到方法func的参数名称为chineseName,则在赋予字符串字面量时自动切换为中文输入法。

主动切换输入法

编码场景肯定使用的是英文,只有在注释、字符串字面量等场景才会使用中文,当然也有可能需要使用英文,简短的英文可以使用中文输入法输入,您也可以主动切换输入法,光标的颜色会随着输入法的改变而改变,始终准确的表示输入法状态。

为了避免主动切换输入法后因为光标的移动又自动切换输入法,因此提供三种锁定输入法的策略,可在设置页面进行选择,默认策略为:主动切换输入法后锁定自动切换直到光标跨行移动或进入编码区域。

中文输入补救功能

不使用Smart Input插件情况下,写代码的时候不知道当前处于什么输入状态,经常会出现如下的不好体验,编码需要英文输入法,字符串需要中文输入法,如果不在恰当的时机准确切换输入法,就会出现想要输入中文,但是在英文输入法状态下输入了,需要切换输入法并删除已经输入的部分重新输入。

使用Smart Input插件情况下,中文输入补救功能可以帮助你避免删除已经输入的部分重新输入,Smart Input插件识别到你切换为中文输入法之后帮助你完成重新输入的动作,你只需要切换输入法并接着继续输入就好,如下动图所示。

下载安装

Smart Input插件可以在IntelliJ官方插件市场下载安装,点击底部阅读原文可以链接到官方插件市场。安装说明可以参考公众号文章:IntelliJ插件Smart Input安装说明。

Smart Input插件已经支持了IntelliJ IDEA、Android Studio、PyCharm、WebStorm等JetBrains全系列产品。

您的分享和支持是我们最大的动力,如果您也觉得不错就分享给您的小伙伴吧。您有任何疑问或者需求,可以先关注微信公众号“开发效率”,然后发消息进行咨询,我们会尽快回复您。

关注微信公众号“开发效率”获取更多提升效率的方法。

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

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

相关文章

【强化学习】强化学习数学基础:蒙特卡洛方法

强化学习数学方法:蒙特卡洛方法举个例子举个例子1:投掷硬币The simplest MC-based RL algorithm举个例子2:Episode lengthUse data more efficientlyMC without exploring starts总结内容来源将value iteration和policy iteration方法称为mod…

无线耳机哪个品牌好一点?2023四款好用的无线耳机排行

随着蓝牙耳机的普及,越来越多的耳机厂商加入蓝牙耳机这条竞争赛道。不同品牌的蓝牙耳机又有着不同的价位区间,不同的性能配置,不同的外观设计,可以说现在的蓝牙耳机多到让人在选择时眼花缭乱。那么,无线耳机哪个品牌好…

云端需求助力跑赢周期,金山办公有望借助ChatGPT加速腾飞

与微软在办公领域“搏杀”了三十年的金山办公,或许正在迎来自己的“第二春”。2月25日,金山办公(688111)发布2022年度业绩快报,全年营收38.85亿元人民币(单位下同),同比增加18.44%&a…

智慧工厂数字孪生可视化监测系统有效提升厂区安全管控效力

我国制造业正处于产业升级的关键时期,基于数据进行生产策略制定与管理是大势所趋,而数据可视化以更直观的方式成为数据分析传递信息的重要工具。 深圳华锐视点通过三维可视化手段对工厂各类设备进行三维建模,真实复现设备设施外观、结构、运转…

基于卷积神经网络CNN的分类研究,基于卷积神经网络的手写体识别

目录 背影 卷积神经网络CNN的原理 卷积神经网络CNN的定义 卷积神经网络CNN的神经元 卷积神经网络CNN的激活函数 卷积神经网络CNN的传递函数 卷积神经网络CNN手写体识别 基本结构 主要参数 MATALB代码 结果图 展望 背影 现在生活,各种人工智能都要求对图像拥有识别…

Linux内核4.14版本——drm框架分析(1)——drm简介

目录 1. DRM简介(Direct Rendering Manager) 1.1 DRM发展历史 1.2 DRM架构对比FB架构优势 1.3 DRM图形显示框架 1.4 DRM图形显示框架涉及元素 1.4.1 DRM Framebuffer 1.4.2 CRTC 1.4.3 Encoder 1.4.4 Connector 1.4.5 Bridge 1.4.6 Panel 1.4.…

双指针法将时间复杂度从 O(n^2) 优化到 O(n)

[1] 什么是双指针法 双指针法(Two Pointers)是一种常见的算法技巧,常用于数组和链表等数据结构中。 双指针法的基本思想是维护两个指针,分别指向不同的位置,通过它们的移动来解决问题。在某些情况下,使用双…

【Leetcode】移除链表元素 链表的中间节点 链表中倒数第k个节点

目录 一.【Leetcode203】移除链表元素 1.链接 2.题目再现 A.双指针法 B.类尾删法 C.哨兵位 二.【Leetcode876】链表的中间节点 1.链接:链表的中间节点 2.题目再现 3.解法:快慢指针 三.链表中倒数第k个节点 1.链接:链表中倒数第k个…

LiveGBS国标GB/T28181国标视频流媒体平台-功能报警订阅配置报警预案告警截图及录像

LiveGBS国标GB/T28181国标视频流媒体平台-功能报警订阅配置报警预案告警截图及录像1、报警信息1.1、报警查询1.2、配置开启报警订阅1.2.1、国标设备编辑1.2.2、选择开启报警订阅1.3、配置摄像头报警1.3.1、配置摄像头报警通道ID1.3.2、配置摄像头开启侦测1.3.3、尝试触发摄像头…

企业为什么需要做APP安全评估?

近几年新型信息基础设施建设和移动互联网技术的不断发展,移动APP数量也呈现爆发式增长,进而APP自身的“脆弱性”也日益彰显,这对移动用户的个人信息及财产安全带来巨大威胁和挑战。在此背景下,国家出台了多部法律法规,…

【架构师】跟我一起学架构——微服务分层监控

博客昵称:架构师Cool 最喜欢的座右铭:一以贯之的努力,不得懈怠的人生。 作者简介:一名Coder,软件设计师/鸿蒙高级工程师认证,在备战高级架构师/系统分析师,欢迎关注小弟! 博主小留言…

机器学习与目标检测作业:安装pytorch

机器学习与目标检测作业:安装pytorch一、 进入官网复制下载命令二、 下载的过程2.1 conda命令运行三、 测试pytorch是否安装成功安装pytorch教程 一、 进入官网复制下载命令 进入官网复制下载命令如下图所示 二、 下载的过程 下载的过程如下图所示 2.1 conda命令运…

vue3中引入初始化样式

1、创建一个reset.css文件 2、文件内容为: css charset “utf-8”;html{background-color:#fff;color:#000;font-size:12px} body,ul,ol,dl,dd,h1,h2,h3,h4,h5,h6,figure,form,fieldset,legend,input,textarea,button,p,blockquote,th,td,pre,xmp{margin:0;padding…

华为机试题:HJ100 等差数列(python)

文章目录(1)题目描述(2)Python3实现(3)知识点详解1、input():获取控制台(任意形式)的输入。输出均为字符串类型。1.1、input() 与 list(input()) 的区别、及其相互转换方…

芯驰(E3-gateway)开发板环境搭建以及调试遇到问题的解决

1-Windows下环境配置 可以在Windows上使用命令行或者IAR IDE编译SSDK项目。Windows编译依赖的工具已经包含在 prebuilts/windows 目录中,包括编译器、Python和命令行工具。 1.1.1 CMD SSDK集成 msys 工具,可以在Windows命令行中完成SDK的配置、编译和…

零入门kubernetes网络实战-19->golang编程netlink包方式操作tun设备

《零入门kubernetes网络实战》视频专栏地址 https://www.ixigua.com/7193641905282875942 本篇文章视频地址(稍后上传) 本篇文章介绍一下,使用 github.com/vishvananda/netlink 来操作tun设备 1、安装github.com/vishvananda/netlink go get github.com/vishvanan…

Java的Groovy执行器内存泄露(MetaSpace)问题分析与解决办法

环境与背景 在java程序中通过GroovyScriptEvaluator执行器创建脚本Script对象调用Groovy脚本语言来完成某些功能, ,会通过AppClassLoader或者GroovyClassLoader去生产一个随机的名称的Groovy的Script类对象,导致元数据,产生的class类会被AppClassLoader或者GroovyClassLoader内…

软件测试必备知识

一、软件测试的基本概念①需求IEEE规定:软件需求是(1)用户解决问题或达到目标所需 条件或权能。(2)系统或系统部件要满足合同、标准、规范或其他正式规定文档所需具有的条件或权能。一种反应上面(1&#xf…

MyBatisPlus 批量添加

文章目录现状优化效果现状 一般来说,批量插入可以使用 MyBatisPlus 中 ServiceImpl 自带的方法 saveBatch 打开 sql 日志,application.yml 添加配置,mapper-locations 配置 mapper 路径 mybatis-plus:configuration:log-impl: org.apache.i…

LEAP模型的能源环境发展、碳排放建模预测及不确定性分析

LEAP(Long Range Energy Alternatives Planning System/ Low emission analysis platform,长期能源可替代规划模型)是一种自下而上的能源-环境核算工具,由斯德哥尔摩环境研究所和美国波士顿大学联合研发。该模型与情景分析法紧密结…