如何仅在 Intellij 中进行复制操作时将制表符转换为空格?
我在代码中使用制表符,在我常用的工作区中显示为 4 个空格宽。但是,有时我需要将代码粘贴到网页或论坛中。如果网页有 4 个空格的制表符,则可以正常查找,但某些论坛使用 8 个空格的制表符,导致缩进过多。
我想复制 Intellij 编辑器中的代码,并让它根据我的显示首选项将选项卡转换为仅在文本的剪贴板副本中的空格,而不是编辑器本身中的代码。这样我就可以将空格缩进的代码粘贴到网络论坛中。有什么办法可以做到这一点吗?
最佳答案
一种方法是使用宏。
下面的宏根据您在 IntelliJ 中的显示设置将所选代码中的“缩进转换为空格”,将其复制到剪贴板,然后撤消转换以恢复 IntelliJ 中的更改。
手动创建宏
- 选择一段代码,然后
编辑 -> 宏 -> 开始宏录制
编辑 -> 转换缩进 -> 转换为空格
- Ctrl + C
- Ctrl + Z
- 编辑 -> 宏 -> 停止宏录制
- 输入宏的名称,例如:复制空格代码
或者
导入此宏
如果您之前没有创建过宏,只需将以下内容转储到 .IntelliJIdea12\config\options\macros.xml
<?xml version="1.0" encoding="UTF-8"?>
<application>
<component name="ActionMacroManager">
<macro name="Copy spaced code">
<shortuct text="alt E" />
<action id="ConvertIndentsToSpaces" />
<action id="EditorCopy" />
<action id="$Undo" />
</macro>
</component>
</application>
使用宏
选择您想要粘贴到论坛帖子的代码,然后:
编辑 -> 宏 ->“复制间隔代码”或“播放上一个宏”
或者像这样为其分配键盘快捷键可能会更简单(请注意,您可以立即在“设置”中搜索“复制间隔代码”,而不是先转到“键盘映射”,然后在那里搜索它):
关于tabs - Intellij 仅在复制期间将制表符转换为空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19391627/