【问题标题】:Intellij convert tabs to spaces during copy onlyIntellij 仅在复制期间将制表符转换为空格
【发布时间】:2013-10-23 20:55:06
【问题描述】:
如何仅在 Intellij 中的复制操作期间将制表符转换为空格?
我在我的代码中使用制表符,在我常用的工作区中显示为 4 个空格宽。但是,有时我需要将我的代码粘贴到网页或论坛中。如果网页有 4 个空格的制表符,这会起作用,但有些论坛使用 8 个空格的制表符会导致缩进过多。
我想复制 Intellij 编辑器中的代码,并让它根据我的显示偏好将选项卡转换为仅在文本的剪贴板副本中的空格,而不是编辑器本身中的代码。这样我就可以将空格缩进的代码粘贴到网络论坛中。有没有办法做到这一点?
【问题讨论】:
标签:
tabs
intellij-idea
ide
formatting
indentation
【解决方案1】:
一种方法是使用宏。
下面的宏,根据您在 IntelliJ 中的显示设置将所选代码中的“缩进到空格”转换,将其复制到剪贴板,然后撤消转换以恢复 IntelliJ 中的更改。
手动创建宏
- 选择一个sn-p的代码,然后
Edit -> Macros -> Start Macro Recording
Edit -> Convert Indents -> To Spaces
- 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>
使用宏
选择您要粘贴到论坛帖子的代码,然后:
Edit -> Macros -> 'Copy spaced code' OR 'Playback Last Macro'
或者像这样为其分配键盘快捷键可能更简单(请注意,您可以立即在“设置”中搜索“复制间隔代码”,而不是先进入键盘映射然后在那里搜索):